Repository: vicanso/pike Branch: master Commit: ab016ba37355 Files: 96 Total size: 3.0 MB Directory structure: gitextract_52j68_1c/ ├── .air.toml ├── .github/ │ └── workflows/ │ ├── build.yml │ └── test.yml ├── .gitignore ├── .goreleaser.yml ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── SUMMARY.md ├── app/ │ ├── app.go │ └── app_test.go ├── asset/ │ └── asset.go ├── cache/ │ ├── cache.go │ ├── cache_test.go │ ├── dispatcher.go │ ├── dispatcher_test.go │ ├── http_cache.go │ ├── http_cache_test.go │ ├── http_response.go │ ├── http_response_test.go │ ├── memhash.go │ └── memhash_test.go ├── compress/ │ ├── brotli.go │ ├── brotli_test.go │ ├── compress.go │ ├── compress_test.go │ ├── gzip.go │ ├── gzip_test.go │ ├── lz4.go │ ├── lz4_test.go │ ├── snappy.go │ ├── snappy_test.go │ ├── zstd.go │ └── zstd_test.go ├── config/ │ ├── config.go │ ├── config_test.go │ ├── etcd_client.go │ ├── etcd_client_test.go │ ├── file_client.go │ ├── file_client_test.go │ └── validate.go ├── docs/ │ ├── alarm.md │ ├── cache-handler.md │ ├── error.md │ ├── flow.drawio │ ├── modules.drawio │ ├── modules.md │ ├── performance.md │ ├── questions.md │ ├── response.drawio │ ├── response.md │ └── start.md ├── entrypoint.sh ├── go.mod ├── go.sum ├── hooks/ │ └── pre-commit ├── location/ │ ├── location.go │ └── location_test.go ├── log/ │ └── log.go ├── main.go ├── pike.yml ├── schedule/ │ └── schedule.go ├── server/ │ ├── admin.go │ ├── cache.go │ ├── cache_test.go │ ├── proxy.go │ ├── proxy_test.go │ ├── responder.go │ ├── responder_test.go │ ├── server.go │ └── server_test.go ├── store/ │ ├── badger.go │ ├── badger_test.go │ ├── mongo.go │ ├── mongo_test.go │ ├── redis.go │ ├── redis_test.go │ ├── store.go │ └── store_test.go ├── test/ │ └── main.go ├── upstream/ │ ├── upstream.go │ └── upstream_test.go ├── util/ │ ├── util.go │ └── util_test.go └── web/ ├── assets/ │ ├── AssetManifest.json │ ├── FontManifest.json │ ├── NOTICES │ ├── fonts/ │ │ └── MaterialIcons-Regular.otf │ └── packages/ │ └── fluttertoast/ │ └── assets/ │ ├── toastify.css │ └── toastify.js ├── flutter_service_worker.js ├── index.html ├── main.dart.js ├── manifest.json └── version.json ================================================ FILE CONTENTS ================================================ ================================================ FILE: .air.toml ================================================ # Config file for [Air](https://github.com/cosmtrek/air) in TOML format # Working directory # . or absolute path, please note that the directories following must be under root. root = "." tmp_dir = "tmp" [build] # Just plain old shell command. You could use `make` as well. cmd = "go build -o ./tmp/main ." # Binary file yields from `cmd`. bin = "tmp/main" # Customize binary. full_bin = "GO_ENV=dev ./tmp/main --admin :9013 --alarm http://127.0.0.1:3001/alarms" # Watch these filename extensions. include_ext = ["go", "yml"] # Ignore these filename extensions or directories. exclude_dir = ["assets", "tmp", "vendor", "web"] # Watch these directories if you specified. include_dir = [] # Exclude files. exclude_file = [] # Exclude unchanged files. exclude_unchanged = true # This log file places in your tmp_dir. log = "air.log" # It's not necessary to trigger build each time file changes if it's too frequent. delay = 1000 # ms # Stop running old binary when build errors occur. stop_on_error = true # Send Interrupt signal before killing process (windows does not support this feature) send_interrupt = true # Delay after sending Interrupt signal kill_delay = 500 # ms [log] # Show log time time = false [color] # Customize each part's color. If no color found, use the raw app log. main = "magenta" watcher = "cyan" build = "yellow" runner = "green" [misc] # Delete tmp directory on exit clean_on_exit = true ================================================ FILE: .github/workflows/build.yml ================================================ name: build on tag on: push: tags: - 'v*.*.*' jobs: docker: runs-on: ubuntu-latest name: Build steps: - name: Check out code into the Go module directory uses: actions/checkout@v2 - name: Set output id: vars run: echo ::set-output name=tag::${GITHUB_REF#refs/*/} - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Login to Docker Hub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Build and push id: docker_build uses: docker/build-push-action@v2 with: push: true tags: ${{ secrets.DOCKER_HUB_USERNAME }}/pike:${{ steps.vars.outputs.tag }} build-args: GITHUB_SHA=${ GITHUB_SHA },VERSION=${{ steps.vars.outputs.tag }} - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }} goreleaser: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: Set up Go uses: actions/setup-go@v2 with: go-version: 1.16 - name: Run GoReleaser uses: goreleaser/goreleaser-action@v2 with: version: latest args: release --rm-dist env: GITHUB_TOKEN: ${{ secrets.GH_PAT }} ================================================ FILE: .github/workflows/test.yml ================================================ name: lint and test on: push: branches: [ master ] pull_request: branches: [ master ] jobs: test: name: Test runs-on: ubuntu-latest services: etcd: image: bitnami/etcd env: ETCD_ROOT_PASSWORD: 123456 ports: - 2379:2379 redis: # Docker Hub image image: redis # Set health checks to wait until redis has started options: >- --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5 ports: # Maps port 6379 on service container to the host - 6379:6379 mongo: image: mongo ports: - 27017:27017 steps: - name: Build pike uses: actions/setup-go@v2 with: go-version: '1.16' - name: Check out code into the Go module directory uses: actions/checkout@v2 - name: Get dependencies run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin latest - name: Lint run: make lint - name: Test run: make test build: needs: test runs-on: ubuntu-latest name: Build steps: - name: Check out code into the Go module directory uses: actions/checkout@v2 - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Login to Docker Hub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Build and push id: docker_build uses: docker/build-push-action@v2 with: push: true tags: ${{ secrets.DOCKER_HUB_USERNAME }}/pike:latest build-args: GITHUB_SHA=${ GITHUB_SHA } - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }} ================================================ FILE: .gitignore ================================================ vendor tmp *.out *.log pike pike-* packrd *-packr.go # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies .pnp.js # misc .DS_Store .env.local .env.development.local .env.test.local .env.production.local npm-debug.log* yarn-debug.log* yarn-error.log* asset/web dist ================================================ FILE: .goreleaser.yml ================================================ # This is an example .goreleaser.yml file with some sane defaults. # Make sure to check the documentation at http://goreleaser.com before: hooks: # You may remove this if you don't use go modules. - make cp-asset - go mod download builds: - env: - CGO_ENABLED=0 goos: - linux - windows - darwin archives: - replacements: darwin: Darwin linux: Linux windows: Windows 386: i386 amd64: x86_64 checksum: name_template: 'checksums.txt' snapshot: name_template: "{{ .Tag }}-next" changelog: sort: asc filters: exclude: - '^docs:' - '^test:' ================================================ FILE: Dockerfile ================================================ FROM golang:1.16-alpine as builder COPY ./ /pike RUN apk update \ && apk add git make \ && cd /pike \ && env \ && make cp-asset \ && CGO_ENABLED=0 make build FROM alpine:3.13 COPY --from=builder /pike/pike /usr/local/bin/pike COPY --from=builder /pike/entrypoint.sh /usr/local/bin/entrypoint.sh RUN addgroup -g 1000 pike \ && adduser -u 1000 -G pike -s /bin/sh -D pike \ && chmod +x /usr/local/bin/entrypoint.sh \ && apk add --no-cache ca-certificates USER pike WORKDIR /home/pike CMD ["pike"] ENTRYPOINT ["entrypoint.sh"] ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2021 Tree Xie Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: Makefile ================================================ .PHONY: default test test-cover dev hooks # for dev dev: air -c .air.toml # for test test: go test -race -cover ./... test-cover: go test -race -coverprofile=test.out ./... && go tool cover --html=test.out bench: go test -benchmem -bench=. ./... lint: golangci-lint run --timeout=2m tidy: go mod tidy cp-asset: rm -rf asset/web && cp -rf web asset/web build: go build -ldflags "-X main.date=`date -u +%Y%m%d.%H%M%S` -X main.commit=`git rev-parse --short HEAD`" -o pike build-linux: GOOS=linux GOARCH=amd64 make build && mv pike pike-linux build-darwin: GOOS=darwin GOARCH=amd64 make build && mv pike pike-darwin build-win: GOOS=windows GOARCH=amd64 make build && mv pike pike-win.exe hooks: cp hooks/* .git/hooks/ ================================================ FILE: README.md ================================================ # pike 此项目已不再维护,建议使用基于pingora的[pingap](https://github.com/vicanso/pingap)项目。 [![Build Status](https://github.com/vicanso/pike/workflows/Test/badge.svg)](https://github.com/vicanso/pike/actions) 与varnish类似的HTTP缓存服务器,主要的特性如下: - 提供WEB的管理配置界面,简单易上手 - 支持br与gzip两种压缩方式,根据客户端自动选择。对于可缓存与不可缓存请求使用不同的压缩配置,更佳的时间与空间的平衡 - 仅基于`Cache-Control`生成缓存有效期,接口缓存完全由接口开发者决定,准确而高效(开发比运维更清楚接口是否可缓存,可缓存时长) - 配置支持文件与etcd两种形式存储,无中断的配置实时更新 - 支持H2C的转发,提升与后端服务的调用性能(如果是内网转发,不需要启用) - 与upstream的调用支持`gzip`,`brotli`,`lz4`,`snappy`以及`zstd`压缩,可根据与upstream的网络线路选择合适的压缩方式 - 支持upstream检测失败时回调告警,可及时获取异常upstream信息 - 支持自定义日志,可配置按日期与大小分割日志并压缩 - LUR与持久化存储(可选)配合使用,可根据内存使用选择更小的LRU缓存并增加持久化存储的方式 - 持久化存储支持以下形式:badger(文件)、redis以及mongodb

## 启动方式 启动参数主要如下: - `config` 配置保存地址,可以指定为etcd或者本地文件,如:`etcd://user:pass@127.0.0.1:2379/pike`,本地文件:`/opt/pike/config.yml` - `admin` 配置管理后台的访问地址,如:`--admin=:9013` - `log` 日志文件目录,支持单文件与lumberjack形式,如`/var/pike.log`或`lumberjack:///tmp/pike.log?maxSize=100&maxAge=1&compress=true`,lumberjack会根据文件内容大小与时间将文件分割 ### 使用文件保存配置 ```bash # linux etcd,管理后台使用9013端口访问 ./pike --config=etcd://127.0.0.1:2379/pike --admin=:9013 # linux file,配置文件保存在/opt/pike.yml,管理后台使用9013端口访问 ./pike --config=/opt/pike.yml --admin=:9013 # docker docker run -it --rm \ -p 9013:9013 \ vicanso/pike:4.0.0-alpha --config=etcd://172.16.183.177:2379/pike --admin=:9013 ``` ## TODO - 缓存查询(如果缓存量较大,有可能导致查询性能较差,暂时未支持) ================================================ FILE: SUMMARY.md ================================================ # Summary * [程序启动](./docs/start.md) * [模块](./docs/modules.md) * [缓存处理](./docs/cache-handler.md) * [响应处理](./docs/response.md) * [告警](./docs/alarm.md) * [系统出错](./docs/error.md) * [性能测试](./docs/performance.md) * [答疑](./docs/questions.md) ================================================ FILE: app/app.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package app import ( "os" "runtime" "strconv" "strings" "time" "github.com/shirou/gopsutil/v3/process" "github.com/vicanso/pike/log" "go.uber.org/atomic" "go.uber.org/zap" ) type Info struct { GOARCH string `json:"goarch,omitempty"` GOOS string `json:"goos,omitempty"` GoVersion string `json:"goVersion,omitempty"` Version string `json:"version,omitempty"` BuildedAt string `json:"buildedAt,omitempty"` CommitID string `json:"commitID,omitempty"` Uptime string `json:"uptime,omitempty"` GoMaxProcs int `json:"goMaxProcs,omitempty"` CPUUsage int32 `json:"cpuUsage,omitempty"` RoutineCount int `json:"routineCount,omitempty"` ThreadCount int32 `json:"threadCount,omitempty"` RSS uint64 `json:"rss,omitempty"` RSSHumanize string `json:"rssHumanize,omitempty"` Swap uint64 `json:"swap,omitempty"` SwapHumanize string `json:"swapHumanize,omitempty"` } var buildedAt time.Time var commitID string var version string var startedAt = time.Now() var currentProcess *process.Process var cpuUsage = atomic.NewInt32(-1) func init() { p, err := process.NewProcess(int32(os.Getpid())) if err != nil { log.Default().Error("new process fail", zap.Error(err), ) } currentProcess = p _ = UpdateCPUUsage() } // SetBuildInfo set build info func SetBuildInfo(build, id, ver, buildBy string) { if strings.Contains(build, ".") && len(build) == 15 { buildedAt, _ = time.Parse("20060102.150405", build) } else { buildedAt, _ = time.Parse(time.RFC3339, build) } commitID = id if len(id) > 7 { commitID = id[0:7] } version = ver } const MB = 1024 * 1024 func bytesToMB(value uint64) string { v := value / MB return strconv.Itoa(int(v)) + " MB" } func GetVersion() string { return version } // GetInfo get application info func GetInfo() *Info { uptime := "" d := time.Since(startedAt) if d > 24*time.Hour { uptime = strconv.Itoa(int(d/(24*time.Hour))) + "d" } else if d > time.Hour { uptime = strconv.Itoa(int(d.Hours())) + "h" } else { uptime = (time.Second * time.Duration(d.Seconds())).String() } info := &Info{ GOARCH: runtime.GOARCH, GOOS: runtime.GOOS, GoVersion: runtime.Version(), Version: GetVersion(), BuildedAt: buildedAt.Format(time.RFC3339), CommitID: commitID, Uptime: uptime, GoMaxProcs: runtime.GOMAXPROCS(0), CPUUsage: cpuUsage.Load(), RoutineCount: runtime.NumGoroutine(), } if currentProcess != nil { info.ThreadCount, _ = currentProcess.NumThreads() memInfo, _ := currentProcess.MemoryInfo() if memInfo != nil { info.RSS = memInfo.RSS info.RSSHumanize = bytesToMB(memInfo.RSS) info.Swap = memInfo.Swap info.SwapHumanize = bytesToMB(memInfo.Swap) } } return info } // UpdateCPUUsage update cpu usage func UpdateCPUUsage() error { if currentProcess == nil { return nil } usage, err := currentProcess.Percent(0) if err != nil { return err } cpuUsage.Store(int32(usage)) return nil } ================================================ FILE: app/app_test.go ================================================ package app import ( "runtime" "testing" "github.com/stretchr/testify/assert" ) func TestSetSetBuildInfo(t *testing.T) { assert := assert.New(t) id := "123" SetBuildInfo("2021-02-27T01:41:32.416Z", id, "version", "") assert.Equal(id, commitID) assert.Equal("2021-02-27 01:41:32.416 +0000 UTC", buildedAt.UTC().String()) } func TestUpdateCPUUsage(t *testing.T) { assert := assert.New(t) err := UpdateCPUUsage() assert.Nil(err) } func TestGetInfo(t *testing.T) { assert := assert.New(t) info := GetInfo() assert.Equal(runtime.GOOS, info.GOOS) } ================================================ FILE: asset/asset.go ================================================ // MIT License // Copyright (c) 2021 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package asset import ( "embed" ) //go:embed * var assetFS embed.FS // GetFS get asset fs func GetFS() embed.FS { return assetFS } // ReadFile read file data from fs func ReadFile(file string) ([]byte, error) { return assetFS.ReadFile(file) } ================================================ FILE: cache/cache.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package cache import ( "bytes" "encoding/binary" "time" "unsafe" "github.com/vicanso/pike/config" ) // byteSliceToString converts a []byte to string without a heap allocation. func byteSliceToString(b []byte) string { return *(*string)(unsafe.Pointer(&b)) } // uint32ToBytes convert int to uint32 and convert to bytes func uint32ToBytes(value int) []byte { buf := make([]byte, 4) binary.BigEndian.PutUint32(buf, uint32(value)) return buf } // readUint32ToInt read uint32 from bytes and convert to int func readUint32ToInt(buffer *bytes.Buffer) (int, error) { var value uint32 err := binary.Read(buffer, binary.BigEndian, &value) if err != nil { return 0, err } return int(value), nil } // uint64ToBytes convert int64 to uint64 and covert to bytes func uint64ToBytes(value int64) []byte { buf := make([]byte, 8) binary.BigEndian.PutUint64(buf, uint64(value)) return buf } // readUint64 read uint64 from bytes and convert to int64 func readUint64ToInt64(buffer *bytes.Buffer) (int64, error) { var value uint64 err := binary.Read(buffer, binary.BigEndian, &value) if err != nil { return 0, err } return int64(value), nil } var defaultDispatchers = NewDispatchers(nil) // GetDispatcher get dispatcher form default dispatchers func GetDispatcher(name string) *dispatcher { return defaultDispatchers.Get(name) } // RemoveHTTPCache remove http cache form default dispatchers func RemoveHTTPCache(name string, key []byte) { defaultDispatchers.RemoveHTTPCache(name, key) } func convertConfigs(configs []config.CacheConfig) []DispatcherOption { opts := make([]DispatcherOption, 0) for _, item := range configs { d, _ := time.ParseDuration(item.HitForPass) opts = append(opts, DispatcherOption{ Name: item.Name, Size: item.Size, HitForPass: int(d.Seconds()), Store: item.Store, }) } return opts } // ResetDispatchers reset default dispatchers func ResetDispatchers(configs []config.CacheConfig) { defaultDispatchers.Reset(convertConfigs(configs)) } ================================================ FILE: cache/cache_test.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package cache import ( "bytes" "testing" "github.com/stretchr/testify/assert" "github.com/vicanso/pike/config" ) func TestConvertConfig(t *testing.T) { assert := assert.New(t) name := "cache-test" size := 100 hitForPass := 60 configs := []config.CacheConfig{ { Name: name, Size: size, HitForPass: "1m", }, } opts := convertConfigs(configs) assert.Equal(1, len(opts)) assert.Equal(name, opts[0].Name) assert.Equal(size, opts[0].Size) assert.Equal(hitForPass, opts[0].HitForPass) } func TestDefaultDispatcher(t *testing.T) { assert := assert.New(t) name := "test" assert.Nil(GetDispatcher(name)) ResetDispatchers([]config.CacheConfig{ { Name: name, Size: 100, HitForPass: "1m", }, }) assert.NotNil(GetDispatcher(name)) } func TestUint32ToBytes(t *testing.T) { assert := assert.New(t) buf := uint32ToBytes(1) value, err := readUint32ToInt(bytes.NewBuffer(buf)) assert.Nil(err) assert.Equal(1, value) } func TestUint64ToBytes(t *testing.T) { assert := assert.New(t) buf := uint64ToBytes(1) value, err := readUint64ToInt64(bytes.NewBuffer(buf)) assert.Nil(err) assert.Equal(int64(1), value) } ================================================ FILE: cache/dispatcher.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. // 创建缓存分发组件,初始化时创建128长度的lru缓存数组,每次根据缓存的key生成hash, // 根据hash的值判断使用对应的lru,减少锁的冲突,提升性能 package cache import ( "sync" "github.com/golang/groupcache/lru" "github.com/vicanso/pike/log" "github.com/vicanso/pike/store" "github.com/vicanso/pike/util" "go.uber.org/zap" ) // defaultZoneSize default zone size const defaultZoneSize = 128 type ( // httpLRUCache http lru cache httpLRUCache struct { cache *lru.Cache mu *sync.Mutex } // dispatcher http cache dispatcher dispatcher struct { zoneSize uint64 hitForPass int list []*httpLRUCache store store.Store } // dispatchers http cache dispatchers dispatchers struct { m *sync.Map } // DispatcherOption dispatcher option DispatcherOption struct { Name string Size int HitForPass int Store string } ) func newHTTPLRUCache(size int) *httpLRUCache { c := &httpLRUCache{ cache: lru.New(size), mu: &sync.Mutex{}, } return c } // getCache get http cache by key func (lru *httpLRUCache) getCache(key []byte) (*httpCache, bool) { value, ok := lru.cache.Get(byteSliceToString(key)) if !ok { return nil, false } if hc, ok := value.(*httpCache); ok { return hc, true } return nil, false } // addCache add http cache by key func (lru *httpLRUCache) addCache(key []byte, hc *httpCache) { lru.cache.Add(byteSliceToString(key), hc) } // removeCache remove http cache by key func (lru *httpLRUCache) removeCache(key []byte) { lru.cache.Remove(byteSliceToString(key)) } // NewDispatcher new a http cache dispatcher func NewDispatcher(option DispatcherOption) *dispatcher { zoneSize := defaultZoneSize size := option.Size if option.Size <= 0 { size = zoneSize * 100 } // 如果配置lru缓存数量较小,则zone的空间调小 if size < 1024 { zoneSize = 8 } // 按zoneSize与size创建二维缓存,存放的是LRU缓存实例 lruSize := size / zoneSize list := make([]*httpLRUCache, zoneSize) // 根据zone size生成一个缓存对列 for i := 0; i < zoneSize; i++ { list[i] = newHTTPLRUCache(lruSize) } disp := &dispatcher{ zoneSize: uint64(zoneSize), list: list, hitForPass: option.HitForPass, } // 如果有配置store if option.Store != "" { store, err := store.NewStore(option.Store) if err != nil { log.Default().Error("new store fail", zap.String("url", option.Store), zap.Error(err), ) } if store != nil { disp.store = store } } return disp } func (d *dispatcher) getLRU(key []byte) *httpLRUCache { // 计算hash值 index := MemHash(key) % d.zoneSize // 从预定义的列表中取对应的缓存 return d.list[index] } // GetHTTPCache get http cache through key func (d *dispatcher) GetHTTPCache(key []byte) *httpCache { // 锁只在public的方法在使用,public方法之间不互相调用 lru := d.getLRU(key) lru.mu.Lock() defer lru.mu.Unlock() hc, ok := lru.getCache(key) if ok { return hc } if d.store != nil { hc = NewHTTPStoreCache(key, d.store) } else { hc = NewHTTPCache() } lru.addCache(key, hc) return hc } // RemoveHTTPCache remove http cache func (d *dispatcher) RemoveHTTPCache(key []byte) { lru := d.getLRU(key) lru.mu.Lock() defer lru.mu.Unlock() lru.removeCache(key) if d.store != nil { err := d.store.Delete(key) if err != nil { log.Default().Error("delete from store fail", zap.String("key", string(key)), zap.Error(err), ) } } } // GetHitForPass get hit for pass func (d *dispatcher) GetHitForPass() int { return d.hitForPass } // NewDispatchers new dispatchers func NewDispatchers(opts []DispatcherOption) *dispatchers { ds := &dispatchers{ m: &sync.Map{}, } for _, opt := range opts { ds.m.Store(opt.Name, NewDispatcher(opt)) } return ds } // Get get dispatcher by name func (ds *dispatchers) Get(name string) *dispatcher { value, ok := ds.m.Load(name) if !ok { return nil } d, ok := value.(*dispatcher) if !ok { return nil } return d } // RemoveHTTPCache remove http cache func (ds *dispatchers) RemoveHTTPCache(name string, key []byte) { if name != "" { d := ds.Get(name) if d == nil { return } d.RemoveHTTPCache(key) return } // 如果未指定名称,则从所有缓存中删除 ds.m.Range(func(_, v interface{}) bool { d, ok := v.(*dispatcher) if ok { d.RemoveHTTPCache(key) } return true }) } // Reset reset the dispatchers, remove not exists dispatchers and create new dispatcher. If the dispatcher is exists, then use the old one. func (ds *dispatchers) Reset(opts []DispatcherOption) { // 删除不再使用的dispatcher _ = util.MapDelete(ds.m, func(key string) bool { // 如果不存在的,则删除 exists := false for _, opt := range opts { if opt.Name == key { exists = true break } } return !exists }) for _, opt := range opts { _, ok := ds.m.Load(opt.Name) // 如果当前dispatcher不存在,则创建 // 如果存在,对原来的size不调整 if !ok { ds.m.Store(opt.Name, NewDispatcher(opt)) } } } ================================================ FILE: cache/dispatcher_test.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package cache import ( "testing" "github.com/stretchr/testify/assert" ) func TestLRUGetCache(t *testing.T) { assert := assert.New(t) httpLRU := newHTTPLRUCache(10) key := []byte("abcd") c, ok := httpLRU.getCache(key) assert.False(ok) assert.Nil(c) httpLRU.cache.Add(string(key), "abc") c, ok = httpLRU.getCache(key) assert.False(ok) assert.Nil(c) hc := &httpCache{} httpLRU.cache.Add(string(key), hc) c, ok = httpLRU.getCache(key) assert.True(ok) assert.Equal(hc, c) } func TestDispatcher(t *testing.T) { assert := assert.New(t) d := NewDispatcher(DispatcherOption{ Size: 0, HitForPass: 30, }) assert.Equal(30, d.GetHitForPass()) key := []byte("key") c := d.GetHTTPCache(key) c.createdAt = 1 for i := 0; i < 10; i++ { assert.Equal(c, d.GetHTTPCache([]byte("key"))) } d.RemoveHTTPCache(key) hc := d.GetHTTPCache(key) assert.NotNil(hc) assert.Empty(hc.createdAt) } func TestDispatchers(t *testing.T) { assert := assert.New(t) name1 := "test1" name2 := "test2" ds := NewDispatchers([]DispatcherOption{ { Name: name1, Size: 100, }, }) assert.NotNil(ds.Get(name1)) // 第一次reset,清除name1,添加name2 ds.Reset([]DispatcherOption{ { Name: name2, Size: 100, }, }) assert.Nil(ds.Get(name1)) assert.NotNil(ds.Get(name2)) // 再次reset ds.Reset([]DispatcherOption{ { Name: name2, Size: 100, }, }) assert.Nil(ds.Get(name1)) assert.NotNil(ds.Get(name2)) key := []byte("abc") hc := ds.Get(name2).GetHTTPCache(key) assert.NotNil(hc) hc.createdAt = 1 ds.RemoveHTTPCache("", key) hc1 := ds.Get(name2).GetHTTPCache(key) assert.Empty(hc1.createdAt) } ================================================ FILE: cache/http_cache.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. // 针对同一个请求,在状态未知时,控制只允许一个请求转发至后续流程 // 在获取状态之后,支持hit for pass 与 hit 两种处理,其中hit for pass表示该请求不可缓存, // 直接转发至后端程序,而hit则返回当前缓存的响应数据 package cache import ( "bytes" "sync" "time" "github.com/vicanso/pike/compress" "github.com/vicanso/pike/log" "github.com/vicanso/pike/store" "go.uber.org/zap" ) type Status int const ( // StatusUnknown unknown status StatusUnknown Status = iota // StatusFetching fetching status StatusFetching // StatusHitForPass hit-for-pass status StatusHitForPass // StatusHit hit cache status StatusHit // StatusPassed pass status StatusPassed ) // defaultHitForPassSeconds default hit for pass: 300 seconds const defaultHitForPassSeconds = 300 type ( // httpCache http cache (only for same request method+host+uri) httpCache struct { // key the key of store data key []byte // store the store to save http cache store store.Store mu *sync.RWMutex status Status chanList []chan struct{} response *HTTPResponse createdAt int64 expiredAt int64 } ) func nowUnix() int64 { return time.Now().Unix() } func (i Status) String() string { switch i { case StatusFetching: return "fetching" case StatusHitForPass: return "hitForPass" case StatusHit: return "hit" case StatusPassed: return "passed" default: return "unknown" } } // NewHTTPCache new a http cache func NewHTTPCache() *httpCache { return &httpCache{ mu: &sync.RWMutex{}, } } // NewHTTPStoreCache new a http store cache func NewHTTPStoreCache(key []byte, store store.Store) *httpCache { hc := NewHTTPCache() hc.key = key hc.store = store return hc } // Get get http cache func (hc *httpCache) Get() (status Status, response *HTTPResponse) { hc.mu.Lock() status, done, response := hc.get() hc.mu.Unlock() // 如果done不为空,表示需要等待确认当前请求状态 if done != nil { // TODO 后续再考虑是否需要添加timeout(proxy部分有超时,因此暂时可不添加) <-done // 完成后重新获取当前状态与响应 // 此时状态只可能是hit for pass 或者 hit // 而此两种状态的数据缓存均不会立即失效,因此可以从hc中获取 status = hc.status response = hc.response } return } // Bytes httpcache to bytes func (hc *httpCache) Bytes() (data []byte, err error) { statusBuf := uint32ToBytes(int(hc.status)) var respBuf []byte // 如果有响应数据,则转换 if hc.response != nil { respBuf, err = hc.response.Bytes() if err != nil { return } } respSizeBuf := uint32ToBytes(len(respBuf)) createdAtBuf := uint64ToBytes(hc.createdAt) expiredAtBuf := uint64ToBytes(hc.expiredAt) return bytes.Join([][]byte{ statusBuf, respSizeBuf, respBuf, createdAtBuf, expiredAtBuf, }, []byte("")), nil } // FromBytes restore httpcache from bytes func (hc *httpCache) FromBytes(data []byte) (err error) { buffer := bytes.NewBuffer(data) status, err := readUint32ToInt(buffer) if err != nil { return } hc.status = Status(status) respSize, err := readUint32ToInt(buffer) if err != nil { return } respBuf := buffer.Next(respSize) resp := &HTTPResponse{} err = resp.FromBytes(respBuf) if err != nil { return } hc.response = resp hc.createdAt, err = readUint64ToInt64(buffer) if err != nil { return } hc.expiredAt, err = readUint64ToInt64(buffer) if err != nil { return } return } // initFromStore init cache from store func (hc *httpCache) initFromStore() (err error) { if hc.store == nil || len(hc.key) == 0 { return } data, err := hc.store.Get(hc.key) if err != nil { return } return hc.FromBytes(data) } // saveToStore save cache to store func (hc *httpCache) saveToStore() (err error) { if hc.store == nil || len(hc.key) == 0 { return } data, err := hc.Bytes() if err != nil { return } ttl := time.Duration(hc.expiredAt-nowUnix()) * time.Second return hc.store.Set(hc.key, data, ttl) } func (hc *httpCache) get() (status Status, done chan struct{}, data *HTTPResponse) { now := nowUnix() // 如果首次创建并且设置store if hc.status == StatusUnknown { // 如果从缓存中读取失败,暂忽略出错信息 err := hc.initFromStore() // 如果是无数据,则不输出日志 if err != nil && err != store.ErrNotFound { log.Default().Error("init from store fail", zap.Error(err), ) } } // 如果缓存已过期,设置为StatusUnknown if hc.expiredAt != 0 && hc.expiredAt < now { hc.status = StatusUnknown // 将有效期重置(若不重置则导致hs.status每次都被重置为Unknown) hc.expiredAt = 0 } // 仅有同类请求为fetching,才会需要等待 // 如果是fetching,则相同的请求需要等待完成 // 通过chan返回完成 if hc.status == StatusFetching { done = make(chan struct{}) hc.chanList = append(hc.chanList, done) } if hc.status == StatusUnknown { hc.status = StatusFetching hc.chanList = make([]chan struct{}, 0, 5) } status = hc.status // 为什么需要返回status与data // 因为有可能在函数调用完成后,刚好缓存过期了,如果此时不返回status与data // 当其它goroutine获取锁之后,有可能刚好重置数据 if status == StatusHit { data = hc.response } return } // HitForPass set the http cache hit for pass func (hc *httpCache) HitForPass(ttl int) { hc.mu.Lock() defer hc.mu.Unlock() if ttl <= 0 { ttl = defaultHitForPassSeconds } hc.expiredAt = nowUnix() + int64(ttl) hc.status = StatusHitForPass list := hc.chanList hc.chanList = nil for _, ch := range list { ch <- struct{}{} } err := hc.saveToStore() if err != nil { log.Default().Error("save cache to store fail", zap.String("category", "hitForPass"), zap.String("key", string(hc.key)), zap.Error(err), ) } } // Cacheable set http cache cacheable and compress it func (hc *httpCache) Cacheable(resp *HTTPResponse, ttl int) { hc.mu.Lock() defer hc.mu.Unlock() // 如果是可缓存数据,则选择默认的best compression resp.CompressSrv = compress.BestCompression _ = resp.Compress() hc.createdAt = nowUnix() hc.expiredAt = hc.createdAt + int64(ttl) hc.status = StatusHit hc.response = resp list := hc.chanList hc.chanList = nil for _, ch := range list { ch <- struct{}{} } err := hc.saveToStore() if err != nil { log.Default().Error("save cache to store fail", zap.String("category", "cacheable"), zap.String("key", string(hc.key)), zap.Error(err), ) } } // Age get http cache's age func (hc *httpCache) Age() int { hc.mu.RLock() defer hc.mu.RUnlock() return int(nowUnix() - hc.createdAt) } // GetStatus get http cache status func (hc *httpCache) GetStatus() Status { hc.mu.RLock() defer hc.mu.RUnlock() return hc.status } // IsExpired the cache is expired func (hc *httpCache) IsExpired() bool { hc.mu.RLock() defer hc.mu.RUnlock() if hc.expiredAt == 0 { return false } return hc.expiredAt < nowUnix() } ================================================ FILE: cache/http_cache_test.go ================================================ package cache import ( "sync" "testing" "time" "github.com/stretchr/testify/assert" ) func TestCacheStatusString(t *testing.T) { assert := assert.New(t) assert.Equal("fetching", StatusFetching.String()) assert.Equal("hitForPass", StatusHitForPass.String()) assert.Equal("hit", StatusHit.String()) assert.Equal("passed", StatusPassed.String()) assert.Equal("unknown", StatusUnknown.String()) } func TestHTTPCacheBytes(t *testing.T) { assert := assert.New(t) hc := httpCache{ status: StatusFetching, response: &HTTPResponse{ CompressSrv: "compress", }, createdAt: 1, expiredAt: 2, } data, err := hc.Bytes() assert.Nil(err) newHC := NewHTTPCache() err = newHC.FromBytes(data) assert.Nil(err) assert.Equal(hc.status, newHC.status) assert.Equal(hc.response.CompressSrv, newHC.response.CompressSrv) assert.Equal(hc.createdAt, newHC.createdAt) assert.Equal(hc.expiredAt, newHC.expiredAt) } func TestHTTPCacheGet(t *testing.T) { assert := assert.New(t) cacheResp, err := NewHTTPResponse(200, nil, "", []byte("Hello world!")) // 避免压缩,方便后面对数据检测 cacheResp.CompressMinLength = 1024 assert.Nil(err) expiredHC := NewHTTPCache() expiredHC.expiredAt = 1 expiredHC.status = StatusHitForPass tests := []struct { status Status hc *httpCache resp *HTTPResponse }{ { status: StatusHit, hc: expiredHC, resp: cacheResp, }, { status: StatusHitForPass, hc: NewHTTPCache(), }, } type testResult struct { status Status resp *HTTPResponse } for _, tt := range tests { mu := sync.Mutex{} wg := sync.WaitGroup{} results := make([]*testResult, 0) max := 10 for i := 0; i < max; i++ { wg.Add(1) go func() { status, resp := tt.hc.Get() mu.Lock() defer mu.Unlock() results = append(results, &testResult{ status: status, resp: resp, }) wg.Done() }() } // 简单等待10ms,让所有for中的goroutine都已执行 time.Sleep(10 * time.Millisecond) switch tt.status { case StatusHit: tt.hc.Cacheable(tt.resp, 300) case StatusHitForPass: tt.hc.HitForPass(-1) } wg.Wait() count := 0 for _, result := range results { // 如果不相等的,只能是fetching if result.status != tt.status { assert.Equal(StatusFetching, result.status) } else { assert.Equal(tt.status, result.status) count++ // fetching的数据由fetching取,不使用缓存返回 assert.Equal(tt.resp, result.resp) } } // 其它状态的都相同 assert.Equal(max-1, count) // 在后续已设置缓存状态之后,再次获取直接返回 status, resp := tt.hc.Get() assert.Equal(tt.status, status) assert.Equal(tt.resp, resp) } } func TestHTTPCacheAge(t *testing.T) { assert := assert.New(t) hc := httpCache{ createdAt: nowUnix() - 1, mu: &sync.RWMutex{}, } assert.GreaterOrEqual(hc.Age(), 1) } func TestHTTPCacheGetStatus(t *testing.T) { assert := assert.New(t) hc := httpCache{ status: StatusFetching, mu: &sync.RWMutex{}, } assert.Equal(StatusFetching, hc.GetStatus()) } func TestHTTPCacheIsExpired(t *testing.T) { assert := assert.New(t) hc := httpCache{ expiredAt: 0, mu: &sync.RWMutex{}, } assert.False(hc.IsExpired()) hc.expiredAt = 1 assert.True(hc.IsExpired()) hc.expiredAt = nowUnix() + 10 assert.False(hc.IsExpired()) } ================================================ FILE: cache/http_response.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. // HTTP响应数据,只用于根据客户端支持编码以及最小压缩长度返回对应的数据 // 对于可缓存且大于最小缓存则可使用compress方法保存gzip与br两种缓存数据, // 在客户端请求时根据客户端支持的编码返回,若不支持压缩,则从解压获取原始数据返回 // 对于不可缓存数据,根据客户端支持的编码以及数据长度返回对应数据 package cache import ( "bytes" "encoding/json" "errors" "net/http" "regexp" "strings" "github.com/vicanso/elton" "github.com/vicanso/pike/compress" ) var ignoreHeaders = []string{ "Content-Encoding", "Content-Length", "Connection", "Date", } var ErrBodyIsNil = errors.New("body is nil") var defaultCompressContentTypeFilter = regexp.MustCompile(`text|javascript|json|wasm|xml|font`) type ( // HTTPResponse http response's cache HTTPResponse struct { // 压缩服务名称 CompressSrv string `json:"compressSrv,omitempty"` // 压缩最小尺寸 CompressMinLength int `json:"compressMinLength,omitempty"` // 压缩数据类型 CompressContentTypeFilter *regexp.Regexp `json:"-"` // 响应头 Header http.Header `json:"header,omitempty"` // 响应状态码 StatusCode int `json:"statusCode,omitempty"` GzipBody []byte `json:"gzipBody,omitempty"` BrBody []byte `json:"brBody,omitempty"` RawBody []byte `json:"rawBody,omitempty"` } ) func cloneHeaderAndIgnore(header http.Header) http.Header { h := header.Clone() for _, key := range ignoreHeaders { h.Del(key) } return h } // NewHTTPResponse new a http response func NewHTTPResponse(statusCode int, header http.Header, encoding string, data []byte) (*HTTPResponse, error) { resp := &HTTPResponse{ StatusCode: statusCode, Header: cloneHeaderAndIgnore(header), } switch encoding { case compress.EncodingGzip: resp.GzipBody = data case compress.EncodingBrotli: resp.BrBody = data case "": resp.RawBody = data default: // 取默认的compress来解压 compressSrv := compress.Get("") data, err := compressSrv.Decompress(encoding, data) if err != nil { return nil, err } header.Del(elton.HeaderContentEncoding) resp.RawBody = data } return resp, nil } // Bytes http response to bytes func (resp *HTTPResponse) Bytes() (data []byte, err error) { var contentTypeFilter string if resp.CompressContentTypeFilter != nil { contentTypeFilter = resp.CompressContentTypeFilter.String() } // 压缩服务名称 compressSrvBuf := []byte(resp.CompressSrv) compressSrvBufSize := uint32ToBytes(len(compressSrvBuf)) // 最小压缩尺寸,4个字节 compressMinLengthBuf := uint32ToBytes(resp.CompressMinLength) // // 压缩类型,4个字节保存长度 filterBuf := []byte(contentTypeFilter) filterBufSize := uint32ToBytes(len(filterBuf)) // 响应头,4个字节保存长度 headerBuf, err := json.Marshal(resp.Header) if err != nil { return } headerBufSize := uint32ToBytes(len(headerBuf)) // 响应码,4个字节 statusCodeBuf := uint32ToBytes(resp.StatusCode) // gzip,4个字节保存长度 gzipBufSize := uint32ToBytes(len(resp.GzipBody)) // br,4个字节保存长度 brBufSize := uint32ToBytes(len(resp.BrBody)) // raw,4个字节保存长度 rawBufSize := uint32ToBytes(len(resp.RawBody)) return bytes.Join([][]byte{ compressSrvBufSize, compressSrvBuf, compressMinLengthBuf, filterBufSize, filterBuf, headerBufSize, headerBuf, statusCodeBuf, gzipBufSize, resp.GzipBody, brBufSize, resp.BrBody, rawBufSize, resp.RawBody, }, []byte("")), nil } // FromBytes http response from bytes func (resp *HTTPResponse) FromBytes(data []byte) (err error) { if len(data) == 0 { return } buffer := bytes.NewBuffer(data) size, err := readUint32ToInt(buffer) if err != nil { return } resp.CompressSrv = string(buffer.Next(size)) resp.CompressMinLength, err = readUint32ToInt(buffer) if err != nil { return } size, err = readUint32ToInt(buffer) if err != nil { return } contentTypeFilter := string(buffer.Next(size)) if contentTypeFilter != "" { resp.CompressContentTypeFilter, err = regexp.Compile(contentTypeFilter) if err != nil { return } } size, err = readUint32ToInt(buffer) if err != nil { return } headerBuf := buffer.Next(size) err = json.Unmarshal(headerBuf, &resp.Header) if err != nil { return } resp.StatusCode, err = readUint32ToInt(buffer) if err != nil { return } size, err = readUint32ToInt(buffer) if err != nil { return } resp.GzipBody = buffer.Next(size) size, err = readUint32ToInt(buffer) if err != nil { return } resp.BrBody = buffer.Next(size) size, err = readUint32ToInt(buffer) if err != nil { return } resp.RawBody = buffer.Next(size) return } func (resp *HTTPResponse) shouldCompressed() bool { // 如果数据都小于最小压缩长度,则表示无需压缩 if len(resp.RawBody) <= resp.CompressMinLength && len(resp.GzipBody) <= resp.CompressMinLength && len(resp.BrBody) <= resp.CompressMinLength { return false } filter := resp.CompressContentTypeFilter if filter == nil { filter = defaultCompressContentTypeFilter } // 数据类型匹配才可压缩 return filter.MatchString(resp.Header.Get(elton.HeaderContentType)) } // GetRawBody get raw body of http response(not compress) func (resp *HTTPResponse) GetRawBody() (rawBody []byte, err error) { rawBody = resp.RawBody if len(rawBody) != 0 { return } compressSrv := compress.Get("") // 原始数据为空,需要从gzip或br中解压 if len(resp.GzipBody) != 0 { return compressSrv.Gunzip(resp.GzipBody) } if len(resp.BrBody) != 0 { return compressSrv.BrotliDecode(resp.BrBody) } return } // Compress compress http response's data func (resp *HTTPResponse) Compress() (err error) { // 如果数据不需要压缩,则直接返回 if !resp.shouldCompressed() { return } // 如果gzip与br均已压缩 if len(resp.GzipBody) != 0 && len(resp.BrBody) != 0 { return } rawBody, err := resp.GetRawBody() if err != nil { return } // 如果原始数据为空,则直接报错,因为如果数据为空,则在前置判断是否可压缩已返回 if len(rawBody) == 0 { err = ErrBodyIsNil return } compressSrv := compress.Get(resp.CompressSrv) if len(resp.GzipBody) == 0 { resp.GzipBody, err = compressSrv.Gzip(rawBody) if err != nil { return } } if len(resp.BrBody) == 0 { resp.BrBody, err = compressSrv.Brotli(rawBody) if err != nil { return } } // 压缩后清空原始数据,因为基本所有的客户端都支持gzip, // 没必要再保存原始数据,如果有需要,可以从gzip中解压 resp.RawBody = nil return } func (resp *HTTPResponse) getBodyByAcceptEncoding(acceptEncoding string) (encoding string, body []byte, err error) { compressSrv := compress.Get(resp.CompressSrv) // 如果支持br,而且br有数据 acceptBr := strings.Contains(acceptEncoding, compress.EncodingBrotli) if acceptBr && len(resp.BrBody) != 0 { return compress.EncodingBrotli, resp.BrBody, nil } // 如果支持gzip,而且gzip有数据 acceptGzip := strings.Contains(acceptEncoding, compress.EncodingGzip) if acceptGzip && len(resp.GzipBody) != 0 { return compress.EncodingGzip, resp.GzipBody, nil } // 获取原始数据压缩 rawBody, err := resp.GetRawBody() if err != nil { return "", nil, err } shouldCompressed := resp.shouldCompressed() // 数据不应该压缩,直接返回 if !shouldCompressed { return "", rawBody, nil } // 支持br,数据从原始数据压缩 if acceptBr { brBody, err := compressSrv.Brotli(rawBody) if err != nil { return "", nil, err } return compress.EncodingBrotli, brBody, nil } // 支持gzip,数据从原始数据压缩 if acceptGzip { gzipBody, err := compressSrv.Gzip(rawBody) if err != nil { return "", nil, err } return compress.EncodingGzip, gzipBody, nil } // 都不支持,返回原始数据 return "", rawBody, nil } // Fill fill response to context func (resp *HTTPResponse) Fill(c *elton.Context) (err error) { encoding, body, err := resp.getBodyByAcceptEncoding(c.GetRequestHeader(elton.HeaderAcceptEncoding)) if err != nil { return } c.MergeHeader(resp.Header) c.SetHeader(elton.HeaderContentEncoding, encoding) c.StatusCode = resp.StatusCode c.BodyBuffer = bytes.NewBuffer(body) return } ================================================ FILE: cache/http_response_test.go ================================================ package cache import ( "encoding/json" "net/http" "net/http/httptest" "regexp" "strings" "testing" "github.com/golang/snappy" "github.com/stretchr/testify/assert" "github.com/vicanso/elton" "github.com/vicanso/pike/compress" ) func TestCloneHeaderAndIgnore(t *testing.T) { assert := assert.New(t) assert.Equal("Content-Encoding,Content-Length,Connection,Date", strings.Join(ignoreHeaders, ",")) h := make(http.Header) for _, key := range ignoreHeaders { h.Add(key, "value") } newHeader := cloneHeaderAndIgnore(h) for _, key := range ignoreHeaders { assert.Empty(newHeader.Get(key)) } } func TestHTTPResponseMarshal(t *testing.T) { assert := assert.New(t) header := make(http.Header) header.Add("a", "1") header.Add("a", "2") header.Add("b", "3") resp := &HTTPResponse{ CompressSrv: "compress", CompressMinLength: 1000, CompressContentTypeFilter: regexp.MustCompile(`a|b|c`), Header: header, StatusCode: 200, GzipBody: []byte("gzip"), BrBody: []byte("br"), RawBody: []byte("raw"), } data, err := resp.Bytes() assert.Nil(err) newResp := &HTTPResponse{} err = newResp.FromBytes(data) assert.Nil(err) assert.Equal(resp.CompressSrv, newResp.CompressSrv) assert.Equal(resp.CompressMinLength, newResp.CompressMinLength) assert.Equal(resp.CompressContentTypeFilter, newResp.CompressContentTypeFilter) assert.Equal(resp.Header, newResp.Header) assert.Equal(resp.StatusCode, newResp.StatusCode) assert.Equal(resp.GzipBody, newResp.GzipBody) assert.Equal(resp.BrBody, newResp.BrBody) assert.Equal(resp.RawBody, newResp.RawBody) } func TestNewHTTPResponse(t *testing.T) { assert := assert.New(t) data := []byte("Hello world!") compressSrv := compress.Get("") tests := []struct { statusCode int header http.Header encoding string fn func() ([]byte, error) }{ { statusCode: 200, header: http.Header{}, encoding: compress.EncodingGzip, fn: func() ([]byte, error) { return compressSrv.Gzip(data) }, }, { statusCode: 201, header: http.Header{}, encoding: compress.EncodingBrotli, fn: func() ([]byte, error) { return compressSrv.Brotli(data) }, }, { statusCode: 200, header: http.Header{}, encoding: compress.EncodingSnappy, fn: func() ([]byte, error) { dst := []byte{} dst = snappy.Encode(dst, data) return dst, nil }, }, } for _, tt := range tests { result, err := tt.fn() assert.Nil(err) resp, err := NewHTTPResponse(tt.statusCode, tt.header, tt.encoding, result) assert.Nil(err) assert.Equal(tt.statusCode, resp.StatusCode) switch tt.encoding { case compress.EncodingGzip: assert.NotNil(resp.GzipBody) assert.Nil(resp.RawBody) assert.Nil(resp.BrBody) case compress.EncodingBrotli: assert.NotNil(resp.BrBody) assert.Nil(resp.GzipBody) assert.Nil(resp.RawBody) default: assert.NotNil(resp.RawBody) assert.Nil(resp.GzipBody) assert.Nil(resp.BrBody) } } } func TestShouldCompressed(t *testing.T) { assert := assert.New(t) data := []byte("Hello world!") tests := []struct { header http.Header rawBody []byte gzipBody []byte brBody []byte shouldCompressed bool }{ { shouldCompressed: false, }, { header: http.Header{ elton.HeaderContentType: []string{"image/png"}, }, rawBody: data, shouldCompressed: false, }, { header: http.Header{ elton.HeaderContentType: []string{"application/json"}, }, rawBody: data, shouldCompressed: true, }, { header: http.Header{ elton.HeaderContentType: []string{"application/json"}, }, gzipBody: data, shouldCompressed: true, }, { header: http.Header{ elton.HeaderContentType: []string{"application/json"}, }, brBody: data, shouldCompressed: true, }, } for _, tt := range tests { resp := &HTTPResponse{ Header: tt.header, RawBody: tt.rawBody, GzipBody: tt.gzipBody, BrBody: tt.brBody, CompressMinLength: 1, } result := resp.shouldCompressed() assert.Equal(tt.shouldCompressed, result) } } func TestGetRawBody(t *testing.T) { assert := assert.New(t) compressSrv := compress.Get("") data := []byte("Hello world!") gzipData, err := compressSrv.Gzip(data) assert.Nil(err) brData, err := compressSrv.Brotli(data) assert.Nil(err) tests := []struct { rawBody []byte gzipBody []byte brBody []byte }{ { rawBody: data, }, { gzipBody: gzipData, }, { brBody: brData, }, } for _, tt := range tests { resp := &HTTPResponse{ RawBody: tt.rawBody, BrBody: tt.brBody, GzipBody: tt.gzipBody, } rawBody, err := resp.GetRawBody() assert.Nil(err) assert.Equal(data, rawBody) } } func TestCompress(t *testing.T) { assert := assert.New(t) data := []byte("Hello world!") compressSrv := compress.Get("") gzipData, err := compressSrv.Gzip(data) assert.Nil(err) brData, err := compressSrv.Brotli(data) assert.Nil(err) tests := []struct { rawBody []byte gzipBody []byte brBody []byte }{ { rawBody: data, }, { gzipBody: gzipData, brBody: brData, }, } for _, tt := range tests { resp := &HTTPResponse{ Header: http.Header{ elton.HeaderContentType: []string{"application/json"}, }, RawBody: tt.rawBody, GzipBody: tt.gzipBody, BrBody: tt.brBody, CompressMinLength: 1, } err := resp.Compress() assert.Nil(err) assert.Nil(resp.RawBody) assert.Equal(gzipData, resp.GzipBody) assert.Equal(brData, resp.BrBody) } } func TestGetBodyByAcceptEncoding(t *testing.T) { assert := assert.New(t) data := []byte("Hello world!") compressSrv := compress.Get("") gzipData, err := compressSrv.Gzip(data) assert.Nil(err) brData, err := compressSrv.Brotli(data) assert.Nil(err) tests := []struct { rawBody []byte gzipBody []byte brBody []byte acceptEncoding string minLength int resultEncoding string result []byte }{ // 支持br且已存在br { brBody: brData, acceptEncoding: compress.EncodingBrotli, resultEncoding: compress.EncodingBrotli, result: brData, }, // 支持gzip且已存在gzip { gzipBody: gzipData, acceptEncoding: compress.EncodingGzip, resultEncoding: compress.EncodingGzip, result: gzipData, }, // 数据不应该被压缩,没有gzip,而且原始数据小于最小压缩长度 { rawBody: data, minLength: 1000, acceptEncoding: compress.EncodingGzip, resultEncoding: "", result: data, }, // 支持br但没有br,且数据不应该压缩 { rawBody: data, minLength: 1000, acceptEncoding: compress.EncodingBrotli, resultEncoding: "", result: data, }, // 支持br,而且原始数据大于最小压缩长度,压缩后返回 { rawBody: data, acceptEncoding: compress.EncodingBrotli, resultEncoding: compress.EncodingBrotli, result: brData, }, // 支持gzip,而且压缩数据大于最小压缩长度,压缩后返回 { rawBody: data, acceptEncoding: compress.EncodingGzip, resultEncoding: compress.EncodingGzip, result: gzipData, }, // 不支持压缩,从br中返回 { brBody: brData, acceptEncoding: "", resultEncoding: "", result: data, }, // 不支持压缩,从gzip中返回 { gzipBody: gzipData, acceptEncoding: "", resultEncoding: "", result: data, }, } for _, tt := range tests { resp := &HTTPResponse{ Header: http.Header{ elton.HeaderContentType: []string{"application/json"}, }, RawBody: tt.rawBody, GzipBody: tt.gzipBody, BrBody: tt.brBody, CompressMinLength: tt.minLength, } encoding, body, err := resp.getBodyByAcceptEncoding(tt.acceptEncoding) assert.Nil(err) assert.Equal(tt.resultEncoding, encoding) assert.Equal(tt.result, body) } } func TestFill(t *testing.T) { assert := assert.New(t) data := []byte("Hello world!") compressSrv := compress.Get("") gzipData, err := compressSrv.Gzip(data) assert.Nil(err) brData, err := compressSrv.Brotli(data) assert.Nil(err) tests := []struct { rawBody []byte acceptEncoding string resultEncoding string result []byte }{ { rawBody: data, acceptEncoding: compress.EncodingBrotli, resultEncoding: compress.EncodingBrotli, result: brData, }, { rawBody: data, acceptEncoding: compress.EncodingGzip, resultEncoding: compress.EncodingGzip, result: gzipData, }, { rawBody: data, acceptEncoding: "", resultEncoding: "", result: data, }, } for _, tt := range tests { resp := &HTTPResponse{ Header: http.Header{ elton.HeaderContentType: []string{"application/json"}, }, RawBody: tt.rawBody, StatusCode: 200, } req := httptest.NewRequest("GET", "/", nil) c := elton.NewContext(httptest.NewRecorder(), req) c.SetRequestHeader(elton.HeaderAcceptEncoding, tt.acceptEncoding) err := resp.Fill(c) assert.Nil(err) assert.Equal(200, c.StatusCode) assert.Equal(tt.resultEncoding, c.GetHeader(elton.HeaderContentEncoding)) assert.Equal(tt.result, c.BodyBuffer.Bytes()) } } func BenchmarkMarshalHTTPResponse(b *testing.B) { resp := &HTTPResponse{ CompressSrv: "compress", CompressMinLength: 1024, Header: http.Header{ "Content-Type": []string{ "application/json; charset=UTF-8", }, "ETag": []string{ `"60-R79m3yeTgBMQWG5Ysx2j_T3gIsM="`, }, }, GzipBody: make([]byte, 5*1024), BrBody: make([]byte, 5*1024), } for i := 0; i < b.N; i++ { buf, err := json.Marshal(resp) if err != nil || len(buf) == 0 { panic("to bytes fail") } } } func BenchmarkHTTPResponseToBytes(b *testing.B) { resp := &HTTPResponse{ CompressSrv: "compress", CompressMinLength: 1024, CompressContentTypeFilter: regexp.MustCompile(`text|javascript|json|wasm|xml|font`), Header: http.Header{ "Content-Type": []string{ "application/json; charset=UTF-8", }, "ETag": []string{ `"60-R79m3yeTgBMQWG5Ysx2j_T3gIsM="`, }, }, GzipBody: make([]byte, 5*1024), BrBody: make([]byte, 5*1024), } for i := 0; i < b.N; i++ { buf, err := resp.Bytes() if err != nil || len(buf) == 0 { panic("to bytes fail") } } } ================================================ FILE: cache/memhash.go ================================================ // copy from https://github.com/dgraph-io/ristretto/blob/master/z/rtutil.go package cache import ( "unsafe" ) // NanoTime returns the current time in nanoseconds from a monotonic clock. //go:linkname NanoTime runtime.nanotime func NanoTime() int64 // CPUTicks is a faster alternative to NanoTime to measure time duration. //go:linkname CPUTicks runtime.cputicks func CPUTicks() int64 type stringStruct struct { str unsafe.Pointer len int } //go:noescape //go:linkname memhash runtime.memhash func memhash(p unsafe.Pointer, h, s uintptr) uintptr // MemHash is the hash function used by go map, it utilizes available hardware instructions(behaves // as aeshash if aes instruction is available). // NOTE: The hash seed changes for every process. So, this cannot be used as a persistent hash. func MemHash(data []byte) uint64 { ss := (*stringStruct)(unsafe.Pointer(&data)) return uint64(memhash(ss.str, 0, uintptr(ss.len))) } // MemHashString is the hash function used by go map, it utilizes available hardware instructions // (behaves as aeshash if aes instruction is available). // NOTE: The hash seed changes for every process. So, this cannot be used as a persistent hash. func MemHashString(str string) uint64 { ss := (*stringStruct)(unsafe.Pointer(&str)) return uint64(memhash(ss.str, 0, uintptr(ss.len))) } // FastRand is a fast thread local random function. //go:linkname FastRand runtime.fastrand func FastRand() uint32 ================================================ FILE: cache/memhash_test.go ================================================ package cache import ( "testing" "github.com/stretchr/testify/assert" ) func TestMemHash(t *testing.T) { assert := assert.New(t) data := "GET aslant.site /users/v1/me" v := MemHash([]byte(data)) assert.Equal(v, MemHash([]byte(data))) assert.Equal(v, MemHashString(data)) assert.NotEqual(v, MemHash([]byte("abc"))) } ================================================ FILE: compress/brotli.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package compress import ( "bytes" "io/ioutil" "github.com/andybalholm/brotli" ) const ( defaultBrQuality = 6 ) func brotliEncode(buf []byte, level int) (*bytes.Buffer, error) { buffer := new(bytes.Buffer) if level <= 0 || level > 11 { level = defaultBrQuality } w := brotli.NewWriterLevel(buffer, level) defer w.Close() _, err := w.Write(buf) if err != nil { return nil, err } return buffer, nil } // doBrotli brotli compress func doBrotli(buf []byte, level int) ([]byte, error) { buffer, err := brotliEncode(buf, level) if err != nil { return nil, err } return buffer.Bytes(), nil } // doBrotliDecode brotli decode func doBrotliDecode(buf []byte) ([]byte, error) { if len(buf) == 0 { return nil, nil } r := brotli.NewReader(bytes.NewBuffer(buf)) return ioutil.ReadAll(r) } ================================================ FILE: compress/brotli_test.go ================================================ package compress import ( "testing" "github.com/stretchr/testify/assert" ) func TestDoBrotli(t *testing.T) { assert := assert.New(t) // 压缩级别超出则与默认压缩级别一样 tests := []struct { data []byte level int resultSize int }{ { data: compressTestData, level: 0, resultSize: 589, }, { data: compressTestData, level: 12, resultSize: 589, }, { data: compressTestData, level: 8, resultSize: 592, }, } for _, tt := range tests { data, err := doBrotli(tt.data, tt.level) assert.Nil(err) assert.Equal(tt.resultSize, len(data)) assert.NotEqual(tt.data, data) } } func TestDoBrotliDecode(t *testing.T) { assert := assert.New(t) tests := []struct { data []byte }{ { data: compressTestData, }, } for _, tt := range tests { data, err := doBrotli(tt.data, 0) assert.Nil(err) assert.NotNil(data) assert.NotEqual(tt.data, data) data, err = doBrotliDecode(data) assert.Nil(err) assert.Equal(tt.data, data) } } ================================================ FILE: compress/compress.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package compress import ( "compress/gzip" "errors" "sync" "github.com/andybalholm/brotli" "github.com/vicanso/pike/config" "go.uber.org/atomic" ) const ( EncodingGzip = "gzip" EncodingBrotli = "br" EncodingLZ4 = "lz4" EncodingSnappy = "snz" EncodingZSTD = "zst" ) type ( compressSrv struct { levels map[string]*atomic.Int32 } CompressOption struct { Name string Levels map[string]int } compressSrvs struct { m *sync.Map } ) const BestCompression = "bestCompression" var defaultCompressSrvList = NewServices([]CompressOption{ { Name: BestCompression, Levels: map[string]int{ // -1则会选择默认的压缩级别 "br": -1, "gzip": gzip.BestCompression, }, }, }) var defaultCompressSrv = NewService() var notSupportedEncoding = errors.New("not supported encoding") // NewServices new compress services func NewServices(opts []CompressOption) *compressSrvs { cs := &compressSrvs{ m: &sync.Map{}, } for _, opt := range opts { srv := NewService() srv.SetLevels(opt.Levels) cs.m.Store(opt.Name, srv) } return cs } // NewService new compress service func NewService() *compressSrv { // 配置压缩级别,只设置了gzip与br levels := map[string]*atomic.Int32{ EncodingGzip: atomic.NewInt32(gzip.DefaultCompression), EncodingBrotli: atomic.NewInt32(brotli.DefaultCompression), } return &compressSrv{ levels: levels, } } // Get get service by name func (cs *compressSrvs) Get(name string) *compressSrv { value, ok := cs.m.Load(name) if !ok { return defaultCompressSrv } srv, ok := value.(*compressSrv) if !ok { return defaultCompressSrv } return srv } // Reset reset the services func (cs *compressSrvs) Reset(opts []CompressOption) { // 此处不删除存在的压缩服务,因为compress实例并不占多少内存 // 也避免配置了bestCompression后删除 for _, opt := range opts { srv := NewService() srv.SetLevels(opt.Levels) cs.m.Store(opt.Name, srv) } } func convertConfigs(configs []config.CompressConfig) []CompressOption { opts := make([]CompressOption, 0) for _, item := range configs { levels := make(map[string]int) for key, value := range item.Levels { levels[key] = int(value) } opts = append(opts, CompressOption{ Name: item.Name, Levels: levels, }) } return opts } // Reset reset default compress services func Reset(configs []config.CompressConfig) { defaultCompressSrvList.Reset(convertConfigs(configs)) } // Get get default compress service func Get(name string) *compressSrv { return defaultCompressSrvList.Get(name) } // GetLevel get compress level func (srv *compressSrv) GetLevel(encoding string) int { levelValue, ok := srv.levels[encoding] if !ok { return 0 } return int(levelValue.Load()) } // SetLevels set compres levels func (srv *compressSrv) SetLevels(levels map[string]int) { for name, value := range levels { levelValue, ok := srv.levels[name] if ok { levelValue.Store(int32(value)) } } } // Decompress decompress data func (srv *compressSrv) Decompress(encoding string, data []byte) ([]byte, error) { switch encoding { case EncodingGzip: return srv.Gunzip(data) case EncodingBrotli: return srv.BrotliDecode(data) case EncodingLZ4: return srv.LZ4Decode(data) case EncodingSnappy: return srv.SnappyDecode(data) case EncodingZSTD: return srv.ZSTDDecode(data) case "": return data, nil } return nil, notSupportedEncoding } // Gzip compress data by gzip func (srv *compressSrv) Gzip(data []byte) ([]byte, error) { level := srv.GetLevel(EncodingGzip) return doGzip(data, level) } // Gunzip decompress data by gzip func (srv *compressSrv) Gunzip(data []byte) ([]byte, error) { return doGunzip(data) } // Brotli compress data by br func (srv *compressSrv) Brotli(data []byte) ([]byte, error) { level := srv.GetLevel(EncodingBrotli) return doBrotli(data, level) } // BrotliDecode decompress data by brotli func (srv *compressSrv) BrotliDecode(data []byte) ([]byte, error) { return doBrotliDecode(data) } // LZ4Decode decompress data by lz4 func (srv *compressSrv) LZ4Decode(data []byte) ([]byte, error) { return doLZ4Decode(data) } // SnappyDecode decompress data by snappy func (srv *compressSrv) SnappyDecode(data []byte) ([]byte, error) { return doSnappyDecode(data) } // ZSTDDecode decompress data by zstd func (srv *compressSrv) ZSTDDecode(data []byte) ([]byte, error) { return doZSTDDecode(data) } ================================================ FILE: compress/compress_test.go ================================================ package compress import ( "compress/gzip" "testing" "github.com/andybalholm/brotli" "github.com/stretchr/testify/assert" "github.com/vicanso/pike/config" ) var compressTestData = []byte(`Brotli is a data format specification[2] for data streams compressed with a specific combination of the general-purpose LZ77 lossless compression algorithm, Huffman coding and 2nd order context modelling. Brotli is a compression algorithm developed by Google and works best for text compression. Google employees Jyrki Alakuijala and Zoltán Szabadka initially developed Brotli to decrease the size of transmissions of WOFF2 web fonts, and in that context Brotli was a continuation of the development of zopfli, which is a zlib-compatible implementation of the standard gzip and deflate specifications. Brotli allows a denser packing than gzip and deflate because of several algorithmic and format level improvements: the use of context models for literals and copy distances, describing copy distances through past distances, use of move-to-front queue in entropy code selection, joint-entropy coding of literal and copy lengths, the use of graph algorithms in block splitting, and a larger backward reference window are example improvements. The Brotli specification was generalized in September 2015 for HTTP stream compression (content-encoding type 'br'). This generalized iteration also improved the compression ratio by using a pre-defined dictionary of frequently used words and phrases.`) func TestConvertConfig(t *testing.T) { assert := assert.New(t) name := "compress-test" levels := map[string]uint{ "gzip": 9, "br": 8, } configs := []config.CompressConfig{ { Name: name, Levels: levels, }, } opts := convertConfigs(configs) assert.Equal(1, len(opts)) assert.Equal(name, opts[0].Name) assert.Equal(9, opts[0].Levels["gzip"]) assert.Equal(8, opts[0].Levels["br"]) } func TestCompressLevel(t *testing.T) { assert := assert.New(t) srv := NewService() assert.Equal(gzip.DefaultCompression, srv.GetLevel(EncodingGzip)) assert.Equal(brotli.DefaultCompression, srv.GetLevel(EncodingBrotli)) srv.SetLevels(map[string]int{ EncodingGzip: 1, EncodingBrotli: 2, }) assert.Equal(1, srv.GetLevel(EncodingGzip)) assert.Equal(2, srv.GetLevel(EncodingBrotli)) } func TestCompressList(t *testing.T) { assert := assert.New(t) srvList := NewServices([]CompressOption{ { Name: "test", Levels: map[string]int{ "gzip": 1, "br": 2, }, }, }) srv := srvList.Get("test") assert.Equal(1, srv.GetLevel("gzip")) assert.Equal(2, srv.GetLevel("br")) srvList.Reset([]CompressOption{ { Name: "test1", Levels: map[string]int{ "gzip": 3, "br": 4, }, }, }) // compress并不删除原有的srv assert.Equal(srv, srvList.Get("test")) srv = srvList.Get("test1") assert.Equal(3, srv.GetLevel("gzip")) assert.Equal(4, srv.GetLevel("br")) // 从默认获取 assert.Equal(defaultCompressSrv, Get("test")) Reset([]config.CompressConfig{ { Name: "test", Levels: map[string]uint{ "gzip": 3, "br": 4, }, }, }) assert.Equal(3, Get("test").GetLevel("gzip")) assert.Equal(4, Get("test").GetLevel("br")) } func TestDecompress(t *testing.T) { assert := assert.New(t) data := compressTestData // 不同的压缩解压 tests := []struct { fn func() ([]byte, error) encoding string }{ { fn: func() ([]byte, error) { return Get("").Gzip(data) }, encoding: EncodingGzip, }, { fn: func() ([]byte, error) { return Get("").Brotli(data) }, encoding: EncodingBrotli, }, { fn: func() ([]byte, error) { return doLZ4Encode(data, 0) }, encoding: EncodingLZ4, }, { fn: func() ([]byte, error) { dst := doSnappyEncode(data) return dst, nil }, encoding: EncodingSnappy, }, { fn: func() ([]byte, error) { return data, nil }, encoding: "", }, } for _, tt := range tests { result, err := tt.fn() assert.Nil(err) assert.NotEmpty(result) result, err = Get("").Decompress(tt.encoding, result) assert.Nil(err) assert.Equal(data, result) } _, err := Get("").Decompress("a", nil) assert.Equal(notSupportedEncoding, err) } ================================================ FILE: compress/gzip.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package compress import ( "bytes" "compress/gzip" "io/ioutil" ) // doGunzip gunzip func doGunzip(buf []byte) ([]byte, error) { r, err := gzip.NewReader(bytes.NewBuffer(buf)) if err != nil { return nil, err } defer r.Close() return ioutil.ReadAll(r) } func gzipFn(buf []byte, level int) (*bytes.Buffer, error) { buffer := new(bytes.Buffer) if level <= 0 || level > gzip.BestCompression { level = gzip.DefaultCompression } w, err := gzip.NewWriterLevel(buffer, level) if err != nil { return nil, err } defer w.Close() _, err = w.Write(buf) if err != nil { return nil, err } return buffer, nil } // doGzip gzip function func doGzip(buf []byte, level int) ([]byte, error) { buffer, err := gzipFn(buf, level) if err != nil { return nil, err } return buffer.Bytes(), nil } ================================================ FILE: compress/gzip_test.go ================================================ package compress import ( "testing" "github.com/stretchr/testify/assert" ) func TestDoGzip(t *testing.T) { assert := assert.New(t) // 压缩级别超出则与默认压缩级别一样 tests := []struct { data []byte level int resultSize int }{ { data: compressTestData, level: 0, resultSize: 660, }, { data: compressTestData, level: 0, resultSize: 660, }, { data: compressTestData, level: 0, resultSize: 660, }, } for _, tt := range tests { data, err := doGzip(tt.data, tt.level) assert.Nil(err) assert.NotEqual(tt.data, data) assert.Equal(tt.resultSize, len(data)) } } func TestDoGunzip(t *testing.T) { assert := assert.New(t) tests := []struct { data []byte }{ { data: compressTestData, }, } for _, tt := range tests { data, err := doGzip(tt.data, 0) assert.Nil(err) assert.NotEmpty(tt.data, data) assert.NotNil(data) data, err = doGunzip(data) assert.Nil(err) assert.Equal(tt.data, data) } } ================================================ FILE: compress/lz4.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package compress import ( "github.com/pierrec/lz4" ) func doLZ4Encode(data []byte, level int) ([]byte, error) { buf := make([]byte, len(data)) n, err := lz4.CompressBlock(data, buf, nil) if err != nil { return nil, err } buf = buf[:n] return buf, nil } func doLZ4Decode(buf []byte) ([]byte, error) { dst := make([]byte, 10*len(buf)) n, err := lz4.UncompressBlock(buf, dst) if err != nil { return nil, err } dst = dst[:n] return dst, nil } ================================================ FILE: compress/lz4_test.go ================================================ package compress import ( "testing" "github.com/stretchr/testify/assert" ) func TestDoLZ4Decode(t *testing.T) { assert := assert.New(t) data := compressTestData result, err := doLZ4Encode(data, 0) assert.Nil(err) assert.NotNil(result) assert.NotEqual(data, result) result, err = doLZ4Decode(result) assert.Nil(err) assert.Equal(data, result) } ================================================ FILE: compress/snappy.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package compress import ( "github.com/golang/snappy" ) func doSnappyEncode(data []byte) []byte { dst := []byte{} dst = snappy.Encode(dst, data) return dst } func doSnappyDecode(buf []byte) ([]byte, error) { var dst []byte return snappy.Decode(dst, buf) } ================================================ FILE: compress/snappy_test.go ================================================ package compress import ( "testing" "github.com/stretchr/testify/assert" ) func TestDoSnappyDecode(t *testing.T) { assert := assert.New(t) data := compressTestData dst := doSnappyEncode(data) assert.NotNil(dst) assert.NotEqual(data, dst) buf, err := doSnappyDecode(dst) assert.Nil(err) assert.Equal(data, buf) } ================================================ FILE: compress/zstd.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package compress import ( "github.com/klauspost/compress/zstd" ) func doZSTDEncode(data []byte, level int) ([]byte, error) { l := zstd.EncoderLevel(level) if l < zstd.SpeedFastest || l > zstd.SpeedBestCompression { l = zstd.SpeedDefault } encoder, err := zstd.NewWriter(nil, zstd.WithEncoderLevel(l)) if err != nil { return nil, err } return encoder.EncodeAll(data, make([]byte, 0, len(data))), nil } func doZSTDDecode(buf []byte) ([]byte, error) { decoder, err := zstd.NewReader(nil) if err != nil { return nil, err } return decoder.DecodeAll(buf, nil) } ================================================ FILE: compress/zstd_test.go ================================================ package compress import ( "testing" "github.com/stretchr/testify/assert" ) func TestDoZSTDDecode(t *testing.T) { assert := assert.New(t) data := compressTestData dst, err := doZSTDEncode(data, 1) assert.Nil(err) assert.NotNil(dst) assert.NotEqual(data, dst) buf, err := doZSTDDecode(dst) assert.Nil(err) assert.Equal(data, buf) } ================================================ FILE: config/config.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package config import ( "errors" "strings" "github.com/vicanso/pike/app" "github.com/vicanso/pike/log" "go.uber.org/zap" "gopkg.in/yaml.v2" ) type ( // Client client interface Client interface { // Get get the data of key Get() (data []byte, err error) // Set set the data of key Set(data []byte) (err error) // Watch watch change Watch(OnChange) // Close close client Close() error } OnChange func() // PikeConfig pike config PikeConfig struct { // YAML 界面展示之用,不需要保存 YAML string `json:"yaml,omitempty" yaml:"-"` // Version 程序版本 Version string `json:"version,omitempty" yaml:"version,omitempty" ` Admin AdminConfig `json:"admin,omitempty" yaml:"admin,omitempty" validate:"omitempty,dive"` Compresses []CompressConfig `json:"compresses,omitempty" yaml:"compresses,omitempty" validate:"omitempty,dive"` Caches []CacheConfig `json:"caches,omitempty" yaml:"caches,omitempty" validate:"omitempty,dive"` Upstreams []UpstreamConfig `json:"upstreams,omitempty" yaml:"upstreams,omitempty" validate:"omitempty,dive"` Locations []LocationConfig `json:"locations,omitempty" yaml:"locations,omitempty" validate:"omitempty,dive"` Servers []ServerConfig `json:"servers,omitempty" yaml:"servers,omitempty" validate:"omitempty,dive"` } // AdminConfig admin config AdminConfig struct { User string `json:"user,omitempty" yaml:"user,omitempty" validate:"omitempty,min=3"` Password string `json:"password,omitempty" yaml:"password,omitempty" validate:"omitempty,min=6"` Remark string `json:"remark,omitempty" yaml:"remark,omitempty"` } // CompressConfig compress config CompressConfig struct { Name string `json:"name,omitempty" yaml:"name,omitempty" validate:"required,xName"` Levels map[string]uint `json:"levels,omitempty" yaml:"levels,omitempty"` Remark string `json:"remark,omitempty" yaml:"remark,omitempty"` } // CacheConfig cache config CacheConfig struct { Name string `json:"name,omitempty" yaml:"name,omitempty" validate:"required,xName"` Size int `json:"size,omitempty" yaml:"size,omitempty" validate:"required,gt=0" ` HitForPass string `json:"hitForPass,omitempty" yaml:"hitForPass,omitempty" validate:"required,xDuration"` Store string `json:"store,omitempty" yaml:"store,omitempty" validate:"omitempty,url"` Remark string `json:"remark,omitempty" yaml:"remark,omitempty"` } // UpstreamServerConfig upstream server config UpstreamServerConfig struct { Addr string `json:"addr,omitempty" yaml:"addr,omitempty" validate:"required,xAddr"` Backup bool `json:"backup,omitempty" yaml:"backup,omitempty"` // Healthy 界面展示使用,不需要保存 Healthy bool `json:"healthy,omitempty" yaml:"-"` } // UpstreamConfig upstream config UpstreamConfig struct { Name string `json:"name,omitempty" yaml:"name,omitempty" validate:"required,xName"` HealthCheck string `json:"healthCheck,omitempty" yaml:"healthCheck,omitempty" validate:"omitempty,xURLPath"` Policy string `json:"policy,omitempty" yaml:"policy,omitempty" validate:"omitempty,xPolicy"` EnableH2C bool `json:"enableH2C,omitempty" yaml:"enableH2C,omitempty"` AcceptEncoding string `json:"acceptEncoding,omitempty" yaml:"acceptEncoding,omitempty" validate:"omitempty,ascii"` Servers []UpstreamServerConfig `json:"servers,omitempty" yaml:"servers,omitempty" validate:"required,dive"` Remark string `json:"remark,omitempty" yaml:"remark,omitempty"` } // LocationConfig location config LocationConfig struct { Name string `json:"name,omitempty" yaml:"name,omitempty" validate:"required,xName"` Upstream string `json:"upstream,omitempty" yaml:"upstream,omitempty" validate:"required,xName"` Prefixes []string `json:"prefixes,omitempty" yaml:"prefixes,omitempty" validate:"omitempty,dive,xURLPath"` Rewrites []string `json:"rewrites,omitempty" yaml:"rewrites,omitempty" validate:"omitempty,dive,xDivide"` QueryStrings []string `json:"queryStrings,omitempty" yaml:"queryStrings,omitempty" validate:"omitempty,dive,xDivide"` RespHeaders []string `json:"respHeaders,omitempty" yaml:"respHeaders,omitempty" validate:"omitempty,dive,xDivide"` ReqHeaders []string `json:"reqHeaders,omitempty" yaml:"reqHeaders,omitempty" validate:"omitempty,dive,xDivide"` Hosts []string `json:"hosts,omitempty" yaml:"hosts,omitempty" validate:"omitempty,dive,hostname"` ProxyTimeout string `json:"proxyTimeout,omitempty" yaml:"proxyTimeout,omitempty" validate:"omitempty,xDuration"` Remark string `json:"remark,omitempty" yaml:"remark,omitempty"` } // ServerConfig server config ServerConfig struct { LogFormat string `json:"logFormat,omitempty" yaml:"logFormat,omitempty"` Addr string `json:"addr,omitempty" yaml:"addr,omitempty" validate:"required,ascii"` Locations []string `json:"locations,omitempty" yaml:"locations,omitempty" validate:"required,dive,xName"` Cache string `json:"cache,omitempty" yaml:"cache,omitempty" validate:"required,xName"` Compress string `json:"compress,omitempty" yaml:"compress,omitempty" validate:"omitempty"` // 最小压缩长度 CompressMinLength string `json:"compressMinLength,omitempty" yaml:"compressMinLength,omitempty" validate:"omitempty,xSize"` // 压缩数据类型 CompressContentTypeFilter string `json:"compressContentTypeFilter,omitempty" yaml:"compressContentTypeFilter,omitempty" validate:"omitempty,xFilter"` Remark string `json:"remark,omitempty" yaml:"remark,omitempty"` } ) var defaultClient Client var ( ErrUpstreamNotFound = errors.New("upstream of location not found") ErrLocationNotFound = errors.New("location of server not found") ErrCacheNotFound = errors.New("cache of server not found") ErrCompressNotFound = errors.New("compress of server not found") ) // InitDefaultClient init default client func InitDefaultClient(url string) (err error) { if defaultClient != nil { // 如果关闭出错,仅输出日志 e := defaultClient.Close() if e != nil { log.Default().Error("close config client fail", zap.Error(e), ) } } defaultClient = nil if strings.HasPrefix(url, "etcd://") { c, err := NewEtcdClient(url) if err != nil { return err } defaultClient = c return nil } c, err := NewFileClient(url) if err != nil { return } defaultClient = c return } func (c *PikeConfig) Validate() error { err := defaultValidator.Struct(c) if err != nil { return err } // 判断location中设置的upstream是否存在 for _, l := range c.Locations { found := false for _, upstream := range c.Upstreams { if l.Upstream == upstream.Name { found = true } } if !found { return ErrUpstreamNotFound } } // 校验server中的location, cache 以及 compress 是否正确设置 for _, s := range c.Servers { for _, item := range s.Locations { notFound := true for _, l := range c.Locations { if item == l.Name { notFound = false } } if notFound { return ErrLocationNotFound } } foundCache := s.Cache == "" for _, cacheConfig := range c.Caches { if cacheConfig.Name == s.Cache { foundCache = true } } if !foundCache { return ErrCacheNotFound } foundCompress := s.Compress == "" for _, compressConfig := range c.Compresses { if compressConfig.Name == s.Compress { foundCompress = true } } if !foundCompress { return ErrCompressNotFound } } return nil } // GetAdminConfig get admin config func (p *PikeConfig) GetAdminConfig() AdminConfig { return p.Admin } // Read read pike config func Read() (config *PikeConfig, err error) { data, err := defaultClient.Get() if err != nil { return } config = &PikeConfig{} err = yaml.Unmarshal(data, config) if err != nil { return } config.YAML = string(data) return } // Write write pike config func Write(config *PikeConfig) (err error) { err = config.Validate() if err != nil { return } config.Version = app.GetVersion() data, err := yaml.Marshal(config) if err != nil { return } return defaultClient.Set(data) } // Close close the client func Close() (err error) { if defaultClient != nil { err = defaultClient.Close() } defaultClient = nil return } // Watch watch the change func Watch(onChange OnChange) { defaultClient.Watch(onChange) } ================================================ FILE: config/config_test.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package config import ( "math/rand" "os" "strconv" "testing" "github.com/stretchr/testify/assert" ) func TestValidate(t *testing.T) { assert := assert.New(t) // location配置的upstream不存在 c := &PikeConfig{ Locations: []LocationConfig{ { Name: "location-test", Upstream: "upstream-test", }, }, } err := c.Validate() assert.Equal(ErrUpstreamNotFound, err) c = &PikeConfig{ Servers: []ServerConfig{ { Addr: ":3015", Locations: []string{ "location-test", }, Cache: "cache-test", }, }, } err = c.Validate() assert.Equal(ErrLocationNotFound, err) c = &PikeConfig{ Upstreams: []UpstreamConfig{ { Name: "upstream-test", Servers: []UpstreamServerConfig{ { Addr: "http://127.0.0.1:3015", }, }, }, }, Locations: []LocationConfig{ { Name: "location-test", Upstream: "upstream-test", }, }, Servers: []ServerConfig{ { Addr: ":3015", Locations: []string{ "location-test", }, Cache: "cache-test", }, }, } err = c.Validate() assert.Equal(ErrCacheNotFound, err) c = &PikeConfig{ Caches: []CacheConfig{ { Name: "cache-test", Size: 100, HitForPass: "1m", }, }, Upstreams: []UpstreamConfig{ { Name: "upstream-test", Servers: []UpstreamServerConfig{ { Addr: "http://127.0.0.1:3015", }, }, }, }, Locations: []LocationConfig{ { Name: "location-test", Upstream: "upstream-test", }, }, Servers: []ServerConfig{ { Addr: ":3015", Locations: []string{ "location-test", }, Cache: "cache-test", Compress: "compress-test", }, }, } err = c.Validate() assert.Equal(ErrCompressNotFound, err) c = &PikeConfig{ Caches: []CacheConfig{ { Name: "cache-test", Size: 100, HitForPass: "1m", }, }, Compresses: []CompressConfig{ { Name: "compress-test", }, }, Upstreams: []UpstreamConfig{ { Name: "upstream-test", HealthCheck: "/ping", Policy: "first", Servers: []UpstreamServerConfig{ { Addr: "http://127.0.0.1:3015", }, }, }, }, Locations: []LocationConfig{ { Name: "location-test", Upstream: "upstream-test", Prefixes: []string{ "/api", }, Rewrites: []string{ "/api/:/$1", }, QueryStrings: []string{ "id:1", }, Hosts: []string{ "test.com", }, RespHeaders: []string{ "X-Resp-Id:1", }, ReqHeaders: []string{ "X-Req-Id:2", }, }, }, Servers: []ServerConfig{ { Addr: ":3015", Locations: []string{ "location-test", }, Cache: "cache-test", Compress: "compress-test", CompressMinLength: "1kb", CompressContentTypeFilter: "text|json", }, }, } err = c.Validate() assert.Nil(err) } func TestInitDefaultClient(t *testing.T) { assert := assert.New(t) file := strconv.Itoa(int(rand.Int31())) err := InitDefaultClient("etcd://127.0.0.1:2379/" + file) assert.Nil(err) err = InitDefaultClient(os.TempDir() + "/" + file) assert.Nil(err) err = Close() assert.Nil(err) } func TestReadWriteConfig(t *testing.T) { assert := assert.New(t) file := strconv.Itoa(int(rand.Int31())) err := InitDefaultClient(os.TempDir() + "/" + file) assert.Nil(err) c := &PikeConfig{ Compresses: []CompressConfig{ { Name: "compress-test", }, }, } err = Write(c) assert.Nil(err) currentConfig, err := Read() assert.Nil(err) assert.Equal(c.Compresses[0].Name, currentConfig.Compresses[0].Name) } ================================================ FILE: config/etcd_client.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. // etcd client for config package config import ( "context" "crypto/tls" "net/url" "strings" "time" "github.com/coreos/etcd/clientv3" ) // etcdClient etcd client type etcdClient struct { c *clientv3.Client key string Timeout time.Duration } const ( defaultEtcdTimeout = 5 * time.Second ) // NewEtcdClient create a new etcd client func NewEtcdClient(uri string) (client *etcdClient, err error) { u, err := url.Parse(uri) if err != nil { return } conf := clientv3.Config{ Endpoints: strings.Split(u.Host, ","), DialTimeout: defaultEtcdTimeout, } if u.User != nil { conf.Username = u.User.Username() conf.Password, _ = u.User.Password() } cert := u.Query().Get("cert") key := u.Query().Get("key") if cert != "" && key != "" { tlsConfig := tls.Config{} tlsConfig.Certificates = make([]tls.Certificate, 1) // TODO 支持更多种形式的拉取证书,如HTTP的方式 tlsConfig.Certificates[0], err = tls.LoadX509KeyPair(cert, key) if err != nil { return nil, err } conf.TLS = &tlsConfig } // TODO 后续支持从querystring中配置更多的参数 c, err := clientv3.New(conf) if err != nil { return } client = &etcdClient{ c: c, key: u.Path, } return } func (ec *etcdClient) context() (context.Context, context.CancelFunc) { d := ec.Timeout if d == 0 { d = defaultEtcdTimeout } return context.WithTimeout(context.Background(), d) } // Get get data from etcd func (ec *etcdClient) Get() (data []byte, err error) { ctx, cancel := ec.context() defer cancel() resp, err := ec.c.Get(ctx, ec.key) if err != nil { return } kvs := resp.Kvs if len(kvs) == 0 { return } data = kvs[0].Value return } // Set set data to etcd func (ec *etcdClient) Set(data []byte) (err error) { ctx, cancel := ec.context() defer cancel() _, err = ec.c.Put(ctx, ec.key, string(data)) return } // Watch watch config change func (ec *etcdClient) Watch(onChange OnChange) { ch := ec.c.Watch(context.Background(), ec.key) // 只监听有变化则可 for range ch { onChange() } } // Close close etcd client func (ec *etcdClient) Close() error { return ec.c.Close() } ================================================ FILE: config/etcd_client_test.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package config import ( "testing" "github.com/stretchr/testify/assert" ) func TestEtcdClient(t *testing.T) { assert := assert.New(t) etcdClient, err := NewEtcdClient("etcd://root:123456@127.0.0.1:2379/test-etcd") assert.Nil(err) defer etcdClient.Close() go etcdClient.Watch(func() { }) data := []byte("abc") err = etcdClient.Set(nil) assert.Nil(err) result, err := etcdClient.Get() assert.Nil(err) assert.Empty(result) err = etcdClient.Set(data) assert.Nil(err) result, err = etcdClient.Get() assert.Nil(err) assert.Equal(data, result) } ================================================ FILE: config/file_client.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. // file client for config package config import ( "io/ioutil" "os" "github.com/fsnotify/fsnotify" "github.com/vicanso/pike/log" "go.uber.org/zap" ) // fileClient file client type fileClient struct { file string watcher *fsnotify.Watcher } const defaultPerm os.FileMode = 0600 // NewFileClient create a new file client func NewFileClient(file string) (client *fileClient, err error) { f, err := os.OpenFile(file, os.O_RDONLY|os.O_CREATE, defaultPerm) if err != nil { return } defer f.Close() watcher, err := fsnotify.NewWatcher() if err != nil { return } client = &fileClient{ file: file, watcher: watcher, } return } // Get get data from file func (fc *fileClient) Get() (data []byte, err error) { return ioutil.ReadFile(fc.file) } // Set set data to file func (fc *fileClient) Set(data []byte) (err error) { return ioutil.WriteFile(fc.file, data, defaultPerm) } // Watch watch config change func (fc *fileClient) Watch(onChange OnChange) { err := fc.watcher.Add(fc.file) if err != nil { log.Default().Error("add watch fail", zap.String("file", fc.file), zap.Error(err), ) return } for { select { case event, ok := <-fc.watcher.Events: if !ok { return } if event.Op&fsnotify.Write == fsnotify.Write { onChange() } case err, ok := <-fc.watcher.Errors: if !ok { return } if err != nil { log.Default().Error("watch error", zap.String("file", fc.file), zap.Error(err), ) } } } } // Close close file client func (fc *fileClient) Close() error { return fc.watcher.Close() } ================================================ FILE: config/file_client_test.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package config import ( "os" "testing" "github.com/stretchr/testify/assert" ) func TestFileClient(t *testing.T) { assert := assert.New(t) fileClient, err := NewFileClient(os.TempDir() + "/test-file") assert.Nil(err) defer fileClient.Close() go fileClient.Watch(func() { }) data := []byte("abc") err = fileClient.Set(nil) assert.Nil(err) result, err := fileClient.Get() assert.Nil(err) assert.Empty(result) err = fileClient.Set(data) assert.Nil(err) result, err = fileClient.Get() assert.Nil(err) assert.Equal(data, result) } ================================================ FILE: config/validate.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package config import ( "net/url" "reflect" "regexp" "strings" "time" "github.com/dustin/go-humanize" "github.com/go-playground/validator/v10" us "github.com/vicanso/upstream" ) var defaultValidator = validator.New() func init() { addAlias("xName", "max=20") addValidate("xDuration", func(fl validator.FieldLevel) bool { value, ok := toString(fl) if !ok { return false } _, err := time.ParseDuration(value) return err == nil }) addValidate("xAddr", func(fl validator.FieldLevel) bool { value, ok := toString(fl) if !ok { return false } urlInfo, err := url.Parse(value) if err != nil { return false } return contains([]string{"http", "https"}, urlInfo.Scheme) }) addValidate("xURLPath", func(fl validator.FieldLevel) bool { value, ok := toString(fl) if !ok { return false } return value != "" && value[0] == '/' }) addValidate("xDivide", func(fl validator.FieldLevel) bool { value, ok := toString(fl) if !ok { return false } arr := strings.Split(value, ":") return len(arr) == 2 }) addValidate("xSize", func(fl validator.FieldLevel) bool { value, ok := toString(fl) if !ok { return false } _, err := humanize.ParseBytes(value) return err == nil }) addValidate("xFilter", func(fl validator.FieldLevel) bool { value, ok := toString(fl) if !ok { return false } if len(value) > 1000 { return false } _, err := regexp.Compile(value) return err == nil }) addValidate("xPolicy", func(fl validator.FieldLevel) bool { value, ok := toString(fl) if !ok { return false } return contains([]string{ us.PolicyFirst, us.PolicyRandom, us.PolicyRoundRobin, us.PolicyLeastconn, }, value) }) } // toString 转换为string func toString(fl validator.FieldLevel) (string, bool) { value := fl.Field() if value.Kind() != reflect.String { return "", false } return value.String(), true } func contains(arr []string, str string) bool { found := false for _, item := range arr { if item == str { found = true break } } return found } func addValidate(tag string, fn validator.Func, args ...bool) { err := defaultValidator.RegisterValidation(tag, fn, args...) if err != nil { panic(err) } } func addAlias(alias, tags string) { defaultValidator.RegisterAlias(alias, tags) } ================================================ FILE: docs/alarm.md ================================================ --- description: 告警回调,通过配置相应的回调地址可及时获知程序异常 --- 当程序出现异常时,如更新配置失败、upstream节点异常等,若启动指定了告警的回调地址,程序则会以POST的形式调用告警地址,内容如下: ```json { "application": "pike", "hostname": "tiger", "category": "类别", "message": "告警消息" } ``` category有如下的类型: - `upstream` 当upstream下的某个server检测失败时,则触发告警 - `config` 当更新config失败时,则触发告警 - `admin` 当admin管理后台启动失败时,则触发告警 建议生产使用时,通过告警回调发送短信、邮件等方式及时获取告警内容 ================================================ FILE: docs/cache-handler.md ================================================ --- description: 缓存处理 --- HTTP缓存使用了LRU缓存,能提供高效的缓存读取能力及有效控制缓存过大。为了减少缓存中锁的影响,使用了128个LRU组成缓存桶,每次根据hash选择对应的LRU,提升性能。需要注意,缓存只针对`GET`与`HEAD`请求,其它的请求都是不可缓存请求。

## 缓存的获取 - 根据请求的URL生成key(Method + Host + RequestURI) - 使用该key通过MemHash生成hash值取余获取对应的缓存桶 - 从缓存桶中获取缓存数据 ## 缓存有效期 HTTP缓存的有效期仅支持从`Cache-Control`响应头中获取,获取有效期的流程如下: - 如果响应头有`Set-Cookie`,则返回缓存有效期为0 - 如果响应头无`Cache-Control`,则返回缓存有效期为0 - 如果响应头中`Cache-Control`包含`no-cache`,`no-store`或者`private`,则返回有效期为0 - 如果响应头中`Cache-Control`包含`s-maxage`,则优先根据`s-maxage`获取缓存有效期 - 如果响应头中`Cache-Control`包含`max-age`,则根据`max-age`获取缓存有效期 - 如果响应头中有`Age`字段,则最终的缓存有效期需减去`Age` ## 缓存状态 - `passed` 如果请求非HEAD与GET请求,其缓存状态则为passed(并不缓存数据),直接跳过缓存转发至后端服务 - `fetching` 当请求对应的key无法查找到缓存时,其缓存状态则为fetching,表示无缓存转发至后端服务。当获取该请求响应时,如果可缓存,则将相关数据缓存。如果不可缓存时,则缓存hit for pass(只缓存状态不需要缓存数据) - `hit` 当请求对应的key可以获取到缓存数据,且该数据是可缓存,则直接返回 - `hitForPass` 当请求对应的key获取到缓存数据,且该数据是hit for pass时,则直接转发至后端服务 ## 缓存建议 Pike的设计保证了当缓存不存在时,相同的请求只会有一个请求至upstream,整体设计主要是为了应对高并发时系统性能下降,并不建议使用它来提升一个本来响应慢的请求。在使用时,也建议使用短缓存(Cache-Control中设置max-age或s-maxage),避免需要手工删除数据,非静态文件建议缓存时长不超过5分钟,静态文件(url中有相应的版本号)不超过1小时。 ================================================ FILE: docs/error.md ================================================ --- description: 程序处理异常时的各出错信息 --- pike程序处理出错时,均返回category: "pike"的出错信息,可根据此分类判断是否系统错误,主要的错误如下: - `ErrInvalidResponse` 响应数据异常时使用,主要是程序无法获取正常的响应,http状态码为`503`,出错信息为`Invalid response` - `ErrCacheDispatcherNotFound` 无法获取配置的缓存时使用,由于配置了不存在的缓存导致,使用管理后台配置时会有相应的校验,因此一般不会触发。http状态码为`503`,出错信息为`Available cache dispatcher not found` - `ErrLocationNotFound` 无法获取可用的Location,由于配置的Location无符合该请求时触发。http状态码为`503`,出错信息为`Available location not found` - `ErrUpstreamNotFound` 无法获取可用的Upstream,如果配置的所有Upstream的状态检测均不通过,转发至相应的Upstream时触发。http状态码为`502`,出错信息为`Available upstream not found` ================================================ FILE: docs/flow.drawio ================================================ 7Vzbdps4FP0arzXzkCzu4MckTdJ22k7bZJrkUTGyTYMtF+TE7tePhCUbIRmIzc2N89AiIYPQ3vucoyNBz7yYLK4jMBt/Rj4Me4bmL3rmu55h6FrfIP/RmuWqxrOcVcUoCnzWaFNxE/yG/Jesdh74MBYaYoRCHMzEygGaTuEAC3UgitCL2GyIQvGuMzCCUsXNAIRy7V3g4zF7CsPd1L+HwWjM76w7/dWZCeCN2ZPEY+Cjl1SVedkzLyKE8OposriAIR08Pi53H5Z34acn5/rjt/gX+O/8n9svP05WF7t6zU/WjxDBKa720gzcZxDO2XixZ8VLPoARmk99SC+i9czzMZ6E5FAnhz8hxksGOJhjRKpQhMdohKYg/ITQjLUboilmzXRahlP/jAJLyo8hGjytqq6CMGT3ICXW3iOlGEfoaY0dvcAaCNo4BI8wPAeDp1HS0QsUooicmqIppJfyCRnYs2w6d7mpPS85tgyDGM2jAcxpZzKKg2gE867HRET7l+IpQ+4aognE0ZI0iGAIcPAskhkwTYzW7Ta4kwMG/StoYEo0eH97+5XUfIe/5jDGOaSggLyMAwxvZiAZmRdiR0SipAlAnvF8FII4ZvAVoPs6dJ5hhOEidzz5WYeJmls1VnzZmAid636cMg+WVhMCloTAF/TWpEgwjpb39GKnNi8+rDtCCu8WQmm5E0kKJezIEv54//zZv//87cOPIf61BA8j798hM7fFEmYU43QqrWh2pa8oII+1aYKGwxhi0dTzNozd63uxW5tahrarZ2O/yjB33fNSZFaOjGlLbH4gMUCWzsWMEAmvpLSC+ilhwEWA7zlpyPHDhl2ktOETLSzT5LpPFx5ETm6hYaGYWuKpV5KnjDwn2mlfswT+nOg7cZeMBlimGswo32IFtblRztCWx5DbaJ5t71p2hs2rHpQW0g78z0MmRf8PcYJ8HP81RbQPFDFDI+aRuhfg/90zr2RrP0aTx3lc7F8FI0xN/BWYBCEdlPcwfIY4GACFFwZhMJqSwoCwEUZq605uGUxHpORsSreJ9IjDqtE7uyKw63LaPWsK9+zV5Z77tRi0Q/PgOxrGiu0eN0aFhk+3Xuehd7NyO3lo0xIZbvWb9dC6TOhW3HPDLrM0dcoyp/LpmbI33M/lzw6IccXi8Eomnppg4g3CM3ZiEvj+CkkYB7/BY3IpOu7MVZPr2uc9+91209AzzGHypwQrn3tZf7BOArGO9NJ5FpWf0E5NIxOo7Kdg3pvML+qLFHQZ2SRUGIDBGFICLoKY4nCMDrZHBxafbjQRHagZ7f3p1jRvAlzsh1tLduV1OwXWdRKNBz4ZlgDTjqBh0pui3JdWrL7aRJBJYBmqEFmVwbLrEkE7lOfz+/Wc/iF1Rj2/byCmyG3YERm0ZKN2AGzXvGDT9tAqaQ+7ZQ7lzPNNYg55CBJjgGmccUaOhxAPxtTnH4RNtO3WbaK8sPIWAoOqM5PNCEHO2l2MEYqpBsC0lywIE0X4STH59xkEYTJVMbT5jMTHEEwOQxiO2aAwzsbgh4Yc/efz9fz7v+DSfDp5KLPu3B1dZPhZoVA8WSjK4doyDW5GF/Lk5oq6AVLlAwyoV4jQ5OA04BqtOwfZ4HRYBJVxXi8bJhl2p9wD3zFUsAZwKFm4Nfv2zsKdaKemIK09k3DZRcdKs3DKsXCto/DS1OhWXObKuwkOOPvNuVaJ7iyD+wwuGms/7fEOWU1JT5enn0kCfD3TPKa+U5BLy4atp745t95aEKOY4h5C0k+XY85V8nuM8WyT9DmEAN5sPbtju+1QnWVD14Uu5kJ58N5CsLHT3jM7Y1lt18vwI7WXrCrnZ8iRzR0IaK+GydYwn+67IYNN/BEIu6lKy8t4pNZVacoRxSFuPhXV3ebm01zZ1rD71NP6thjU6vZ+UW39YazpvIWopzTodr8Woy5vo+tnEtvZOLfuje5yTuiAp6ZmlSkh23P7+6l2/QqiaAwsT7xCfaK25cz3Ed0VupkXBMxKkHYzQDeFsyHjnOQgxqlQbJa8snbMRWzPRdiOIvJT5SLc2hYVdQmeJudj2qlb7faUFdYpyWvJXwPrktx/Fy5M6mYVfv21kzVLEwNEz8l/UaigfT2TOz6G0sYaYvRnaJrsK2Arpx3OupimOHSuplC5XtP8Tkk5eXrXjuq7IN7tmwVKaHdf6e6ForwJd5s4ZhFaLIUz++tEEQOVG/6c7GTGxOht6+RA3vBpTyeKTzUo23lt6oSnCNvJXPHjcpmrnZFOhVCOIyS+6FTDKM59kdJXGAVkyGmQXPXWrb3YU02EJGc+Mi/B9LN2pLrMR97jZ6dMbLPwn7F+W4OXyKDm9UvOmapYv1Xi2IVNTdT+xAzAOgc/s1TRV3z0xVKMvVHX2PPXDI8uOtf1ljGyTW2QVftosx3Yanorpvtwr3TSFtxbsoX8fRn6PTpqMhwwoe5shJOBo+N39ITbPaGuqRILjbpCvd3tHJog4v0XfNuTseqNyHpi4/3wLpGDIGhVmJ5rQEa6Ku+gklFteQfdeLshpa61HlPmfMqxMH/WxLccqwfBkDSgmlV5ChSq+JqjGoVDWjkuvSC8N1JWZi3fyVsKVOc9iHkRl54NyxWvUck6sRpVOaV6RJWiKiLi5kVo3UOV37m12ZupOa+bvymynR2OBnlSo+PRIO+mFA1Ku0A6GQgarrj+pGtOyVdDdggESXHz2fOVDjcfjzcv/wc= ================================================ FILE: docs/modules.drawio ================================================ 7Ztbd6I6FMc/jY+dJYSLPra2p5112jUztbPO6XlLJQJTJDRErf30J9RwTRQvROh0noRNbvz3Lzs7UXtgNHu9JjDy7rCDgp7ed1574LKn61p/qLOPxLJaWwaGtTa4xHd4odww9t9QWpNb576D4lJBinFA/ahsnOAwRBNaskFC8LJcbIqDcq8RdJFgGE9gIFr/8R3q8bcw+7n9Bvmul/as9fmTGUwLc0PsQQcvCyZw1QMjgjFdX81eRyhIxEt1Wdf7a8PTbGAEhXSXCjc/nPOXKdbf0Fd6Nv27/2LfP54ZfHALGMz5G/PR0lUqgUvwPBJ74wNYIELRq8wX8CltIX9dxgnCM0TJipXjtUzAB8ERMW1+v8wF11NZvaLYqRcgd7KbtZ3rwC64FHvIAuyDZdku8+FicXHArtroyrTR6rVh0oQOSlrReuBi6fkUjSM4SZ4uWZxgNo/OAv7YgbGXld1R0MxBVUE3UnamlSnL7otKajIlgTIldUHJ6zc/2qJmv15NZQLqZf00U5DPlqgHTFXiGYJ4F6Sj0mWLQle0MwXtxiGMolVH9augZ4kz97TyWYJ8t/8ZHdWuyl7r4g0ky4cVsG4vppi9e7IiBpi8P7Fe5kl2xMQBlgVA8ia5yXL553vdp9QwwrOIoDhOH7BBPlULM9u6r9Rc8RyTlpbdE1OCn9GIjyzEIUrG6wdBxQQD3w3Z7YS5ETH7ReIon6WT5/zBzHecpBspD2Vijs0ttiAhIGBIEFCWQZigPoNQnXQOKjmnJK8CsrxKV5ZzGl3IqzLX1MO0KlNSK5yyNMoQ06hmIwqceOjThJM9CEhXZ6vdcGLsEE5UrMX7K1Xd6Ep2IDLlNFuZdGISfenHEaSMeDGZ/s05rvfO4KRYi0l6R7E2y8LZQMRafkRhq5JOTNBvHh6+M8vt/c/PhnW9d06L9Q5Ha93A2rJKwg3FZU6zDFG5gaFKOXHnxKnmGcrn4rrePaflerjJO/cojnAYiw7qBuYDs6Sjpkk4101RSUMV56a48P2MGLoIzrZIuMOGSJRw03Zyc45QiaaGZC+dHb0X1bIa4O7bt4d4uny+Jnc3k1/6NVpYd8aZtkM8RY6LxvwWE+phF4cwuMqtlTmbl7nFOOLq/UKUrvgXdHBOsUzbpKOSshKxYzwnE7TN/3wmUUhctJV1U+4rggJI/UV5JM1jKk74WzxhHeOwdUx1rXOYiinZx8HU77sXNvoRX9Hz4fnVDdBeFuAs/Ta6QKm0nH4iSLcNsqC6PFc4NaDGsEVAN7uprFR2ktyyWBbo2my2P/jcBUfOSV71O/bfzxfTnZZR9hOoHnmuYwWvVXFBNozDERbPwcaILCQHOSef7ZXTdm3QNsCSuIjDqe82IZXkywlBvY1S2V2b6qCNqc7EIqt/ef33m8fk5ouZ3l6+Fh9ernrFzea+IUL63vqOy/uxoeQo51gfJw5vFrnxOKyfLg5vQ6cQXO6g38im4KjQonUuCu9wwh17MEouAz98PgxDUY/i+6YH00cip+k1yK2ngoCc0JCttcvusN1wn0f4x1KAPzbcF8P45oSg8UhU/fFNtpzXeFNsCBzG1zkhcFUoFiUF4i0DrvZj9/cbV7k8u1iPoFFGtVaODlRD2vwyaA2/lM92D8ZPbEoVgJKeahCsraEIwpYT4w8CodFvDEKxKVUQSnqqgbC2hiIIxV+d/oFQdjDTGIRiU6oglPRUA2FtDUUQmn8g3AFCa9AYhGJTqiCU9FQDYW2NfSFkt/mf5NbF878agqv/AQ== ================================================ FILE: docs/modules.md ================================================ --- description: 程序中的主要模块 --- Pike有6个主要模块,下面对这些模块一一介绍。

## Compress 压缩模块主要提供数据解压与压缩服务,数据解压可针这几类压缩算法:gzip, br, lz4, zstd, snappy,用于在接收到upstream返回的数据时,根据其数据压缩类型,解压出原始数据。压缩则只提供gzip与br压缩,因为压缩的数据是响应返回至客户端(如浏览器),而现在的客户端支持的压缩算法主要为以上两种。 什么场景下upstream需要返回压缩的数据呢,,主要考虑的是以下场景: - pike与upstream是在同一内网,网络传输不存在瓶颈问题,则upstream返回数据时不需要压缩 - pike与upstream部署在不同的IDC,网络通过专线传输,此时则可以考虑使用zstd或者snappy压缩响应数据,减少专线带宽的使用 - pike与upstream的访问通过公网访问,由于公网的网络性能较差,此时尽可量考虑使用br或者zstd压缩响应数据,提升性能 下面表示展示了压缩算法执行100次压缩解压的测试结果(原始数据160KB的json数据):

由上图可以看出,br压缩使用的时间较长,一般建议使用6则可,而内网或专线等网络较好而又希望减少带宽占用的,可以在pike与upstream使用snappy,减少带宽占用,节约成本。 具体测试代码[compression-performance](https://github.com/vicanso/compression-performance)。 ## Cache 缓存模块主要针对GET、HEAD的相关请求,保存缓存的数据或hit for pass状态,主要由以下小模块组成: - `Dispatcher` 该模块使用memhash对请求生成hash,从初始化的LRU列表中获取对应的LRU - `LRU` LRU缓存,缓存http cache对象 - `HTTPCache` http cache对象,控制当相同的请求访问时,如果状态未知,只允许一个请求转发至upstream,其它的访问等待。而在获取到状态后,如果是可缓存则直接返回,若是hit for pass则转发至upstream. - `HTTPResponse` http response对象,根据请求的客户端接受的编码以及响应数据长度,选择最合适的压缩方式并返回 缓存的详细流程请阅读[缓存模块](./cache-handler.md),缓存模块使用压缩模式实现数据压缩。 ## Upstream Upstream模块,该模块实现对配置的upstream服务检测是否可用,按指定的策略返回对应的server地址,实现的功能如下: - 定时检测配置的各服务地址是否正常(配置health check的则使用http访问,如果未配置,则以tcp的方式检测端口) - 根据配置的策略选择可用的服务地址 ## Location Location模块,该模块根据配置的host与prefix规则,判断请求是否属于该location,如果属于则将请求转发至其下的upstream,实现的功能如下: - 根据host与prefix判断请求是否属于该location - 根据配置的rewrite,在转发前修改url,在完成后恢复 - 根据配置的query string以及request header,将当前配置添加至请求中 - 获取响应后将配置的response header添加至响应头中 ## Config Config模块,该模块主要实现配置的读写,支持使用文件与etcd的形式保存配置,并可检测配置变化实时更新配置。 ## Server Server模块,该模块监控端口,在接收新的请求时,通过各中间件完成缓存的读取或转发,实现的功能如下: - `Error` 出错中间件将出错转换为对应的json响应或text响应 - `Fresh` 304中间件处理,根据请求头与响应头判断数据是否无修改 - `Responder` 响应中间件,使用`HTTPResponse`根据客户端响应适当的数据 - `Cache` 缓存中间件,获取当前请求对应的缓存,如果有响应则设置缓存,否则则转至下一中间件 - `Proxy` proxy中间件,根据当前请求获取对应的location,转发至相应的upstream服务器地址,获取成功后则设置响应数据 ================================================ FILE: docs/performance.md ================================================ --- description: 性能测试 --- 测试机器:8U 8GB内存 测试数据:数据原始长度约为140KB 测试场景:客户端支持gzip、 br以及不支持压缩三种场景,并发请求数设置为1000,测试时长为1分钟 测试结论:当客户端可接受gzip或br压缩时,测试的结果均非常接近,而客户端不接受压缩时,需要先解压数据,性能则大幅度下降 ## GZIP ```bash wrk -c1000 -t10 -d1m -H 'Accept-Encoding: gzip' --latency http://127.0.0.1:3015/repos Running 1m test @ http://127.0.0.1:3015/repos 10 threads and 1000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 17.12ms 17.05ms 241.93ms 83.49% Req/Sec 6.96k 1.17k 12.88k 73.49% Latency Distribution 50% 16.78ms 75% 29.72ms 90% 38.34ms 99% 66.55ms 4153511 requests in 1.00m, 40.89GB read Requests/sec: 69123.45 Transfer/sec: 696.85MB ``` ## BR ```bash wrk -c1000 -t10 -d1m -H 'Accept-Encoding: br' --latency http://127.0.0.1:3015/repos Running 1m test @ http://127.0.0.1:3015/repos 10 threads and 1000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 16.65ms 16.27ms 181.87ms 64.06% Req/Sec 7.08k 1.06k 17.58k 70.18% Latency Distribution 50% 16.56ms 75% 29.11ms 90% 37.47ms 99% 62.46ms 4223664 requests in 1.00m, 36.57GB read Requests/sec: 70302.18 Transfer/sec: 623.26MB ``` ## 不支持压缩 ```bash wrk -c1000 -t10 -d1m --latency http://127.0.0.1:3015/repos Running 1m test @ http://127.0.0.1:3015/repos 10 threads and 1000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 319.12ms 421.34ms 2.00s 81.56% Req/Sec 555.57 193.17 2.54k 69.97% Latency Distribution 50% 32.36ms 75% 589.84ms 90% 965.91ms 99% 1.61s 331687 requests in 1.00m, 44.85GB read Socket errors: connect 0, read 0, write 0, timeout 4348 Requests/sec: 5518.90 Transfer/sec: 764.11MB ``` ================================================ FILE: docs/questions.md ================================================ --- description: 对于pike的各类常见疑问 --- ## 何时需要配置缓存持久化 pike主要是用于缓存热点接口(可缓存),设计上保证了当缓存不存在或过期时,相同的请求只能有一个转发至后端。缓存也建议使用短缓存(不超过5分钟,甚至是1分钟以下),短缓存场景下持久化的效果不大,因此期望后端应用是可以支撑正常的请求量或者有熔断机制。 对于新的实例无缓存时导致后端服务无法支持过大的请求量,可使用缓存持久化。现支持使用badger(文件)或redis的方式实现缓存持久化。若是机器内存不足,配置较小的LRU配合badger的方式以支持更大的接口缓存量,选择redis则可以多实例共享缓存但性能比badger差。而机器内存足够则建议不使用持久化,如果担心pike崩溃重新恢复时,后端服务无法支撑过大的请求量,可以启动多个pike实例,前置通过nginx转发至pike,而nginx的转发策略则使用url_hash,这样就算其中一个pike崩溃也只是部分缓存失效。 ## 为什么缓存的数据使用单独的压缩配置 如果数据是可缓存的,会单独使用配置为`bestCompression`的压缩配置(默认的配置为gzip:9, br:6),虽然可以配置相同的配置覆盖,但不建议调整。由于缓存的数据都会被使用多次(如果缓存基本不会被重复使用,那么pike也无意义了),因此数据仅压缩一次则被使用多次,而选择更高的压缩级别可减少与客户端的网络(公网)传输耗时,提升用户体验。br的压缩对CPU的占用特别大,而最高的压缩级别11占用了过多的CPU,而减少的数据并不非常明显。 在实际环境中,由于机器资源可能为实体机等资源,一般CPU、内存等都是冗余的,而带宽则较为方便的动态调节,因此建议根据CPU的使用资源调整不同的压缩级别,以达到资源与性能的平衡(节约带宽也能节约成本)。 ## 为什么缓存的有效期仅基于`Cache-Control` varnish对于接口缓存有效期判断主要基于`Cache-Control`,但它还支持`Expires`以及一些基于状态码(如307, 302响应码,则缓存时间为-1)来生成缓存有效期,此种处理符合RFC的各规范要求。由于规则较多,有不少的开发者并不清楚varnish的缓存有效期是怎么生成的,而且varnish还支持default ttl,更增加了使用风险(缓存了不应该缓存的数据有可能导致泄露客户数据)。 pike的缓存只基于响应的`Cache-Control`,完全由接口开发人员控制缓存的处理,更准确高效(开发人员才清楚接口是否可缓存以及缓存时长),避免了在varnish使用中由开发者要求运维人员针对特别接口配置缓存(varnish也支持通过Cache-Control配置,但实际有不少使用者直接通过不同的url指定不同缓存的方式)。 ## 管理后台为什么是基于flutter web pike的管理后台并没有太复杂的功能,都仅是一些表单的填写,而刚好以前学习了flutter,flutter web则是一种学习尝试,仅此而已。 ================================================ FILE: docs/response.drawio ================================================ 7V3Zdto4GH4aLpNjS964bEiTdtrp6UzSaXupYAU8MRZjiwB5+pFjGbAksMMiBUwuciwhZPlfvn+TTAf2RrPbFI2Hf5IQxx1ghbMOvO4AEAQ++593zIsOz/OKjkEahUWXvey4i14w77R47yQKcVYZSAmJaTSudvZJkuA+rfShNCXT6rBHElfvOkYDLHXc9VEs9/6MQjrkjwX8Zf8nHA2G5Z1tr1t8MkLlYP4k2RCFZLrSBT92YC8lhBZXo1kPxzntSrr8/Dz/GX998m7/+Cv7D/24+nL/7Z+LYrKbt3xl8QgpTuh+pwbF1M8onnB68Wel85KAKZkkIc4nsTrwakhHMbu02eW/mNI5ZziaUMK6SEqHZEASFH8lZMzHPZKE8mF23sZJ+CFnLGs/xKT/VHTdRHHM78FafHzAWhlNydOCd/kEC0bkg2P0gOMr1H8avC60R2KSso8SkuB8qpAJA3+W5eI+LnuvGtKW8yAjk7SPN4yDXMRROsCb5uNKlK9vRU45524xGWGaztmAFMeIRs9VYUZcJwaLcUu+swvO+jeIAZTE4JatHlh/42xMkgxvEIqcIdNhRPHdGL1SZspgpCooqwLAnvFqEKMs4+yr4e7buPOMU4pnG+lZfmpxpeaoFvDmdAkRdqn3wxV4cKwDccCROPCboeZZF3fRRa+hLpamqlYZufCUCyhlh9+nsaryib+TKKGrs3qVaS9cQdbI42OWa6UgaYv1bS98riR834gke/XsO27pTBgNf/HvvTZ+59+79N2yfT1b3DVvzbeCqP0Jrb2T0F74wX6k1qsC6QUI6qRWmgMKYOyKkl8Qg39rORGTDTRfGTbOB2Tr1wqFtZY+6tp1CeNdUBnPLooV7FUXPUkXP2e5G/0SjWVzMCSjh0lWb4ErepBr2Q0aRXH+WJ9w/Ixp1EcKO43iaJCwRp9JNk7VCsZuGSUD1vKWrftXhWYm7YD2266yxvYVBtxSGPDgUAY8aIKhx42QtQZggaHWpVtBUb0QWsrGKobGNz++9J5unJfb2ZeL624ynU2tizfafesSsr8qhFi7oegbUNIW0MixmqHkvoCp28hDbamXADR7CSoR34+bYF0GnuVWwVWfkANByCE8kCsA1PdZ6woI411LgytQ0l30BR7Ssyew1hMAXY2egNKqyMmUnVFSiYMKvFxhdC0qKnFhnxBVZnvrrDBQ81dP5qtc5Qq3eilGFOfSQun4dSFZTQ7MOokcmKPSnEMlwZSSIPPi1DVnk1va0LZr0JxNq1xh1jXuk9GYqUtd4vLQuiLpQFPmNNcV27SuyDm7VuoKaGhkHJOqUhoZ3bxRxyp1ocrR8NTfkafbRQ4CEnhWTeQgVpr8/UYOmygoBg591B9i9BArfJkjiR8OgOxC/OB6puMHOdHSSmR3GqJAYBTZDfFmyyzU0TDVCLSLySe/pj4kjg88DdAubxS4G5JJHObwvtb7PqN7aa111omU/JPre6o0OiMDrbJGInJOLMaP+AP/YBSFYQEvOIteXq18wUcu9mxe96rjXudzMUTJOAMPSXxBPzxHJr6joD04FO19ifbXeVp/fbCqY3PT4YPVwDUdrCoy2a30aQJN5m8nZsmV7F5b0jq+zn2Aak2RqwetsQ++Aqe02gdbdq4UmzhOgvYs0K3Q3vVdifZQK+0bbUI8DdrDKu09ReFFL+27rbTGtmKvpXqgUXtsyyHDp/v77513sz1//xri+IIHa9osL84AtUxD/KYaYjQL55jhziyiv1auV6orrLXMwOWNZQJuy13mxyMKEOwoClvl7nxxb3dNWUYcH+x5b/dGGq4m7ybjMZO9TrGry0JJWF6GiKKco7MoozLAtzaj5wRVxtnG6zWmchnb7bU2DyRNkyDajkSqbYqZmv0ebcr7rwY1FgVDNkWAGlhTDxLHB3veJLyRhkqbUpwa4laFN852pZFdAcYrRcBpZcyxeEtErX2AJu1DObF0Zj5F09yFI+Fc1q4jT5eLYTk0vmMYyLmRdiqN4r0T6oGuUafKDHf25lQtGu/Vo2osB4Y8qm4VQNw6j0oYX1ay1433xKje1eCBAblkd96S09zRcsw7WrIL3U4j4jY1IkbrIdA/OiNidSqR+bsPzBtLAjSaowFyzbiaTz2D7hrQdVUVNb2nZKEZjF1kTcFxpU2BtvrLbioplziu0o2O0InFxKrNHHpjYmgob3Sk9QjQPQ7Fko8F3RYJ3ZNVLQ+8O9Vyj871PLbDn7Bp+tesOkLvDLKH4GoBc8a4Kif1xWLaOaQo0Rm+u5ACSNw7yfM9rlOlvG/eLjZ6++FJbN4WiQ8Uh9q0bt6GsmN4srQXIAcqDoxopb0jp/5PlvZB9dCC6m1RemnfnsM6Iu3Ld46Yo317Duv4opvTNXxQymnRCfIFscvNvgofU+sJQUdOb54w8QVPR4H4eokve5knS3xH3Clh+mys0+z9zydJfE9xxkAr8Uvmt4H4nng69nDEZ83lz3cV24GWv4EGP/4P ================================================ FILE: docs/response.md ================================================ --- description: 请求响应处理 --- 请求响应的处理主要分两步,一是从upstream中获取响应(或从缓存中),二是根据响应与客户端选择符合的响应数据。HTTP响应数据主要有以下字段: - `GzipBody` gzip压缩的body - `BrBody` br压缩的body - `RawBody` 原始未压缩的body - `Header` HTTP响应头

## 从Upstream中获取响应 参考上面的流程图,从upstream中获取响应之后,主要根据响应头的Encoding以及是否可缓存生成不同的响应数据。 - 如果upstream的响应数据是gzip或br压缩,直接生成对应的GzipBody或BrBody - 如果upstream的响应数据是未压缩的,直接生成对应的RawBody - 生成HTTP Response之后,判断该请求是否缓存并且可压缩(根据Content-Type判断),如果可缓存压缩则生成GzipBody以及BrBody,并清除RawBody 需要注意,对于不可缓存的数据,生成HTTP Response时,upstream返回的数据并不处理,直接保存。而对于可缓存的数据,则根据其是否可压缩生成gzip与br的数据,并清除RawBody,因此RawBody并不会与压缩的数据同时存在。 ## 从HTTP Response中响应数据 参考上面的流程图,从HTTP Response中响应客户端的主要流程如下: - 客户端支持br压缩,而且已有br压缩数据,则直接返回响应 - 客户端支持gzip压缩,而且已有gzip压缩数据,则直接返回响应 - 响应数据不应该被压缩,则直接返回原始数据 - 客户支持br压缩,则对数据压缩后返回 - 客户端支持gzip压缩,则对数据压缩后返回 - 客户端不支持压缩,则返回原始数据 需要注意,对于可缓存压缩数据,在生成缓存时会预压缩(同时生成br与gzip压缩),因此可以减少压缩数据对性能的损耗(一次压缩多次使用) ================================================ FILE: docs/start.md ================================================ --- description: 如何开始使用pike --- Pike是纯go的项目,可以使用各平台的执行文件启动或者已打包好的docker镜像(vicanso/pike),配置信息支持保存在文件或etcd中,生产环境中建议使用etcd便于多实例部署。 ## 启动参数 ```bash Pike is a http cache server Usage: pike [flags] Flags: --admin string The address of admin web page, e.g.: :9013 --alarm string The alarm request url, alarm will post to the url, e.g.: http://192.168.1.2:3000/alarms --config string The config of pike, support etcd or file, etcd://user:pass@192.168.1.2:2379,192.168.1.3:2379/pike or /opt/pike.yml (default "pike.yml") -h, --help help for pike --log string The log path, e.g.: /var/pike.log or lumberjack:///tmp/pike.log?maxSize=100&maxAge=1&compress=true ``` 如上所示pike的启动参数如下: - admin 管理后台监听地址,用于启动管理后台,建议最少其中一个实例启用管理后台,方便使用WEB管理后台编辑配置 - alarm 告警回调服务地址,当upstream的服务器检测失败或配置更新失败等时回调,用于告警通知 - config 配置地址,可以用于etcd或者file的形式,建议在生产环境中使用etcd,如果不配置则直接使用文件形式,文件为pike.yml - log 日志目录配置,可以指定单一文件或使用lumberjack按时按文件大小分割日志并压缩 首次启动指定管理后台监听地址为:9013,未指定配置地址(使用pike.yml),启动成功后可以看到在执行目录下生成了一个空白的新文件pike.yml(如果该文件已存在则不新建),之后可以打开`http://127.0.0.1:9013/#/`进行配置。 ```bash ./pike --admin=:9013 ``` ## 压缩参数配置 - `Name` 压缩配置名称,用于区分每个压缩配置,可根据不同的应用场景配置不同的压缩参数,一般只使用一个通用配置则可 - `Gzip Level` gzip的压缩级别,如果CPU较为紧张,则可以配置为默认的压缩级别6,如果CPU较为空闲,建议直接配置为最高压缩级别9,减少网络带宽的占用 - `Br Level` brotli的压缩级别,由于br的压缩率较高,占用CPU较大,因此一般配置为6则可,具体根据CPU的使用状况可以选择更优的配置方式 - `Remark` 备注

需要注意,对于缓存数据的压缩会直接使用默认的`bestCompression`的压缩配置,该配置的压缩级别为gzip:9, br:6,如果需要覆盖默认的配置,则直接新配置名为`bestCompression`的配置则可覆盖。缓存的数据只压缩一次而可使用多次,可以选择较高的压缩级别,对于常规的压缩配置,br的压缩级别配置为6则可,如果CPU占用较多,可以选择更小的值,具体各压缩级别耗时可查看模块-压缩模块的说明。 ## 缓存参数配置 - `Name` 缓存配置名称,用于区分每个缓存配置,对于请求量特别大的服务,可单独使用一个缓存,其它的服务则共用一个缓存则可 - `Size` 缓存数量大小,指定LRU缓存的最大数量,可根据服务的缓存情况以及机器内存选择较为合适的值,一般设置为51200已能满足大部分应用的需求,如果内存较少则设置为更小的值 - `HitForPass` 设置hit for pass的缓存时长,对于不可缓存的GET、HEAD请求,为了后续快速判断请求是否hit for pass,缓存中也有保存该请求的缓存状态(hitForPass)。 - `Store` 设置缓存持久化存储的方式,暂只支持badger,如`badger:///tmp/badger`表示将缓存保存至`/tmp/badger`目录。如果内存较为空余,可设置LRU的Size为较大的值而不设置Store。 - `Remark` 备注 为什么会有需要hit for pass的场景?考虑一下以下场景,由于产品刚好被下架处理,因此请求产品详情信息时,该接口返回了出错(http status: 400,cache control: no-cache),因此访问该产品的接口缓存为hit for pass,而后续产品上架了,接口正常响应,缓存时长为cache-control: max-age=60,此时接口应该可缓存的。而由于hit for pass未过期,因此只能等hit for pass过期后接口才变为可缓存。 因此在设置hit for pass的时候需要考虑应用的具体出错处理逻辑,Cache-Control是否无论怎样都不会变化(有一种处理是同样的参数,无论成功失败均使用同样的Cache-Control,这样保证无论成功还是失败,接口均是缓存,避免过多请求),如果是不变的,可以将hit for pass设置为较长的有效期,否则应该选择更短的有效期。

### 缓存的Store配置 - `badger`:使用badger缓存数据,配置格式为:`badger:///tmp/badger`,表示将数据缓存在`/tmp/badger`目录下。此模式下缓存会以文件的形式持久化,可减少LRU缓存的数据避免占用过多的内存。需要注意如果是启动多个实例,那么多实例间的缓存无法共享 - `redis`:使用redis缓存数据,配置格式为:`redis://[:pwd@]host1:port1[,...hostN:portN]/[?timeout=3s&master=master]`。密码`pwd`为只选参数。对于`sentinel`还需要指定master参数。 - `mongodb`:使用mongodb缓存数据,配置格式为mongodb的connection string形式,如:`mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]`,增加支持timeout参数指定请求超时。如`mongodb://localhost:27017/pike?timeout=5s`,连接localhost:27017并指定使用db:pike保存缓存数据 ### redis配置 - `普通模式`:`redis://:pwd@127.0.0.1:6379/?db=1&timeout=5s&prefix=test`,连接本地127.0.0.1:6379的redis,密码为pwd,使用db:1,并设置超时时间为5秒,key的前缀为test - `sentinel`:`redis://:pwd@127.0.0.1:6379,127.0.0.1:6380/?master=master&mode=sentinel&timeout=5s&prefix=test`,以sentinel的模式连接redis,密码为pwd,master name为master,并设置超时时间为5秒,key的前缀为test - `cluster`:`redis://:pwd@127.0.0.1:6379,127.0.0.1:6380/?mode=cluster&timeout=5s&prefix=test`,以cluster的模式连接redis,密码为pwd,并设置超时时间为5秒,key的前缀为test ## Upstream配置 - `Name` upstream的配置名称,用于区分每个upstream配置 - `Health Check` 健康检测的url路径,对于HTTP服务尽量使用特定的url的响应来检测upstream是否可用,如果未配置,则检测地址的端口是否有监听 - `Policy` 服务器列表的选择策略,支持四种方式`roundRobin`,`random`, `first`与`leastConn`,一般选择`roundRobin`则可 - `Enable H2C` 是否启用HTTP/2 over TCP,upstream的服务支持h2c模式,则可以启用此模式,pike与upstream的服务则使用h2c方式访问 - `Accept Encoding` 设置可接受的编码,如果需要节约pike与upstream服务之间访问的网络带宽,可以添加此配置,pike支持编码:`gzip`,`br`,`lz4`,`zst`, 以及`snz` - `Servers.Addr` 服务地址,以http(s)://ip:port的形式配置 - `Servers.Backup` 是否备用服务地址,如果设置为备用,则只要在主服务有一个可用时,均不会使用备用服务 - `Remark` 备注

## Location配置 - `Name` location的配置名称,用于区分每个location配置 - `Upstream` 选择对应的upstream - `Prefixes` 配置对应的前缀,可配置多个,前缀的匹配优先级高于host - `Hosts` 配置对应的host,可配置多个 - `Rewrites` 转发请求时,需要重写的URL的规则,配置格式为`key:value`的形式,以`:`分割 - `QueryStrings` 转发请求时添加至url中querystring,配置格式为`key:value`的形式,以`:`分割 - `RespHeaders` 响应头配置,将在所有的响应中添加响应头,配置格式为`key:value`的形式,以`:`分割 - `ReqHeaders` 请求头配置,将在所有的请求中添加请求头,配置格式为`key:value`的形式,以`:`分割 - `ProxyTimeout` 请求超时配置,用于控制请求转发至upstream的服务中的超时,根据实际场景配置,如:30s,1m等等 - `Remark` 备注

### Rewrite规则 重写的规则与nginx类似,支持使用正则匹配,如下面的例子: - `/api/*:/$1` $1表示*部分,最终的处理就是转发时将/api前缀删除 - `/rest/*/user/*:/$1/$2` $1表示第一个*,$2表示第二个*,最终的处理就是转发的时候将/rest与/user替换 虽然通过正则可以实现各类的重写,但是不建议使用过于复杂的正则,尽可能少用或只用重写来处理前缀,规范url减少重写。 ### ENV获取配置 `QueryStrings`,`RespHeaders`以及`ReqHeaders`均支持从ENV中获取值的处理方式,如:`DC:$DC`,$DC表示从ENV中获取DC对应的值。 ## Server配置 - `Addr` 监听地址 - `Locations` 对应的location列表 - `Cache` 缓存,根据应用访问量选择合适的缓存 - `Compress` 压缩,根据带宽与CPU的考虑,选择合适的压缩 - `Compress Min Length` 最小压缩长度,此值不要设置太少,因为压缩小数据效果并不明显,而且浪费CPU。一般建议设置为1kb,如果是内网间调用,建议此值可以调更大的值 - `Compress Content Filter` 压缩数据类型筛选,指定针对哪些数据类型压缩,默认值为:`text|javascript|json|wasm|xml`,可按应用的需求自定义配置或不匹配。 - `Log Format` 请求日志格式化配置,如`{remote} {when-iso} {:proxyTarget} {method} {uri} {proto} {status} {

当Server配置完成后,可以使用`curl http://addr/ping`来检测该Server是否启动成功,`/ping`默认由pike处理而不会转发至upstream ### Location匹配 location列表中,按是否匹配prefix与host排序,其优先级是 prefix+host > prefix > host > 无配置,从列表中按顺序一个个location匹配,匹配则该请求由此location处理,如果所有均不匹配则出错。 ## Admin配置 - `Account` 登录账号 - `Password` 登录密码 设置配置成功后重启pike,之后每次使用都需要登录校验,建议在首次配置则设置。 ## 缓存列表 暂未支持查询当前缓存列表功能,仅可用于删除缓存

## 非实时生效配置 - `缓存配置` 由于缓存是多个LRU组成,因此如果调整缓存大小会导致缓存失败,而且锁的处理也比较麻烦,因此缓存更新非实时生效,只能重启应用 - `Server配置的Log` 日志的输出是在Server创建时生成,如果后续有调整,只能重启应用 - `Admin配置` admin配置非实时生效,因此在初始创建时建议配置 ================================================ FILE: entrypoint.sh ================================================ #!/bin/sh set -e if [ "${1:0:1}" = '-' ]; then set -- pike "$@" fi exec "$@" ================================================ FILE: go.mod ================================================ module github.com/vicanso/pike go 1.16 replace google.golang.org/grpc => google.golang.org/grpc v1.26.0 replace github.com/coreos/bbolt => go.etcd.io/bbolt v1.3.5 require ( github.com/andybalholm/brotli v1.0.3 github.com/coreos/etcd v3.3.25+incompatible github.com/dgraph-io/badger/v3 v3.2103.0 github.com/dustin/go-humanize v1.0.0 github.com/frankban/quicktest v1.13.0 // indirect github.com/fsnotify/fsnotify v1.4.9 github.com/go-playground/validator/v10 v10.6.1 github.com/go-redis/redis/v8 v8.11.0 github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da github.com/golang/snappy v0.0.3 github.com/google/uuid v1.2.0 // indirect github.com/klauspost/compress v1.13.1 github.com/pierrec/lz4 v2.6.1+incompatible github.com/robfig/cron/v3 v3.0.1 github.com/shirou/gopsutil/v3 v3.21.5 github.com/sirupsen/logrus v1.8.1 // indirect github.com/spf13/cobra v1.1.3 github.com/stretchr/testify v1.7.0 github.com/vicanso/elton v1.4.2 github.com/vicanso/elton-jwt v1.2.1 github.com/vicanso/hes v0.3.9 github.com/vicanso/upstream v0.2.0 go.mongodb.org/mongo-driver v1.5.3 go.uber.org/atomic v1.8.0 go.uber.org/automaxprocs v1.4.0 go.uber.org/zap v1.18.1 golang.org/x/net v0.0.0-20210614182718-04defd469f4e gopkg.in/natefinch/lumberjack.v2 v2.0.0 gopkg.in/yaml.v2 v2.4.0 sigs.k8s.io/yaml v1.2.0 // indirect ) ================================================ FILE: go.sum ================================================ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DataDog/zstd v1.4.1 h1:3oxKN3wbHibqx897utPC2LTQU4J+IHWWJO+glkAkpFM= github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d h1:G0m3OIz70MZUWq3EgK3CesDbo8upS2Vm9/P3FtgI+Jk= github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/andybalholm/brotli v1.0.3 h1:fpcw+r1N1h0Poc1F/pHbW40cUm/lMEQslZtCkBQ0UnM= github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aws/aws-sdk-go v1.34.28 h1:sscPpn/Ns3i0F4HPEWAVcwdIRaZZCuL7llJ2/60yPIk= github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.25+incompatible h1:0GQEw6h3YnuOVdtwygkIfJ+Omx0tZ8/QkVyXI4LkbeY= github.com/coreos/etcd v3.3.25+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgraph-io/badger/v3 v3.2103.0 h1:abkD2EnP3+6Tj8h5LI1y00dJ9ICKTIAzvG9WmZ8S2c4= github.com/dgraph-io/badger/v3 v3.2103.0/go.mod h1:GHMCYxuDWyzbHkh4k3yyg4PM61tJPFfEGSMbE3Vd5QE= github.com/dgraph-io/ristretto v0.0.4-0.20210309073149-3836124cdc5a h1:1cMMkx3iegOzbAxVl1ZZQRHk+gaCf33Y5/4I3l0NNSg= github.com/dgraph-io/ristretto v0.0.4-0.20210309073149-3836124cdc5a/go.mod h1:MIonLggsKgZLUSt414ExgwNtlOL5MuEoAJP514mwGe8= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/frankban/quicktest v1.13.0 h1:yNZif1OkDfNoDfb9zZa9aXIpejNR4F23Wely0c+Qdqk= github.com/frankban/quicktest v1.13.0/go.mod h1:qLE0fzW0VuyUAJgPU19zByoIr0HtCHN/r/VLSOOIySU= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-ole/go-ole v1.2.4 h1:nNBDSCOigTSiarFpYE9J/KtEA1IOW4CNeqT9TQDqCxI= github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM= github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-playground/validator/v10 v10.6.1 h1:W6TRDXt4WcWp4c4nf/G+6BkGdhiIo0k417gfr+V6u4I= github.com/go-playground/validator/v10 v10.6.1/go.mod h1:xm76BBt941f7yWdGnI2DVPFFg1UK3YY04qifoXU3lOk= github.com/go-redis/redis/v8 v8.11.0 h1:O1Td0mQ8UFChQ3N9zFQqo6kTU2cJ+/it88gDB+zg0wo= github.com/go-redis/redis/v8 v8.11.0/go.mod h1:DLomh7y2e3ggQXQLd1YgmvIfecPJoFl7WU5SOQ/r06M= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/flatbuffers v1.12.0 h1:/PtAHvnBY4Kqnx/xCQ3OIV9uYcSFGScBsWI3Oogeh6w= github.com/google/flatbuffers v1.12.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 h1:Iju5GlWwrvL6UBg4zJJt3btmonfrMlCDdsejg4CZE7c= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0 h1:bM6ZAFZmc/wPFaRDi0d5L7hGEZEx/2u+Tmr2evNHDiI= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6 h1:MrUvLMLTMxbqFJ9kzlvat/rYZqZnW3u4wkLzWTaFwKs= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.13.1 h1:wXr2uRxZTJXHLly6qhJabee5JqIhTRoLBhDOA74hDEQ= github.com/klauspost/compress v1.13.1/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.15.0 h1:1V1NfVQR87RtWAgp1lv9JZJ5Jap+XFGKPi00andXGi4= github.com/onsi/ginkgo v1.15.0/go.mod h1:hF8qUzuuC8DJGygJH3726JnCZX4MYbRB8yFfISqnKUg= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.10.5 h1:7n6FEkpFmfCoo2t+YYqXH0evK+a9ICQz0xcAy9dYcaQ= github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3 h1:9iH4JKXLzFbOAdtqv/a+j8aewx2Y8lAjAydhbaScPF8= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCbXsO+nc9n1hCxHcGA3Zx3Eo+UHZoInFGUIXNM= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0 h1:7etb9YClo3a6HjLzfl6rIQaU+FDfi0VSX39io3aQ+DM= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084 h1:sofwID9zm4tzrgykg80hfFph1mryUeLRsUfoocVVmRY= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/shirou/gopsutil/v3 v3.21.5 h1:YUBf0w/KPLk7w1803AYBnH7BmA+1Z/Q5MEZxpREUaB4= github.com/shirou/gopsutil/v3 v3.21.5/go.mod h1:ghfMypLDrFSWN2c9cDYFLHyynQ+QUht0cv/18ZqVczw= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.1.3 h1:xghbfqPkxzxP3C/f3n5DdpAbdKLj4ZE4BWQI362l53M= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tidwall/gjson v1.6.8/go.mod h1:zeFuBCIqD4sN/gmqBzZ4j7Jd6UcA2Fc56x7QFsv+8fI= github.com/tidwall/gjson v1.8.1 h1:8j5EE9Hrh3l9Od1OIEDAb7IpezNA20UdRngNAj5N0WU= github.com/tidwall/gjson v1.8.1/go.mod h1:5/xDoumyyDNerp2U36lyolv46b3uF/9Bu6OfyQ9GImk= github.com/tidwall/match v1.0.3 h1:FQUVvBImDutD8wJLN6c5eMzWtjgONK9MwIBCOrUJKeE= github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tidwall/pretty v1.1.0 h1:K3hMW5epkdAVwibsQEfR/7Zj0Qgt4DxtNumTq/VloO8= github.com/tidwall/pretty v1.1.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tklauser/go-sysconf v0.3.4 h1:HT8SVixZd3IzLdfs/xlpq0jeSfTX57g1v6wB1EuzV7M= github.com/tklauser/go-sysconf v0.3.4/go.mod h1:Cl2c8ZRWfHD5IrfHo9VN+FX9kCFjIOyVklgXycLB6ek= github.com/tklauser/numcpus v0.2.1 h1:ct88eFm+Q7m2ZfXJdan1xYoXKlmwsfP+k88q05KvlZc= github.com/tklauser/numcpus v0.2.1/go.mod h1:9aU+wOc6WjUIZEwWMP62PL/41d65P+iks1gBkr4QyP8= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/vicanso/elton v1.3.0/go.mod h1:psz+FXn7NJtq6lm36Q3KoeU8XGf4Rxj6iO2/O/LIToM= github.com/vicanso/elton v1.4.2 h1:G8Yhq1Lht1frZFDMXvUR2RX+U6dXGlhklAhjvRgVJek= github.com/vicanso/elton v1.4.2/go.mod h1:BFhCB2ke3uPLo0Ids8wgYmNeq5nbivqvHtfwIX8PY/c= github.com/vicanso/elton-jwt v1.2.1 h1:Fau6AqglfJTXxk81guTOe/Fsf2j13xX4mugzP/KpK4U= github.com/vicanso/elton-jwt v1.2.1/go.mod h1:Ge/OvZmUMz8896P5MivqHJBegsmxBt5fibQo3rP17JU= github.com/vicanso/fresh v1.0.0/go.mod h1:gr1RKSFxQ1OnQHzUMBHCigifni7KrXveJjWCTlPjICA= github.com/vicanso/hes v0.3.5/go.mod h1:B0l1NIQM/nYw7owAd+hyHuNnAD8Nsx0T6duhVxmXUBY= github.com/vicanso/hes v0.3.6/go.mod h1:B0l1NIQM/nYw7owAd+hyHuNnAD8Nsx0T6duhVxmXUBY= github.com/vicanso/hes v0.3.9 h1:IO21yElX6Xp3w+Lc1O2QIySrJj2jEhnl5dWbqbDYunc= github.com/vicanso/hes v0.3.9/go.mod h1:B0l1NIQM/nYw7owAd+hyHuNnAD8Nsx0T6duhVxmXUBY= github.com/vicanso/intranet-ip v0.0.1 h1:cYS+mExFsKqewWSuHtFwAqw/CO66GsheB/P1BPmSTx0= github.com/vicanso/intranet-ip v0.0.1/go.mod h1:bqQ6VUhxdz0ipSb1kzd6aoZStlp+pB7CTlVmVhgLAxA= github.com/vicanso/keygrip v1.1.0/go.mod h1:tfB5az1yqold78zotkzNugk3sV+QW5m71CFz3zg9eeo= github.com/vicanso/keygrip v1.2.1 h1:876fXDwGJqxdi4JxZ1lNGBxYswyLZotrs7AA2QWcLeY= github.com/vicanso/keygrip v1.2.1/go.mod h1:tfB5az1yqold78zotkzNugk3sV+QW5m71CFz3zg9eeo= github.com/vicanso/upstream v0.2.0 h1:qwMyFoa9ROmb3Dnz3iIsgbsB4btE4idGOp8zsAsu5xs= github.com/vicanso/upstream v0.2.0/go.mod h1:HIPeCB653T+1hwW9siMek8S7paa8xq6q6y+/J//5ffE= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.0.2 h1:akYIkZ28e6A96dkWNJQu3nmCzH3YfwMPQExUYDaRv7w= github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= github.com/xdg-go/stringprep v1.0.2 h1:6iq84/ryjjeRmMJwxutI51F2GIPlP5BfTvXHeYjyhBc= github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.mongodb.org/mongo-driver v1.5.3 h1:wWbFB6zaGHpzguF3f7tW94sVE8sFl3lHx8OZx/4OuFI= go.mongodb.org/mongo-driver v1.5.3/go.mod h1:gRXCHX4Jo7J0IJ1oDQyUxF7jfy19UfxniMS4xxMmUqw= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.5 h1:dntmOdLpSpHlVqbW5Eay97DelsZHe+55D+xC6i0dDS0= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.8.0 h1:CUhrE4N1rqSE6FM9ecihEjRkLQu8cDfgDyoOs83mEY4= go.uber.org/atomic v1.8.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/automaxprocs v1.4.0 h1:CpDZl6aOlLhReez+8S3eEotD7Jx0Os++lemPlMULQP0= go.uber.org/automaxprocs v1.4.0/go.mod h1:/mTEdr7LvHhs0v7mjdxDreTz1OG5zdZGqgOnhWiR/+Q= go.uber.org/goleak v1.1.10 h1:z+mqJhf6ss6BSfSM671tgKyZBFPTTJM+HLxnhPC3wu0= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.18.1 h1:CSUJ2mjFszzEWt4CdKISEuChVIXGBn3lAPwkRGyVrc4= go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210217105451-b926d437f341/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a h1:CB3a9Nez8M13wwlr/E2YtwoU+qYHKfC+JrDa45RXXoQ= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a h1:Ob5/580gVHBJZgXnff1cZDbG+xLtMVE5mDRTe+nIsX4= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= 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= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= ================================================ FILE: hooks/pre-commit ================================================ #!/bin/sh # make lint && make test ================================================ FILE: location/location.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. // Location相关处理函数,根据host,url判断当前请求所属location package location import ( "net/http" "net/url" "os" "regexp" "sort" "strconv" "strings" "sync" "time" "github.com/vicanso/pike/config" "github.com/vicanso/pike/log" "go.uber.org/atomic" "go.uber.org/zap" ) // Location location config type ( Location struct { Name string Upstream string Prefixes []string Rewrites []string Hosts []string // Querystrings []string ProxyTimeout time.Duration ResponseHeader http.Header RequestHeader http.Header Query url.Values URLRewriter Rewriter priority atomic.Int32 } rewriteRegexp struct { Regexp *regexp.Regexp Value string } ) type Rewriter func(req *http.Request) // Locations location list type Locations struct { mutex *sync.RWMutex locations []*Location } var defaultLocations = NewLocations() func captureTokens(pattern *regexp.Regexp, input string) *strings.Replacer { groups := pattern.FindAllStringSubmatch(input, -1) if groups == nil { return nil } values := groups[0][1:] replace := make([]string, 2*len(values)) for i, v := range values { j := 2 * i replace[j] = "$" + strconv.Itoa(i+1) replace[j+1] = v } return strings.NewReplacer(replace...) } // generateURLRewriter generate url rewriter func generateURLRewriter(arr []string) Rewriter { size := len(arr) if size == 0 { return nil } rewrites := make([]*rewriteRegexp, 0, size) for _, value := range arr { arr := strings.Split(value, ":") if len(arr) != 2 { continue } k := arr[0] v := arr[1] k = strings.Replace(k, "*", "(\\S*)", -1) reg, err := regexp.Compile(k) if err != nil { log.Default().Error("rewrite compile error", zap.String("value", k), zap.Error(err), ) continue } rewrites = append(rewrites, &rewriteRegexp{ Regexp: reg, Value: v, }) } if len(rewrites) == 0 { return nil } return func(req *http.Request) { urlPath := req.URL.Path for _, rewrite := range rewrites { replacer := captureTokens(rewrite.Regexp, urlPath) if replacer != nil { urlPath = replacer.Replace(rewrite.Value) } } req.URL.Path = urlPath } } // Match check location's hosts and prefixes match host/url func (l *Location) Match(host, url string) bool { if len(l.Hosts) != 0 { found := false for _, item := range l.Hosts { if item == host { found = true break } } if !found { return false } } if len(l.Prefixes) != 0 { found := false for _, item := range l.Prefixes { if strings.HasPrefix(url, item) { found = true break } } if !found { return false } } return true } func (l *Location) mergeHeader(dst, src http.Header) { for key, values := range src { for _, value := range values { dst.Add(key, value) } } } // AddRequestHeader add request header func (l *Location) AddRequestHeader(header http.Header) { l.mergeHeader(header, l.RequestHeader) } // AddResponseHeader add response header func (l *Location) AddResponseHeader(header http.Header) { l.mergeHeader(header, l.ResponseHeader) } // ShouldModifyQuery should modify query func (l *Location) ShouldModifyQuery() bool { return len(l.Query) != 0 } // AddQuery add query to request func (l *Location) AddQuery(req *http.Request) { query := req.URL.Query() for key, values := range l.Query { for _, value := range values { query.Add(key, value) } } req.URL.RawQuery = query.Encode() } func (l *Location) getPriority() int { priority := l.priority.Load() if priority != 0 { return int(priority) } // 默认设置为8 priority = 8 if len(l.Prefixes) != 0 { priority -= 4 } if len(l.Hosts) != 0 { priority -= 2 } l.priority.Store(priority) return int(priority) } // NewLocations new a location list func NewLocations(opts ...Location) *Locations { ls := &Locations{ mutex: &sync.RWMutex{}, } ls.Set(opts) return ls } // Set set location list func (ls *Locations) Set(locations []Location) { data := make([]*Location, len(locations)) for index := range locations { // 需要注意,golang 的range 返回的item是复用同一块内存的, // 需要对数据另外获取保存,因此使用index来获取元素 p := &locations[index] p.URLRewriter = generateURLRewriter(p.Rewrites) data[index] = p } // Sort sort locations sort.Slice(data, func(i, j int) bool { return data[i].getPriority() < data[j].getPriority() }) ls.mutex.Lock() defer ls.mutex.Unlock() ls.locations = data } // GetLocations get locations func (ls *Locations) GetLocations() []*Location { ls.mutex.RLock() defer ls.mutex.RUnlock() locations := ls.locations return locations } // Get get match location func (ls *Locations) Get(host, url string, names ...string) *Location { locations := ls.GetLocations() for _, item := range locations { for _, name := range names { if item.Name == name && item.Match(host, url) { return item } } } return nil } // enhanceGetValue 如果以$开头,则优先从env中获取,如果获取失败,则直接返回原值 func enhanceGetValue(key string) string { if strings.HasPrefix(key, "$") { return os.Getenv(key[1:]) } return key } func convertConfigs(configs []config.LocationConfig) []Location { locations := make([]Location, 0) fn := func(arr []string) http.Header { h := make(http.Header) for _, value := range arr { arr := strings.Split(value, ":") if len(arr) != 2 { continue } h.Add(enhanceGetValue(arr[0]), enhanceGetValue(arr[1])) } return h } // 将配置转换为header与url.values for _, item := range configs { d, _ := time.ParseDuration(item.ProxyTimeout) l := Location{ Name: item.Name, Upstream: item.Upstream, Prefixes: item.Prefixes, Rewrites: item.Rewrites, Hosts: item.Hosts, ProxyTimeout: d, } l.ResponseHeader = fn(item.RespHeaders) l.RequestHeader = fn(item.ReqHeaders) if len(item.QueryStrings) != 0 { query := make(url.Values) for _, str := range item.QueryStrings { arr := strings.Split(str, ":") if len(arr) != 2 { continue } query.Add(enhanceGetValue(arr[0]), enhanceGetValue(arr[1])) } l.Query = query } locations = append(locations, l) } return locations } // Reset reset location list to default func Reset(configs []config.LocationConfig) { defaultLocations.Set(convertConfigs(configs)) } // Get get location form default locations func Get(host, url string, names ...string) *Location { return defaultLocations.Get(host, url, names...) } ================================================ FILE: location/location_test.go ================================================ package location import ( "math/rand" "net/http" "net/http/httptest" "net/url" "os" "strconv" "testing" "time" "github.com/stretchr/testify/assert" "github.com/vicanso/pike/config" ) func TestLocation(t *testing.T) { assert := assert.New(t) testHost := "test.com" testUrl := "/api/users/me" tests := []struct { match bool priority int host string url string l *Location }{ // 无host与prefix限制 { match: true, priority: 8, host: testHost, url: testUrl, l: &Location{}, }, // 有host限制且匹配 { match: true, priority: 6, host: testHost, url: testUrl, l: &Location{ Hosts: []string{ "test.com", }, }, }, // 有host限制且不匹配 { match: false, priority: 6, host: "test1.com", url: testUrl, l: &Location{ Hosts: []string{ "test.com", }, }, }, // 有prefix限制且匹配 { match: true, priority: 4, host: testHost, url: testUrl, l: &Location{ Prefixes: []string{ "/api", }, }, }, // 有prefix限制且不匹配 { match: false, priority: 4, host: testHost, url: testUrl, l: &Location{ Prefixes: []string{ "/rest", }, }, }, // 有host prefix限制且匹配 { match: true, priority: 2, host: testHost, url: testUrl, l: &Location{ Prefixes: []string{ "/api", }, Hosts: []string{ "test.com", }, }, }, // 有host prefix限制且不匹配 { match: false, priority: 2, host: testHost, url: testUrl, l: &Location{ Prefixes: []string{ "/rest", }, Hosts: []string{ "test.com", }, }, }, } for _, tt := range tests { assert.Equal(tt.match, tt.l.Match(tt.host, tt.url)) assert.Equal(tt.priority, tt.l.getPriority()) } } func TestLocations(t *testing.T) { assert := assert.New(t) ls := NewLocations(Location{ Name: "test", }) l := ls.Get("test.com", "/api/users/me", "test") assert.Equal("test", l.Name) ls.Set([]Location{ { Name: "test1", Hosts: []string{ "test.com", }, }, { Name: "test2", Prefixes: []string{ "/api", }, }, }) // 重新排序后,test在前 assert.Equal("test2", ls.locations[0].Name) assert.Equal("test1", ls.locations[1].Name) l = ls.Get("test.com", "/api/users/me", "test1", "test2") assert.Equal("test2", l.Name) l = ls.Get("test.com", "/users/me", "test1", "test2") assert.Equal("test1", l.Name) } func TestConvertConfig(t *testing.T) { assert := assert.New(t) name := "location-test" upstream := "upstream-test" prefixes := []string{ "/api", } rewrites := []string{ "/api/*:/$1", } hosts := []string{ "test.com", } querystrings := []string{ "id:1", } reqID := strconv.Itoa(rand.Int()) os.Setenv("__reqID", reqID) reqHeaders := []string{ "X-Req-Id:$__reqID", } respHeaders := []string{ "X-Resp-Id:2", } timeout := 60 * time.Second configs := []config.LocationConfig{ { Name: name, Upstream: upstream, QueryStrings: querystrings, Prefixes: prefixes, Rewrites: rewrites, Hosts: hosts, ReqHeaders: reqHeaders, RespHeaders: respHeaders, ProxyTimeout: "1m", }, } opts := convertConfigs(configs) assert.Equal(1, len(opts)) assert.Equal(name, opts[0].Name) assert.Equal(upstream, opts[0].Upstream) assert.Equal(prefixes, opts[0].Prefixes) query := make(url.Values) query.Add("id", "1") assert.Equal(query, opts[0].Query) assert.Equal(hosts, opts[0].Hosts) assert.Equal(timeout, opts[0].ProxyTimeout) assert.Equal(http.Header{ "X-Req-Id": []string{ reqID, }, }, opts[0].RequestHeader) assert.Equal(http.Header{ "X-Resp-Id": []string{ "2", }, }, opts[0].ResponseHeader) } func TestDefaultLocations(t *testing.T) { assert := assert.New(t) l := Get("test.com", "/api/users/me", "test1", "test2") assert.Nil(l) Reset([]config.LocationConfig{ { Name: "test1", Hosts: []string{ "test.com", }, }, { Name: "test2", Prefixes: []string{ "/api", }, }, }) l = Get("test.com", "/api/users/me", "test1", "test2") assert.Equal("test2", l.Name) } func TestURLRewrite(t *testing.T) { assert := assert.New(t) tests := []struct { req *http.Request rewrites []string result string }{ { req: httptest.NewRequest("GET", "/api/users/me", nil), rewrites: []string{ "^/api/*:/$1", }, result: "/users/me", }, // 不匹配(因为有^前置) { req: httptest.NewRequest("GET", "/api/users/me", nil), rewrites: []string{ "^/users/*:/$1", }, result: "/api/users/me", }, // 匹配 { req: httptest.NewRequest("GET", "/api/users/me", nil), rewrites: []string{ "/users/*:/rest/$1", }, result: "/rest/me", }, } for _, tt := range tests { fn := generateURLRewriter(tt.rewrites) fn(tt.req) assert.Equal(tt.result, tt.req.URL.Path) } } func TestAddHeader(t *testing.T) { assert := assert.New(t) randomHeader := func() http.Header { h := make(http.Header) for i := 0; i < 2; i++ { k := strconv.Itoa(rand.Intn(10)) for j := 0; j < 2; j++ { v := strconv.Itoa(rand.Intn(10)) h.Add(k, v) } } return h } tests := []struct { requestHeader http.Header responseHeader http.Header }{ { requestHeader: randomHeader(), responseHeader: randomHeader(), }, } for _, tt := range tests { l := Location{ RequestHeader: tt.requestHeader, ResponseHeader: tt.responseHeader, } { h := make(http.Header) l.AddRequestHeader(h) assert.Equal(tt.requestHeader, h) assert.NotEqual(0, len(h)) } { h := make(http.Header) l.AddResponseHeader(h) assert.Equal(tt.responseHeader, h) assert.NotEqual(0, len(h)) } } } ================================================ FILE: log/log.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package log import ( "net/url" "strconv" "go.uber.org/zap" "go.uber.org/zap/zapcore" "gopkg.in/natefinch/lumberjack.v2" ) func init() { err := zap.RegisterSink("lumberjack", newLumberJack) if err != nil { panic(err) } } var defaultLogger = newLoggerX("") type LumberjackLogger struct { lumberjack.Logger } func (ll *LumberjackLogger) Sync() error { return nil } func newLumberJack(u *url.URL) (zap.Sink, error) { maxSize := 0 v := u.Query().Get("maxSize") if v != "" { maxSize, _ = strconv.Atoi(v) } maxAge := 0 v = u.Query().Get("maxAge") if v != "" { maxAge, _ = strconv.Atoi(v) } if maxAge == 0 { maxAge = 1 } compress := false if u.Query().Get("compress") == "true" { compress = true } return &LumberjackLogger{ Logger: lumberjack.Logger{ MaxSize: maxSize, MaxAge: maxAge, Filename: u.Path, Compress: compress, }, }, nil } // newLoggerX 初始化logger func newLoggerX(outputPath string) *zap.Logger { c := zap.NewProductionConfig() if outputPath != "" { c.OutputPaths = []string{ outputPath, } c.ErrorOutputPaths = []string{ outputPath, } } // 在一秒钟内, 如果某个级别的日志输出量超过了 Initial, 那么在超过之后, 每 Thereafter 条日志才会输出一条, 其余的日志都将被删除 // 如果需要输出所有日志,则设置为nil c.Sampling = nil // pike的日志比较简单,因此不添加caller c.DisableCaller = true c.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder // 只针对panic 以上的日志增加stack trace l, err := c.Build(zap.AddStacktrace(zap.DPanicLevel)) if err != nil { panic(err) } return l } func SetOutputPath(outputPath string) { defaultLogger = newLoggerX(outputPath) } // Default get default logger func Default() *zap.Logger { return defaultLogger } ================================================ FILE: main.go ================================================ package main import ( "bytes" "fmt" "io/ioutil" "net/http" "os" "os/signal" "syscall" "github.com/spf13/cobra" "github.com/vicanso/pike/app" "github.com/vicanso/pike/cache" "github.com/vicanso/pike/compress" "github.com/vicanso/pike/config" "github.com/vicanso/pike/location" "github.com/vicanso/pike/log" _ "github.com/vicanso/pike/schedule" "github.com/vicanso/pike/server" "github.com/vicanso/pike/store" "github.com/vicanso/pike/upstream" "go.uber.org/automaxprocs/maxprocs" "go.uber.org/zap" ) var ( version = "dev" commit = "none" date = "unknown" builtBy = "unknown" ) // alarmURL 告警发送的地址 var alarmURL string var alarmTemplate string func init() { err := runCMD() if err != nil { panic(err) } // 如果是help cmd,则 if isHelpCmd() { os.Exit(0) return } _, _ = maxprocs.Set(maxprocs.Logger(func(format string, args ...interface{}) { value := fmt.Sprintf(format, args...) log.Default().Info(value) })) app.SetBuildInfo(date, commit, version, builtBy) hostname, _ := os.Hostname() alarmTemplate = `{ "application": "pike", "hostname": "` + hostname + `", "category": "%s", "message": "%s" }` } // doAlarm 发送告警 func doAlarm(category, message string) { if alarmURL == "" { return } data := fmt.Sprintf(alarmTemplate, category, message) resp, err := http.Post(alarmURL, "application/json", bytes.NewBufferString(data)) if err != nil { log.Default().Error("do alarm fail", zap.Error(err), ) return } defer resp.Body.Close() result, _ := ioutil.ReadAll(resp.Body) if resp.StatusCode >= 400 { log.Default().Error("do alarm fail", zap.Int("status", resp.StatusCode), zap.String("result", string(result)), ) } } func update() (err error) { pikeConfig, err := config.Read() if err != nil { return } // 重置压缩列表 compress.Reset(pikeConfig.Compresses) // 重置默认dispatcher列表 cache.ResetDispatchers(pikeConfig.Caches) // 重置默认的upstream列表 upstream.ResetWithOnStats(pikeConfig.Upstreams, func(si upstream.StatusInfo) { log.Default().Info("upstream status change", zap.String("name", si.Name), zap.String("status", si.Status), zap.String("addr", si.URL), ) if si.Status == "sick" { message := fmt.Sprintf("%s is %s, addr: %s", si.Name, si.Status, si.URL) go doAlarm("upstream", message) } }) // 重置location列表 location.Reset(pikeConfig.Locations) server.Reset(pikeConfig.Servers) return server.Start() } func startAdminServer(addr string) error { pikeConfig, err := config.Read() if err != nil { return err } return server.StartAdminServer(server.AdminServerConfig{ Addr: addr, User: pikeConfig.Admin.User, Password: pikeConfig.Admin.Password, }) } // runCMD 解析各命令参数 func runCMD() error { configURL := "" adminAddr := "" logOutputPath := "" var rootCmd = &cobra.Command{ Use: "pike", Short: "Pike is a http cache server", PreRun: func(cmd *cobra.Command, args []string) { if logOutputPath != "" { log.SetOutputPath(logOutputPath) } // 初始化配置 err := config.InitDefaultClient(configURL) if err != nil { panic(err) } }, Run: func(cmd *cobra.Command, args []string) { if adminAddr != "" { go func() { err := startAdminServer(adminAddr) if err != nil { log.Default().Error("start admin server fail", zap.String("addr", adminAddr), zap.Error(err), ) go doAlarm("admin", adminAddr+", "+err.Error()) } }() } run() }, } // 配置文件地址 rootCmd.Flags().StringVar(&configURL, "config", "pike.yml", "The config of pike, support etcd or file, etcd://user:pass@192.168.1.2:2379,192.168.1.3:2379/pike or /opt/pike.yml") // 管理后台地址 rootCmd.Flags().StringVar(&adminAddr, "admin", "", "The address of admin web page, e.g.: :9013") // 告警发送地址 rootCmd.Flags().StringVar(&alarmURL, "alarm", "", "The alarm request url, alarm will post to the url, e.g.: http://192.168.1.2:3000/alarms") // 日志文件 rootCmd.Flags().StringVar(&logOutputPath, "log", "", "The log path, e.g.: /var/pike.log or lumberjack:///tmp/pike.log?maxSize=100&maxAge=1&compress=true") return rootCmd.Execute() } func run() { logger := log.Default() go config.Watch(func() { err := update() if err != nil { logger.Error("update config fail", zap.Error(err), ) go doAlarm("config", err.Error()) } else { logger.Info("update config success") } }) err := update() if err != nil { panic(err) } } func isHelpCmd() bool { for _, arg := range os.Args { if arg == "-h" || arg == "--help" { return true } } return false } // isDev 判断是否开发环境 func isDev() bool { return os.Getenv("GO_ENV") == "dev" } func main() { defer config.Close() defer store.Close() log.Default().Info("pike is running") c := make(chan os.Signal, 1) signal.Notify(c, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT) for si := range c { log.Default().Info("closing", zap.String("signal", si.String()), ) // 如果非开发环境,则需要close所有的server if !isDev() { server.Close() } os.Exit(0) } } ================================================ FILE: pike.yml ================================================ version: 4.0.4 admin: user: vicanso password: z6+5xIgzATEPuK5T8LL8/SLWI7HhZdm5OJ445xaHsX0= compresses: - name: compressCommon levels: br: 6 gzip: 6 remark: 通用压缩配置 caches: - name: cacheCommon size: 51200 hitForPass: 5m store: badger:///tmp/badger remark: 通用缓存配置 upstreams: - name: upstreamTest healthCheck: /ping policy: roundRobin servers: - addr: http://test:3000 remark: 测试使用的upstream locations: - name: locationTest upstream: upstreamTest prefixes: - /api rewrites: - /api/*:/$1 proxyTimeout: 30s remark: 测试location servers: - logFormat: '{when-iso} {real-ip} {remote} {:proxyTarget} {host} {method} {uri} {proto} {status} { 5*time.Second { v = time.Second } time.Sleep(v) } updateServerStatus(&conf) // 因为yaml部分要根据配置数据重新生成,因此重新读取返回 c.Body = conf return } // getApplicationInfo 获取应用信息 func getApplicationInfo(c *elton.Context) (err error) { processing := make(map[string]int32) defaultServers.m.Range(func(key, value interface{}) bool { if key == nil || value == nil { return true } name, ok := key.(string) if !ok { return true } s, ok := value.(*server) if !ok { return true } processing[name] = s.processing.Load() return true }) c.Body = &applicationInfo{ Info: app.GetInfo(), Processing: processing, } return } // removeCache 删除缓存 func removeCache(c *elton.Context) (err error) { key := c.QueryParam("key") if key == "" { err = cacheKeyIsNil return } cache.RemoveHTTPCache(c.QueryParam("cache"), []byte(key)) c.NoContent() return } // StartAdminServer start admin server func StartAdminServer(config AdminServerConfig) (err error) { logger := log.Default() ttlToken := &jwt.TTLToken{ TTL: 24 * time.Hour, // 密钥用于加密数据,需保密 Secret: []byte(config.Password), // CookieName: jwtCookie, } // Passthrough为false,会校验token是否正确 jwtNormal := jwt.NewJWT(jwt.Config{ CookieName: jwtCookie, TTLToken: ttlToken, // Decode: ttlToken.Decode, }) // 用于初始化创建token使用(此时可能token还没有或者已过期) jwtPassthrough := jwt.NewJWT(jwt.Config{ CookieName: jwtCookie, TTLToken: ttlToken, Passthrough: true, }) e := elton.New() e.Use(func(c *elton.Context) error { // 全局设置为不可缓存,后续可覆盖 c.NoCache() // cors c.SetHeader("Access-Control-Allow-Credentials", "true") c.SetHeader("Access-Control-Allow-Origin", "http://127.0.0.1:3123") c.SetHeader("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE, OPTIONS") c.SetHeader("Access-Control-Allow-Headers", "Content-Type, Accept") c.SetHeader("Access-Control-Max-Age", "86400") return c.Next() }) e.Use(middleware.NewError(middleware.ErrorConfig{ ResponseType: "json", })) e.Use(middleware.NewStats(middleware.StatsConfig{ OnStats: func(info *middleware.StatsInfo, _ *elton.Context) { logger.Info("access log", zap.String("ip", info.IP), zap.String("method", info.Method), zap.String("uri", info.URI), zap.Int("status", info.Status), zap.String("consuming", info.Consuming.String()), zap.Int("bytes", info.Size), ) }, })) e.Use(middleware.NewDefaultCompress()) e.Use(middleware.NewDefaultBodyParser()) e.Use(middleware.NewDefaultResponder()) // 获取、更新配置 var isLogin elton.Handler if config.User != "" { isLogin = elton.Compose(jwtNormal, newIsLoginHandler(config.User)) } else { isLogin = func(c *elton.Context) error { return c.Next() } } e.GET("/config", isLogin, getConfig) e.PUT("/config", isLogin, saveConfig) // 登录 e.POST("/login", jwtPassthrough, newLoginHandler(ttlToken, config.User, config.Password)) // 用户信息 e.GET("/me", jwtPassthrough, newUserMeHandler(config.User)) e.GET("/application-info", getApplicationInfo) // 缓存 e.DELETE("/cache", removeCache) e.GET("/ping", func(c *elton.Context) error { c.BodyBuffer = bytes.NewBufferString("pong") return nil }) // 静态文件 e.GET("/", func(c *elton.Context) error { return sendFile(c, "index.html") }) e.GET("/*", middleware.NewStaticServe(webAsset, middleware.StaticServeConfig{ // 客户端缓存一年 MaxAge: 365 * 24 * time.Hour, // 缓存服务器缓存一个小时 SMaxAge: time.Hour, DisableLastModified: true, })) // cors设置 e.OPTIONS("/*", func(c *elton.Context) error { c.NoContent() return nil }) logger.Info("start admin server", zap.String("addr", config.Addr), ) return e.ListenAndServe(config.Addr) } ================================================ FILE: server/cache.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package server import ( "net/http" "github.com/vicanso/elton" "github.com/vicanso/pike/cache" ) const ( // spaceByte 空格 spaceByte = byte(' ') ) // requestIsPass check request is passed func requestIsPass(req *http.Request) bool { // 非GET HEAD 的请求均直接pass return req.Method != http.MethodGet && req.Method != http.MethodHead } // getKey get key of request func getKey(req *http.Request) []byte { methodLen := len(req.Method) hostLen := len(req.Host) uri := req.RequestURI // 正常RequestURI均不为空,但是如果直接创建一个request对象, // 则有可能为空 if len(uri) == 0 { uri = req.URL.String() } uriLen := len(uri) buffer := make([]byte, methodLen+hostLen+uriLen+2) len := 0 copy(buffer[len:], req.Method) len += methodLen buffer[len] = spaceByte len++ copy(buffer[len:], req.Host) len += hostLen buffer[len] = spaceByte len++ copy(buffer[len:], uri) return buffer } // NewCache new a cache middleware func NewCache(s *server) elton.Handler { return func(c *elton.Context) (err error) { // 不可缓存请求,直接pass至upstream if requestIsPass(c.Request) { setCacheStatus(c, cache.StatusPassed) return c.Next() } disp := cache.GetDispatcher(s.GetCache()) if disp == nil { err = ErrCacheDispatcherNotFound return } key := getKey(c.Request) httpCache := disp.GetHTTPCache(key) cacheStatus, httpResp := httpCache.Get() cacheable := false // 对于fetching类的请求,如果最终是不可缓存的,则设置hit for pass // 保证只要不是panic,fetching的请求非可缓存的都为hit for pass if cacheStatus == cache.StatusFetching { defer func() { if !cacheable { httpCache.HitForPass(disp.GetHitForPass()) } }() } setCacheStatus(c, cacheStatus) // 缓存中读取的可缓存数据,不需要next if cacheStatus == cache.StatusHit { // 设置缓存数据 setHTTPResp(c, httpResp) // 设置缓存数据的age setHTTPRespAge(c, httpCache.Age()) return nil } err = c.Next() if err != nil { return err } // TODO 如果是hit for pass,但此次返回的缓存有效期不为0, // 有可能因为上一次接口出错,导致了hit for pass,此次成功则可缓存, // 后续再确认是否需要在此情况下将缓存更新 if cacheStatus == cache.StatusFetching { // 获取缓存有效期 if maxAge := getHTTPCacheMaxAge(c); maxAge > 0 { // 只有有响应数据可缓存时才设置为cacheable if httpResp = getHTTPResp(c); httpResp != nil { cacheable = true httpCache.Cacheable(httpResp, maxAge) } } } return nil } } ================================================ FILE: server/cache_test.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package server import ( "net/http/httptest" "testing" "github.com/stretchr/testify/assert" "github.com/vicanso/elton" "github.com/vicanso/pike/cache" "github.com/vicanso/pike/config" ) func TestRequestIsPass(t *testing.T) { assert := assert.New(t) assert.True(requestIsPass(httptest.NewRequest("POST", "/", nil))) assert.True(requestIsPass(httptest.NewRequest("PATCH", "/", nil))) assert.True(requestIsPass(httptest.NewRequest("PUT", "/", nil))) assert.False(requestIsPass(httptest.NewRequest("GET", "/", nil))) assert.False(requestIsPass(httptest.NewRequest("HEAD", "/", nil))) } func TestGetKey(t *testing.T) { assert := assert.New(t) req := httptest.NewRequest("GET", "http://test.com/users/me?type=1", nil) assert.Equal("GET test.com http://test.com/users/me?type=1", string(getKey(req))) } func TestCacheMiddleware(t *testing.T) { assert := assert.New(t) cacheableContext := elton.NewContext( httptest.NewRecorder(), httptest.NewRequest("GET", "/", nil), ) // 设置可缓存有效期为10 setHTTPCacheMaxAge(cacheableContext, 10) setHTTPResp(cacheableContext, &cache.HTTPResponse{}) tests := []struct { c *elton.Context status cache.Status }{ // 直接pass的请求 { c: elton.NewContext( httptest.NewRecorder(), httptest.NewRequest("POST", "/users/login", nil), ), status: cache.StatusPassed, }, // 首次fetching,返回不可缓存 { c: elton.NewContext( httptest.NewRecorder(), httptest.NewRequest("GET", "/users/me", nil), ), status: cache.StatusFetching, }, // 第二次hit for pass { c: elton.NewContext( httptest.NewRecorder(), httptest.NewRequest("GET", "/users/me", nil), ), status: cache.StatusHitForPass, }, // 首次fetching,返回可缓存 { c: cacheableContext, status: cache.StatusFetching, }, // 第二次则从缓存获取 { c: elton.NewContext( httptest.NewRecorder(), httptest.NewRequest("GET", "/", nil), ), status: cache.StatusHit, }, } cacheName := "test" cache.ResetDispatchers([]config.CacheConfig{ { Name: cacheName, Size: 100, }, }) s := NewServer(ServerOption{ Cache: cacheName, }) fn := NewCache(s) for _, tt := range tests { tt.c.Next = func() error { return nil } err := fn(tt.c) assert.Nil(err) assert.Equal(tt.status, getCacheStatus(tt.c)) } } ================================================ FILE: server/proxy.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package server import ( "net/http" "regexp" "strconv" "strings" "github.com/vicanso/elton" "github.com/vicanso/hes" "github.com/vicanso/pike/cache" "github.com/vicanso/pike/location" "github.com/vicanso/pike/upstream" "github.com/vicanso/pike/util" "golang.org/x/net/context" ) var ( noCacheReg = regexp.MustCompile(`no-cache|no-store|private`) sMaxAgeReg = regexp.MustCompile(`s-maxage=(\d+)`) maxAgeReg = regexp.MustCompile(`max-age=(\d+)`) ) // 根据Cache-Control的信息,获取s-maxage 或者max-age的值 func getCacheMaxAge(header http.Header) int { // 如果有设置cookie,则为不可缓存 if header.Get(elton.HeaderSetCookie) != "" { return 0 } // 如果没有设置cache-control,则不可缓存 cc := strings.Join(header.Values(elton.HeaderCacheControl), ",") if cc == "" { return 0 } // 如果设置不可缓存,返回0 if noCacheReg.MatchString(cc) { return 0 } // 优先从s-maxage中获取 var maxAge = 0 result := sMaxAgeReg.FindStringSubmatch(cc) if len(result) == 2 { maxAge, _ = strconv.Atoi(result[1]) } else { // 从max-age中获取缓存时间 result = maxAgeReg.FindStringSubmatch(cc) if len(result) == 2 { maxAge, _ = strconv.Atoi(result[1]) } } // 如果有设置了 age 字段,则最大缓存时长减少 if age := header.Get(headerAge); age != "" { v, _ := strconv.Atoi(age) maxAge -= v } return maxAge } // NewProxy create proxy middleware func NewProxy(s *server) elton.Handler { return func(c *elton.Context) (err error) { originalNext := c.Next // 由于proxy中间件会调用next,因此直接覆盖, // 避免导致先执行了后续的中间件(保证在函数调用next前是已完成此中间件处理) c.Next = func() error { return nil } l := location.Get(c.Request.Host, c.Request.RequestURI, s.GetLocations()...) if l == nil { err = ErrLocationNotFound return } upstream := upstream.Get(l.Upstream) if upstream == nil { err = ErrUpstreamNotFound return } reqHeader := c.Request.Header var ifModifiedSince, ifNoneMatch string status := getCacheStatus(c) // 针对fetching的请求,由于其最终状态未知,因此需要删除有可能导致304的请求,避免无法生成缓存 if status == cache.StatusFetching { ifModifiedSince = reqHeader.Get(elton.HeaderIfModifiedSince) ifNoneMatch = reqHeader.Get(elton.HeaderIfNoneMatch) if ifModifiedSince != "" { reqHeader.Del(elton.HeaderIfModifiedSince) } if ifNoneMatch != "" { reqHeader.Del(elton.HeaderIfNoneMatch) } } // url rewrite var originalPath string if l.URLRewriter != nil { originalPath = c.Request.URL.Path l.URLRewriter(c.Request) } // 添加额外的请求头 l.AddRequestHeader(reqHeader) // 添加query string var originRawQuery string if l.ShouldModifyQuery() { originRawQuery = c.Request.URL.RawQuery l.AddQuery(c.Request) } var acceptEncoding string // 根据upstream设置可接受压缩编码调整 acceptEncodingChanged := upstream.Option.AcceptEncoding != "" if acceptEncodingChanged { acceptEncoding = reqHeader.Get(elton.HeaderAcceptEncoding) reqHeader.Set(elton.HeaderAcceptEncoding, upstream.Option.AcceptEncoding) } if l.ProxyTimeout != 0 { ctx, cancel := context.WithTimeout(c.Context(), l.ProxyTimeout) defer cancel() c.WithContext(ctx) } // clone当前header,用于后续恢复 originalHeader := c.Header().Clone() c.ResetHeader() err = upstream.Proxy(c) // 如果出错超时,则转换为504 timeout,category:pike if err != nil { if he, ok := err.(*hes.Error); ok { if he.Err == context.DeadlineExceeded { err = util.NewError("Timeout", http.StatusGatewayTimeout) } } } // 恢复请求头 if ifModifiedSince != "" { reqHeader.Set(elton.HeaderIfModifiedSince, ifModifiedSince) } if ifNoneMatch != "" { reqHeader.Set(elton.HeaderIfNoneMatch, ifNoneMatch) } if acceptEncodingChanged { reqHeader.Set(elton.HeaderAcceptEncoding, acceptEncoding) } // 恢复query if originRawQuery != "" { c.Request.URL.RawQuery = originRawQuery } header := c.Header() // 添加额外的响应头 l.AddResponseHeader(header) // 恢复原始url path if originalPath != "" { c.Request.URL.Path = originalPath } if err != nil { return } var data []byte if c.BodyBuffer != nil { data = c.BodyBuffer.Bytes() } // 对于fetching的请求,从响应头中判断该请求缓存的有效期 if status == cache.StatusFetching { maxAge := getCacheMaxAge(header) if maxAge > 0 { setHTTPCacheMaxAge(c, maxAge) } } // 初始化http response时,如果已压缩,而且非gzip br,则会解压 httpResp, err := cache.NewHTTPResponse(c.StatusCode, header, header.Get(elton.HeaderContentEncoding), data) if err != nil { return } compressSrv, minLength, filter := s.GetCompress() httpResp.CompressSrv = compressSrv httpResp.CompressMinLength = minLength httpResp.CompressContentTypeFilter = filter setHTTPResp(c, httpResp) // 重置context中由于proxy中间件影响的状态 statusCode, header, body // 因为最终响应会从http response中生成,该响应会包括http响应头, // 因此清除现在的header并恢复原来的header c.ResetHeader() c.MergeHeader(originalHeader) c.BodyBuffer = nil c.StatusCode = 0 c.Next = originalNext return c.Next() } } ================================================ FILE: server/proxy_test.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package server import ( "bytes" "net" "net/http" "net/http/httptest" "regexp" "strconv" "strings" "testing" "time" "github.com/stretchr/testify/assert" "github.com/vicanso/elton" "github.com/vicanso/elton/middleware" "github.com/vicanso/pike/cache" "github.com/vicanso/pike/config" "github.com/vicanso/pike/location" "github.com/vicanso/pike/upstream" ) func TestGetCacheMaxAge(t *testing.T) { assert := assert.New(t) tests := []struct { key string value string age int existsAge int }{ // 设置了 set cookie { key: elton.HeaderSetCookie, value: "set cookie", age: 0, }, // 未设置cache control { age: 0, }, // 设置了cache control 为 no cache { key: elton.HeaderCacheControl, value: "no-cache", age: 0, }, // 设置了cache control 为 no store { key: elton.HeaderCacheControl, value: "no-store", age: 0, }, // 设置了cache control 为 private { key: elton.HeaderCacheControl, value: "private, max-age=10", age: 0, }, // 设置了max-age { key: elton.HeaderCacheControl, value: "max-age=10", age: 10, }, // 设置了s-maxage { key: elton.HeaderCacheControl, value: "max-age=10, s-maxage=1 ", age: 1, }, // 设置了age { key: elton.HeaderCacheControl, value: "max-age=10", age: 8, existsAge: 2, }, } for _, tt := range tests { h := http.Header{} h.Add(tt.key, tt.value) if tt.existsAge != 0 { h.Add("Age", strconv.Itoa(tt.existsAge)) } age := getCacheMaxAge(h) assert.Equal(tt.age, age) } } func TestProxyMiddleware(t *testing.T) { assert := assert.New(t) ln, err := net.Listen("tcp", "127.0.0.1:") assert.Nil(err) defer ln.Close() cacheResp := []byte("cache response") go func() { e := elton.New() e.Use(middleware.NewDefaultBodyParser()) e.GET("/ping", func(c *elton.Context) error { c.BodyBuffer = bytes.NewBufferString("pong") return nil }) e.GET("/cache", func(c *elton.Context) error { c.CacheMaxAge(time.Minute) c.BodyBuffer = bytes.NewBuffer(cacheResp) return nil }) e.GET("/accept-encoding", func(c *elton.Context) error { c.BodyBuffer = bytes.NewBufferString(c.GetRequestHeader(elton.HeaderAcceptEncoding)) return nil }) e.GET("/remove-304-header", func(c *elton.Context) error { values := make([]string, 0) for _, key := range []string{ elton.HeaderIfModifiedSince, elton.HeaderIfNoneMatch, "X-Custom", } { values = append(values, c.GetRequestHeader(key)) } c.BodyBuffer = bytes.NewBufferString(strings.Join(values, ",")) return nil }) // e.POST("/") _ = e.Serve(ln) }() time.Sleep(50 * time.Millisecond) reqHeader := http.Header{ "X-Request-ID": []string{ "1", }, } respHeader := http.Header{ "X-Response-ID": []string{ "2", }, } location.Reset([]config.LocationConfig{ { Name: "test", Upstream: "test", ReqHeaders: []string{ "X-Request-ID:1", }, RespHeaders: []string{ "X-Response-ID:2", }, Rewrites: []string{ "/api/*:/$1", }, ProxyTimeout: "1s", }, }) upstream.Reset([]config.UpstreamConfig{ { Name: "test", Servers: []config.UpstreamServerConfig{ { Addr: "http://" + ln.Addr().String(), }, }, AcceptEncoding: "snappy", }, }) tests := []struct { create func() *elton.Context body string age int originalAcceptEncoding string }{ // 正常fetching,可缓存请求 { create: func() *elton.Context { req := httptest.NewRequest("GET", "/cache", nil) c := elton.NewContext(httptest.NewRecorder(), req) setCacheStatus(c, cache.StatusFetching) return c }, body: string(cacheResp), age: 60, }, // url rewrite { create: func() *elton.Context { req := httptest.NewRequest("GET", "/api/cache", nil) return elton.NewContext(httptest.NewRecorder(), req) }, body: string(cacheResp), }, // 修改accept encoding { create: func() *elton.Context { req := httptest.NewRequest("GET", "/accept-encoding", nil) req.Header.Set(elton.HeaderAcceptEncoding, "lz4") return elton.NewContext(httptest.NewRecorder(), req) }, body: "snappy", originalAcceptEncoding: "lz4", }, // remove 304 header { create: func() *elton.Context { req := httptest.NewRequest("GET", "/remove-304-header", nil) c := elton.NewContext(httptest.NewRecorder(), req) // 设置为fetching的才会影响304的请求头 setCacheStatus(c, cache.StatusFetching) c.SetRequestHeader(elton.HeaderIfModifiedSince, "if modified since") c.SetRequestHeader(elton.HeaderIfNoneMatch, "if none match") c.SetRequestHeader("X-Custom", "1") return c }, body: ",,1", }, } serverOption := ServerOption{ Locations: []string{ "test", }, Compress: "test-compress", CompressMinLength: 100, CompressContentTypeFilter: regexp.MustCompile(`text|json`), } fn := NewProxy(NewServer(serverOption)) for _, tt := range tests { c := tt.create() c.Next = func() error { return nil } err := fn(c) assert.Nil(err) httpResp := getHTTPResp(c) for key, value := range reqHeader { assert.Equal(value[0], c.GetRequestHeader(key)) } for key, value := range respHeader { assert.Equal(value[0], httpResp.Header.Get(key)) // 确认context中的header并没有设置 assert.Empty(c.GetHeader(key)) } assert.Equal(tt.originalAcceptEncoding, c.GetRequestHeader(elton.HeaderAcceptEncoding)) assert.Equal(tt.body, string(httpResp.RawBody)) assert.Equal(tt.age, getHTTPCacheMaxAge(c)) assert.Equal(serverOption.CompressContentTypeFilter, httpResp.CompressContentTypeFilter) assert.Equal(serverOption.CompressMinLength, httpResp.CompressMinLength) assert.Equal(serverOption.Compress, httpResp.CompressSrv) } } ================================================ FILE: server/responder.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package server import ( "strconv" "github.com/vicanso/elton" ) // NewResponder create a responder middleware func NewResponder() elton.Handler { return func(c *elton.Context) (err error) { err = c.Next() if err != nil { return } // 从context中读取http response,该数据由cache中间件设置或proxy中间件设置 httpResp := getHTTPResp(c) if httpResp == nil { err = ErrInvalidResponse return } err = httpResp.Fill(c) if err != nil { return } // http 响应头放在最后可以覆盖proxy的设置的相同响应头 // 获取该响应的age,只有从缓存中读取的数据才有age,由cache中间件设置 age := getHTTPRespAge(c) if age > 0 { c.SetHeader(headerAge, strconv.Itoa(age)) } c.SetHeader(headerCacheStatus, getCacheStatus(c).String()) return } } ================================================ FILE: server/responder_test.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package server import ( "net/http/httptest" "testing" "github.com/stretchr/testify/assert" "github.com/vicanso/elton" "github.com/vicanso/pike/cache" ) func TestResponderMiddleware(t *testing.T) { assert := assert.New(t) tests := []struct { create func() *elton.Context headerAge string body []byte }{ { create: func() *elton.Context { c := elton.NewContext(httptest.NewRecorder(), httptest.NewRequest("GET", "/", nil)) return c }, headerAge: "", }, { create: func() *elton.Context { c := elton.NewContext(httptest.NewRecorder(), httptest.NewRequest("GET", "/", nil)) setHTTPResp(c, &cache.HTTPResponse{ RawBody: []byte("abcd"), }) setHTTPRespAge(c, 10) return c }, headerAge: "10", body: []byte("abcd"), }, } fn := NewResponder() for _, tt := range tests { c := tt.create() c.Next = func() error { return nil } err := fn(c) if err != nil { assert.Equal(ErrInvalidResponse, err) } else { assert.Equal(tt.headerAge, c.GetHeader("Age")) assert.Equal(tt.body, c.BodyBuffer.Bytes()) } } } ================================================ FILE: server/server.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package server import ( "net" "net/http" "regexp" "sync" "time" "github.com/dustin/go-humanize" "github.com/vicanso/elton" "github.com/vicanso/elton/middleware" "github.com/vicanso/pike/cache" "github.com/vicanso/pike/config" "github.com/vicanso/pike/log" "github.com/vicanso/pike/util" "go.uber.org/atomic" "go.uber.org/zap" ) type ( // server pike server server struct { mutex *sync.RWMutex logFormat string listening bool listenAddr string addr string locations []string cache string compress string compressMinLength int compressContentTypeFilter *regexp.Regexp processing atomic.Int32 ln net.Listener e *elton.Elton } // servers pike server list servers struct { m *sync.Map } ServerOption struct { // 访问日志格式化 LogFormat string // 监听地址 Addr string // 使用的location列表 Locations []string // 使用的缓存 Cache string // 使用的压缩服务 Compress string // 压缩最小尺寸 CompressMinLength int // 压缩数据类型 CompressContentTypeFilter *regexp.Regexp } ) const ( // statusKey 保存该请求对应的status: fetching, pass 等 statusKey = "_status" // httpRespKey 保存请求对应的响应数据 httpRespKey = "_httpResp" // httpRespAgeKey 保存缓存响应的age httpRespAgeKey = "_httpRespAge" // httpCacheMaxAgeKey 缓存有效期 httpCacheMaxAgeKey = "_httpCacheMaxAge" ) const defaultCompressMinLength = 1024 var defaultServers = NewServers(nil) const ( headerAge = "Age" headerCacheStatus = "X-Status" ) var ( ErrInvalidResponse = util.NewError("Invalid response", http.StatusServiceUnavailable) ErrCacheDispatcherNotFound = util.NewError("Available cache dispatcher not found", http.StatusServiceUnavailable) ErrLocationNotFound = util.NewError("Available location not found", http.StatusServiceUnavailable) ErrUpstreamNotFound = util.NewError("Available upstream not found", http.StatusBadGateway) ) func getCacheStatus(c *elton.Context) cache.Status { return cache.Status(c.GetInt(statusKey)) } func setCacheStatus(c *elton.Context, cacheStatus cache.Status) { c.Set(statusKey, int(cacheStatus)) } func getHTTPResp(c *elton.Context) *cache.HTTPResponse { value, exists := c.Get(httpRespKey) if !exists { return nil } resp, ok := value.(*cache.HTTPResponse) if !ok { return nil } return resp } func setHTTPResp(c *elton.Context, resp *cache.HTTPResponse) { c.Set(httpRespKey, resp) } func setHTTPRespAge(c *elton.Context, age int) { c.Set(httpRespAgeKey, age) } func getHTTPRespAge(c *elton.Context) int { return c.GetInt(httpRespAgeKey) } func setHTTPCacheMaxAge(c *elton.Context, age int) { c.Set(httpCacheMaxAgeKey, age) } func getHTTPCacheMaxAge(c *elton.Context) int { return c.GetInt(httpCacheMaxAgeKey) } // NewServer create a new server func NewServer(opt ServerOption) *server { minLength := opt.CompressMinLength // 如果未设置最少压缩长度,则设置为1KB if minLength == 0 { minLength = defaultCompressMinLength } return &server{ mutex: &sync.RWMutex{}, logFormat: opt.LogFormat, addr: opt.Addr, locations: opt.Locations, cache: opt.Cache, compress: opt.Compress, compressMinLength: minLength, compressContentTypeFilter: opt.CompressContentTypeFilter, } } // NewServers create new server list func NewServers(opts []ServerOption) *servers { m := &sync.Map{} for _, opt := range opts { m.Store(opt.Addr, NewServer(opt)) } return &servers{ m: m, } } // Start start all server func (ss *servers) Start() (err error) { ss.m.Range(func(key, value interface{}) bool { s, ok := value.(*server) if ok { err := s.Start(true) if err != nil { log.Default().Error("server start fail", zap.String("addr", s.addr), zap.Error(err), ) } } return true }) return nil } // Reset reset server list func (ss *servers) Reset(opts []ServerOption) { // 删除不再存在的server result := util.MapDelete(ss.m, func(key string) bool { exists := false for _, opt := range opts { if opt.Addr == key { exists = true break } } return !exists }) for _, item := range result { s, _ := item.(*server) if s != nil { // 由于close需要等待,因此切换时,使用goroutine来关闭 go func() { err := s.Close() if err != nil { log.Default().Error("close server fail", zap.String("addr", s.addr), zap.Error(err), ) } }() } } for _, opt := range opts { value, ok := ss.m.Load(opt.Addr) // 如果该服务存在,则修改属性 if ok { s, _ := value.(*server) if s != nil { s.Update(opt) } } else { ss.m.Store(opt.Addr, NewServer(opt)) } } } // Close close the server list func (ss *servers) Close() error { ss.m.Range(func(_, value interface{}) bool { s, _ := value.(*server) if s != nil { err := s.Close() log.Default().Error("close server fail", zap.String("addr", s.addr), zap.Error(err), ) } return true }) return nil } // Get get server for server list func (ss *servers) Get(name string) *server { value, ok := ss.m.Load(name) if !ok { return nil } s, ok := value.(*server) if !ok { return nil } return s } // Update 更新配置 func (s *server) Update(opt ServerOption) { s.mutex.Lock() defer s.mutex.Unlock() s.locations = opt.Locations s.cache = opt.Cache s.compress = opt.Compress s.compressMinLength = opt.CompressMinLength s.compressContentTypeFilter = opt.CompressContentTypeFilter } // GetCache get the cache of server func (s *server) GetCache() string { s.mutex.RLock() defer s.mutex.RUnlock() return s.cache } // GetLocations get the locations of server func (s *server) GetLocations() []string { s.mutex.RLock() defer s.mutex.RUnlock() return s.locations } // GetCompress get the compress option of server func (s *server) GetCompress() (name string, minLength int, filter *regexp.Regexp) { s.mutex.RLock() defer s.mutex.RUnlock() return s.compress, s.compressMinLength, s.compressContentTypeFilter } // Start start the server func (s *server) Start(useGoRoutine bool) (err error) { s.mutex.Lock() defer s.mutex.Unlock() // 如监听中,则直接返回 if s.listening { return } logger := log.Default() // TODO 如果发生panic,停止处理新请求,程序退出 e := elton.New() if s.logFormat != "" { e.Use(middleware.NewLogger(middleware.LoggerConfig{ DefaultFill: "-", OnLog: func(str string, _ *elton.Context) { logger.Info(str) }, Format: s.logFormat, })) } e.Use(func(c *elton.Context) error { s.processing.Add(1) defer s.processing.Dec() return c.Next() }) // TODO 考虑是否自定义出错中间件,对于系统的error(category: "pike")触发告警 e.Use(middleware.NewDefaultError()) e.Use(middleware.NewDefaultFresh()) e.Use(NewResponder()) e.Use(NewCache(s)) e.Use(NewProxy(s)) e.ALL("/*", func(c *elton.Context) error { return nil }) // TODO 一般使用时,pike的前置还有nginx或haproxy, // 因此与客户端的各类超时由前置反向代理处理, // 后续确认是否需要增加更多的参数设置, // 如ReadTimeout ReadHeaderTimeout等 srv := &http.Server{ Handler: e, } ln, err := net.Listen("tcp", s.addr) if err != nil { return } s.listening = true s.e = e s.ln = ln s.listenAddr = ln.Addr().String() if !useGoRoutine { return srv.Serve(ln) } go func() { err := srv.Serve(ln) log.Default().Error("server serve fail", zap.String("addr", s.addr), zap.Error(err), ) }() return nil } // Close close the server func (s *server) Close() error { s.mutex.Lock() defer s.mutex.Unlock() if !s.listening { return nil } s.listening = false err := s.e.GracefulClose(10 * time.Second) if err != nil { return err } return s.ln.Close() } // GetAddr get listen addr of server func (s *server) GetListenAddr() string { return s.listenAddr } func convertConfig(configs []config.ServerConfig) []ServerOption { opts := make([]ServerOption, 0) for _, item := range configs { minLength, _ := humanize.ParseBytes(item.CompressMinLength) var reg *regexp.Regexp // 如果有配置则生成 if item.CompressContentTypeFilter != "" { reg, _ = regexp.Compile(item.CompressContentTypeFilter) } opts = append(opts, ServerOption{ LogFormat: item.LogFormat, Addr: item.Addr, Locations: item.Locations, Cache: item.Cache, Compress: item.Compress, CompressMinLength: int(minLength), CompressContentTypeFilter: reg, }) } return opts } // Reset reset the default server list func Reset(configs []config.ServerConfig) { defaultServers.Reset(convertConfig(configs)) } // Get get server from default server list func Get(name string) *server { return defaultServers.Get(name) } // Start start the default server list func Start() error { return defaultServers.Start() } // CLose close the default server list func Close() error { return defaultServers.Close() } ================================================ FILE: server/server_test.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package server import ( "regexp" "testing" "github.com/stretchr/testify/assert" "github.com/vicanso/elton" "github.com/vicanso/pike/cache" "github.com/vicanso/pike/config" ) func TestGetSetCacheStatus(t *testing.T) { assert := assert.New(t) c := elton.NewContext(nil, nil) assert.Equal(cache.StatusUnknown, getCacheStatus(c)) setCacheStatus(c, cache.StatusHit) assert.Equal(cache.StatusHit, getCacheStatus(c)) } func TestGetSetHTTPResp(t *testing.T) { assert := assert.New(t) c := elton.NewContext(nil, nil) assert.Nil(getHTTPResp(c)) httpResp := &cache.HTTPResponse{} setHTTPResp(c, httpResp) assert.Equal(httpResp, getHTTPResp(c)) } func TestGetSetHTTPRespAge(t *testing.T) { assert := assert.New(t) c := elton.NewContext(nil, nil) assert.Equal(0, getHTTPRespAge(c)) age := 10 setHTTPRespAge(c, age) assert.Equal(age, getHTTPRespAge(c)) } func TestGetSetHTTPCacheMaxAge(t *testing.T) { assert := assert.New(t) c := elton.NewContext(nil, nil) assert.Equal(0, getHTTPCacheMaxAge(c)) age := 10 setHTTPCacheMaxAge(c, age) assert.Equal(10, getHTTPCacheMaxAge(c)) } func TestServer(t *testing.T) { assert := assert.New(t) locations := []string{ "location-test", } cache := "cache-test" compress := "compress-test" filter := regexp.MustCompile(`text`) s := NewServer(ServerOption{ Locations: locations, Cache: cache, Compress: compress, CompressContentTypeFilter: filter, }) defer s.Close() assert.Equal(cache, s.GetCache()) assert.Equal(locations, s.GetLocations()) compressSrv, compressMinLength, compressContentTypeFilter := s.GetCompress() assert.Equal(compress, compressSrv) assert.Equal(defaultCompressMinLength, compressMinLength) assert.Equal(filter, compressContentTypeFilter) err := s.Start(true) assert.True(s.listening) assert.Nil(err) assert.NotEmpty(s.GetListenAddr()) minLength := 101 s.Update(ServerOption{ CompressMinLength: minLength, }) _, compressMinLength, _ = s.GetCompress() assert.Equal(minLength, compressMinLength) } func TestServers(t *testing.T) { assert := assert.New(t) locations := []string{ "location-test", } cache := "cache-test" compress := "compress-test" filter := regexp.MustCompile(`text`) ss := NewServers([]ServerOption{ { Locations: locations, Cache: cache, Compress: compress, CompressContentTypeFilter: filter, }, }) err := ss.Start() assert.Nil(err) defer ss.Close() s := ss.Get("") assert.NotNil(s) compresName, _, _ := s.GetCompress() assert.Equal(compress, compresName) newCompress := "compress-new" ss.Reset([]ServerOption{ { Locations: locations, Cache: cache, Compress: newCompress, CompressContentTypeFilter: filter, }, }) compresName, _, _ = s.GetCompress() assert.Equal(newCompress, compresName) } func TestConvertConfig(t *testing.T) { assert := assert.New(t) addr := ":3015" locations := []string{ "location-test", } cache := "cache-test" compress := "compress-test" minLength := 1000 filter := `text|json` configs := []config.ServerConfig{ { Addr: addr, Locations: locations, Cache: cache, Compress: compress, CompressMinLength: "1kb", CompressContentTypeFilter: filter, }, } opts := convertConfig(configs) assert.Equal(1, len(opts)) assert.Equal(addr, opts[0].Addr) assert.Equal(locations, opts[0].Locations) assert.Equal(cache, opts[0].Cache) assert.Equal(compress, opts[0].Compress) assert.Equal(minLength, opts[0].CompressMinLength) assert.Equal(filter, opts[0].CompressContentTypeFilter.String()) } func TestDefaultServers(t *testing.T) { assert := assert.New(t) defer func() { _ = Close() }() assert.Nil(Get("")) locations := []string{ "location-test", } cache := "cache-test" compress := "compress-test" Reset([]config.ServerConfig{ { Locations: locations, Cache: cache, Compress: compress, CompressContentTypeFilter: "text", }, }) err := Start() assert.Nil(err) s := Get("") assert.NotNil(s) } ================================================ FILE: store/badger.go ================================================ // MIT License // Copyright (c) 2021 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package store import ( "fmt" "strings" "time" badger "github.com/dgraph-io/badger/v3" badgerOptions "github.com/dgraph-io/badger/v3/options" "github.com/vicanso/pike/log" "go.uber.org/zap" ) type badgerStore struct { db *badger.DB } type badgerLogger struct{} func (bl *badgerLogger) Errorf(format string, args ...interface{}) { msg := strings.TrimSpace(fmt.Sprintf(format, args...)) log.Default().Error(msg, zap.String("category", "badger"), ) } func (bl *badgerLogger) Warningf(format string, args ...interface{}) { msg := strings.TrimSpace(fmt.Sprintf(format, args...)) log.Default().Warn(msg, zap.String("category", "badger"), ) } func (bl *badgerLogger) Infof(format string, args ...interface{}) { msg := strings.TrimSpace(fmt.Sprintf(format, args...)) log.Default().Info(msg, zap.String("category", "badger"), ) } func (bl *badgerLogger) Debugf(format string, args ...interface{}) { msg := strings.TrimSpace(fmt.Sprintf(format, args...)) log.Default().Debug(msg, zap.String("category", "badger"), ) } // newBadgerStore create a new badger store func newBadgerStore(path string) (Store, error) { options := badger.DefaultOptions(path) // 为了更高的性能,数据不压缩 options.Compression = badgerOptions.None options.Logger = &badgerLogger{} db, err := badger.Open(options) if err != nil { return nil, err } return &badgerStore{ db: db, }, nil } // Get get data from badger func (bs *badgerStore) Get(key []byte) (data []byte, err error) { err = bs.db.View(func(txn *badger.Txn) error { item, err := txn.Get(key) if err != nil { if err == badger.ErrKeyNotFound { err = ErrNotFound } return err } return item.Value(func(val []byte) error { data = append([]byte{}, val...) return nil }) }) if err != nil { return } return } // Set set data to badger func (bs *badgerStore) Set(key []byte, data []byte, ttl time.Duration) (err error) { return bs.db.Update(func(txn *badger.Txn) error { e := badger.NewEntry(key, data). WithTTL(ttl) return txn.SetEntry(e) }) } // Delete delete data from badger func (bs *badgerStore) Delete(key []byte) (err error) { return bs.db.Update(func(txn *badger.Txn) error { return txn.Delete(key) }) } // Close close badger func (bs *badgerStore) Close() error { return bs.db.Close() } ================================================ FILE: store/badger_test.go ================================================ // MIT License // Copyright (c) 2021 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package store import ( "os" "testing" "time" "github.com/stretchr/testify/assert" ) func TestBadgerStore(t *testing.T) { assert := assert.New(t) badgerStore, err := newBadgerStore(os.TempDir()) assert.Nil(err) defer badgerStore.Close() key := []byte("key") value := []byte("value") _, err = badgerStore.Get(key) assert.Equal(ErrNotFound, err) err = badgerStore.Set(key, value, time.Second) assert.Nil(err) data, err := badgerStore.Get(key) assert.Nil(err) assert.Equal(value, data) err = badgerStore.Delete(key) assert.Nil(err) } ================================================ FILE: store/mongo.go ================================================ // MIT License // Copyright (c) 2021 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package store import ( "context" "net/url" "strings" "time" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" ) const defaultMongoCacheColletion = "caches" const defaultMongoDatabase = "pike" type mongoStore struct { client *mongo.Client db string timeout time.Duration } type mongoCache struct { Key string `json:"key,omitempty" bson:"key,omitempty" ` Data []byte `json:"data,omitempty" bson:"data,omitempty"` ExpiredAt time.Time `json:"expiredAt,omitempty" bson:"expiredAt,omitempty"` } func fillMongoStoreOptions(connectionURI string, ms *mongoStore) { ms.db = defaultMongoDatabase ms.timeout = 3 * time.Second urlInfo, _ := url.Parse(connectionURI) if urlInfo == nil { return } arr := strings.Split(urlInfo.Path, "/") if len(arr) >= 2 { ms.db = arr[1] } // 设置的超时,如 3s timeout, _ := time.ParseDuration(urlInfo.Query().Get("timeout")) if timeout != 0 { ms.timeout = timeout } } func newMongoStore(connectionURI string) (store Store, err error) { clientOptions := options.Client().ApplyURI(connectionURI) ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() client, err := mongo.Connect(ctx, clientOptions) if err != nil { return } ms := &mongoStore{ client: client, } fillMongoStoreOptions(connectionURI, ms) err = client.Ping(ctx, nil) if err != nil { return } // 创建索引 expireAfterSeconds := int32(0) background := true unique := true _, err = ms.collection().Indexes().CreateMany(context.TODO(), []mongo.IndexModel{ // key索引 { Keys: bson.M{ "key": 1, }, Options: &options.IndexOptions{ Unique: &unique, Background: &background, }, }, // 数据自助过期索引 { Keys: bson.M{ "expiredAt": 1, }, Options: &options.IndexOptions{ Background: &background, ExpireAfterSeconds: &expireAfterSeconds, }, }, }) if err != nil { return } store = ms return } func (ms *mongoStore) collection() *mongo.Collection { return ms.client.Database(ms.db).Collection(defaultMongoCacheColletion) } // Get gets data from mongo func (ms *mongoStore) Get(key []byte) (data []byte, err error) { ctx, cancel := context.WithTimeout(context.Background(), ms.timeout) defer cancel() result := mongoCache{} err = ms.collection().FindOne(ctx, &mongoCache{ Key: string(key), }).Decode(&result) if err != nil { if err == mongo.ErrNoDocuments { err = ErrNotFound } return } data = result.Data return } // Set sets data to mongo func (ms *mongoStore) Set(key []byte, data []byte, ttl time.Duration) (err error) { ctx, cancel := context.WithTimeout(context.Background(), ms.timeout) defer cancel() upsert := true _, err = ms.collection().UpdateOne(ctx, &mongoCache{ Key: string(key), }, bson.M{ "$set": &mongoCache{ Key: string(key), Data: data, ExpiredAt: time.Now().Add(ttl), }, }, &options.UpdateOptions{ Upsert: &upsert, }) if err != nil { return } return } // Delete deletes data from mongo func (ms *mongoStore) Delete(key []byte) (err error) { ctx, cancel := context.WithTimeout(context.Background(), ms.timeout) defer cancel() _, err = ms.collection().DeleteOne(ctx, &mongoCache{ Key: string(key), }) if err != nil { return } return } // Close closes mongo func (ms *mongoStore) Close() error { return ms.client.Disconnect(context.TODO()) } ================================================ FILE: store/mongo_test.go ================================================ // MIT License // Copyright (c) 2021 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package store import ( "testing" "time" "github.com/stretchr/testify/assert" ) func TestFillMongoStoreOptions(t *testing.T) { assert := assert.New(t) ms := &mongoStore{} fillMongoStoreOptions("", ms) assert.Equal(defaultMongoDatabase, ms.db) assert.Equal(3*time.Second, ms.timeout) ms = &mongoStore{} fillMongoStoreOptions("mongodb://localhost:27017", ms) assert.Equal(defaultMongoDatabase, ms.db) assert.Equal(3*time.Second, ms.timeout) ms = &mongoStore{} fillMongoStoreOptions("mongodb://localhost:27017/abc?timeout=5s", ms) assert.Equal("abc", ms.db) assert.Equal(5*time.Second, ms.timeout) } func TestNewMongoStore(t *testing.T) { assert := assert.New(t) store, err := newMongoStore("mongodb://localhost:27017/pike") assert.Nil(err) key := []byte("key") value := []byte("value") _, err = store.Get(key) assert.Equal(ErrNotFound, err) err = store.Set(key, value, time.Second) assert.Nil(err) data, err := store.Get(key) assert.Nil(err) assert.Equal(value, data) err = store.Delete(key) assert.Nil(err) store.Close() } ================================================ FILE: store/redis.go ================================================ // MIT License // Copyright (c) 2021 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package store import ( "context" "fmt" "net/url" "strconv" "strings" "time" "github.com/go-redis/redis/v8" "github.com/vicanso/pike/log" "go.uber.org/zap" ) type redisStore struct { client redis.UniversalClient // timeout 超时设置 timeout time.Duration // prefix key的前缀 prefix string } type redisLogger struct{} func (rl *redisLogger) Printf(ctx context.Context, format string, v ...interface{}) { log.Default().Info(fmt.Sprintf(format, v...), zap.String("category", "redisLogger"), ) } func init() { redis.SetLogger(&redisLogger{}) } func newRedisStore(connectionURI string) (store Store, err error) { urlInfo, err := url.Parse(connectionURI) if err != nil { return } user := "" password := "" if urlInfo.User != nil { user = urlInfo.User.Username() password, _ = urlInfo.User.Password() } // redis选择的db db, _ := strconv.Atoi(urlInfo.Query().Get("db")) // 设置的超时,如 3s timeout, _ := time.ParseDuration(urlInfo.Query().Get("timeout")) // 保存的key的前缀 prefix := urlInfo.Query().Get("prefix") addrs := strings.Split(urlInfo.Host, ",") master := urlInfo.Query().Get("master") client := redis.NewUniversalClient(&redis.UniversalOptions{ Addrs: addrs, Username: user, Password: password, DB: db, SentinelPassword: password, MasterName: master, }) // 默认3秒超时 if timeout == 0 { timeout = 3 * time.Second } store = &redisStore{ client: client, timeout: timeout, prefix: prefix, } return } func (rs *redisStore) getKey(key []byte) string { return rs.prefix + string(key) } // Get get data from redis func (rs *redisStore) Get(key []byte) (data []byte, err error) { ctx, cancel := context.WithTimeout(context.Background(), rs.timeout) defer cancel() k := rs.getKey(key) cmd := rs.client.Get(ctx, k) data, err = cmd.Bytes() if err != nil { if err == redis.Nil { err = ErrNotFound } return } return } // Set set data to redis func (rs *redisStore) Set(key []byte, data []byte, ttl time.Duration) (err error) { ctx, cancel := context.WithTimeout(context.Background(), rs.timeout) defer cancel() k := rs.getKey(key) cmd := rs.client.Set(ctx, k, data, ttl) return cmd.Err() } // Delete delete date from redis func (rs *redisStore) Delete(key []byte) (err error) { ctx, cancel := context.WithTimeout(context.Background(), rs.timeout) defer cancel() k := rs.getKey(key) cmd := rs.client.Del(ctx, k) return cmd.Err() } // Close close redis func (rs *redisStore) Close() error { return rs.client.Close() } ================================================ FILE: store/redis_test.go ================================================ // MIT License // Copyright (c) 2021 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package store import ( "testing" "time" "github.com/stretchr/testify/assert" ) func TestNewRedisStore(t *testing.T) { assert := assert.New(t) store, err := newRedisStore("redis://user:pwd@127.0.0.1:6379/?db=1&timeout=5s&prefix=test") assert.Nil(err) rs := store.(*redisStore) assert.Equal(5*time.Second, rs.timeout) assert.Equal("test", rs.prefix) store.Close() store, err = newRedisStore("redis://user:pwd@127.0.0.1:6379,127.0.0.1:6380/?master=master") assert.Nil(err) rs = store.(*redisStore) assert.NotNil(rs.client) store.Close() store, err = newRedisStore("redis://127.0.0.1:6379/") assert.Nil(err) key := []byte("key") value := []byte("value") _, err = store.Get(key) assert.Equal(ErrNotFound, err) err = store.Set(key, value, time.Second) assert.Nil(err) data, err := store.Get(key) assert.Nil(err) assert.Equal(value, data) err = store.Delete(key) assert.Nil(err) // 数据过期 err = store.Set(key, value, 10*time.Millisecond) assert.Nil(err) time.Sleep(20 * time.Millisecond) _, err = store.Get(key) assert.Equal(ErrNotFound, err) store.Close() } ================================================ FILE: store/store.go ================================================ // MIT License // Copyright (c) 2021 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package store import ( "errors" "net/url" "sync" "time" "github.com/vicanso/hes" "github.com/vicanso/pike/log" "go.uber.org/zap" ) type Store interface { // Get get data from store Get(key []byte) (data []byte, err error) // Set set data from store Set(key []byte, data []byte, ttl time.Duration) (err error) // Delete delete data from store Delete(key []byte) (err error) // Close close the store Close() error } var ErrNotFound = errors.New("Not found") var stores = sync.Map{} var newStoreLock = sync.Mutex{} // NewStore create a new store func NewStore(storeURL string) (store Store, err error) { // 保证new store只允许一个实例操作 newStoreLock.Lock() defer newStoreLock.Unlock() // 如果该store已存在,直接返回 store = GetStore(storeURL) if store != nil { return } // 初始化新的store urlInfo, err := url.Parse(storeURL) if err != nil { return } switch urlInfo.Scheme { case "badger": store, err = newBadgerStore(urlInfo.Path) if err != nil { return } case "redis": store, err = newRedisStore(storeURL) if err != nil { return } case "mongodb": store, err = newMongoStore(storeURL) if err != nil { return } } // 保存store if store != nil { stores.Store(storeURL, store) } return } // GetStore get store func GetStore(storeURL string) Store { value, ok := stores.Load(storeURL) if !ok { return nil } s, ok := value.(Store) if !ok { return nil } return s } // Close close stores func Close() error { he := &hes.Error{ Message: "close stores fail", } stores.Range(func(_ interface{}, value interface{}) bool { err := value.(Store).Close() if err != nil { he.Add(err) } return true }) if he.IsNotEmpty() { // 由于close是在程序退出时调用,因此如果失败,则先输出出错日志再返回出错 log.Default().Error("close stores fail", zap.Error(he), ) return he } return nil } ================================================ FILE: store/store_test.go ================================================ // MIT License // Copyright (c) 2021 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package store import ( "testing" "github.com/stretchr/testify/assert" ) func TestNewStrore(t *testing.T) { assert := assert.New(t) url := "badger:///tmp" store, err := NewStore(url) assert.Nil(err) assert.NotNil(store) defer store.Close() newStore, err := NewStore(url) assert.Nil(err) assert.Equal(store, newStore) assert.Equal(store, GetStore(url)) } ================================================ FILE: test/main.go ================================================ package main import ( "bytes" "io/ioutil" "net/http" "time" "github.com/vicanso/elton" "golang.org/x/net/http2" "golang.org/x/net/http2/h2c" ) func httpGet(url string) (data []byte, err error) { res, err := http.Get(url) if err != nil { return } defer res.Body.Close() data, err = ioutil.ReadAll(res.Body) if err != nil { return } return } func main() { e := elton.New() e.GET("/repos", func(c *elton.Context) (err error) { buf, err := httpGet("https://api.github.com/users/vicanso/repos") if err != nil { return } c.SetContentTypeByExt(".json") c.CacheMaxAge(5 * time.Minute) c.BodyBuffer = bytes.NewBuffer(buf) return }) e.GET("/ping", func(c *elton.Context) (err error) { c.BodyBuffer = bytes.NewBufferString("pong") return }) // http1与http2均支持 e.Server = &http.Server{ Handler: h2c.NewHandler(e, &http2.Server{}), } err := e.ListenAndServe(":3001") if err != nil { panic(err) } } ================================================ FILE: upstream/upstream.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. // Upstream相关处理函数,根据策略选择适当的upstream server package upstream import ( "crypto/tls" "net" "net/http" "net/url" "sync" "time" "github.com/vicanso/elton" "github.com/vicanso/elton/middleware" "github.com/vicanso/hes" "github.com/vicanso/pike/config" "github.com/vicanso/pike/log" "github.com/vicanso/pike/util" us "github.com/vicanso/upstream" "go.uber.org/zap" "golang.org/x/net/http2" ) type ( UpstreamServerConfig struct { // 服务地址,如 http://127.0.0.1:8080 Addr string // 是否备用 Backup bool } UpstreamServerStatus struct { Addr string Healthy bool } UpstreamServerOption struct { Name string HealthCheck string Policy string // 是否启用h2c(http/2 over tcp) EnableH2C bool // 设置可接受的编码 AcceptEncoding string // OnStatus on status OnStatus OnStatus Servers []UpstreamServerConfig } upstreamServer struct { servers []UpstreamServerConfig Proxy elton.Handler HTTPUpstream *us.HTTP Option *UpstreamServerOption } upstreamServers struct { m *sync.Map } StatusInfo struct { Name string URL string Status string } // OnStatus on status listener OnStatus func(StatusInfo) ) var defaultUpstreamServers = NewUpstreamServers(nil) var ( ErrUpstreamNotFound = &hes.Error{ StatusCode: http.StatusServiceUnavailable, Message: "Available Upstream Not Found", } ) // newTransport new a transport for http func newTransport(h2c bool) http.RoundTripper { if h2c { return &http2.Transport{ // 允许使用http的方式 AllowHTTP: true, // tls的dial覆盖 DialTLS: func(network, addr string, cfg *tls.Config) (net.Conn, error) { return net.Dial(network, addr) }, } } return &http.Transport{ // TODO 暂时不配置proxy,后续再确认是否需要 // Proxy: http.ProxyFromEnvironment, DialContext: (&net.Dialer{ Timeout: 30 * time.Second, KeepAlive: 30 * time.Second, DualStack: true, }).DialContext, ForceAttemptHTTP2: true, MaxIdleConns: 500, // 调整默认的每个host的最大连接因为缓存服务与backend可能会突发性的大量调用 MaxIdleConnsPerHost: 50, IdleConnTimeout: 90 * time.Second, TLSHandshakeTimeout: 10 * time.Second, ExpectContinueTimeout: 1 * time.Second, } } // newTargetPicker create a target pick function func newTargetPicker(uh *us.HTTP) middleware.ProxyTargetPicker { return func(c *elton.Context) (*url.URL, middleware.ProxyDone, error) { httpUpstream, done := uh.Next() if httpUpstream == nil { return nil, nil, ErrUpstreamNotFound } var proxyDone middleware.ProxyDone // 返回了done(如最少连接数的策略) if done != nil { proxyDone = func(_ *elton.Context) { done() } } return httpUpstream.URL, proxyDone, nil } } // newProxyMid new a proxy middleware func newProxyMid(opt UpstreamServerOption, uh *us.HTTP) elton.Handler { return middleware.NewProxy(middleware.ProxyConfig{ Transport: newTransport(opt.EnableH2C), TargetPicker: newTargetPicker(uh), }) } // NewUpstreamServer new an upstream server func NewUpstreamServer(opt UpstreamServerOption) *upstreamServer { uh := &us.HTTP{ Policy: opt.Policy, Ping: opt.HealthCheck, } for _, server := range opt.Servers { // 添加失败的则忽略(地址配置有误则会添加失败) if server.Backup { _ = uh.AddBackup(server.Addr) } else { _ = uh.Add(server.Addr) } } // 如果有添加on status事件 if opt.OnStatus != nil { uh.OnStatus(func(status int32, upstream *us.HTTPUpstream) { opt.OnStatus(StatusInfo{ Name: opt.Name, URL: upstream.URL.String(), Status: us.ConvertStatusToString(status), }) }) } // 先执行一次health check,获取当前可用服务列表 uh.DoHealthCheck() // 后续需要定时检测upstream是否可用 go uh.StartHealthCheck() return &upstreamServer{ servers: opt.Servers, HTTPUpstream: uh, Option: &opt, Proxy: newProxyMid(opt, uh), } } // NewUpstreamServers new upstream servers func NewUpstreamServers(opts []UpstreamServerOption) *upstreamServers { m := &sync.Map{} for _, opt := range opts { m.Store(opt.Name, NewUpstreamServer(opt)) } return &upstreamServers{ m: m, } } // Reset reset the upstream servers, remove not exists upstream servers and create new upstream server. If the upstream server is exists, then destroy the old one and add the new one. func (us *upstreamServers) Reset(opts []UpstreamServerOption) { servers := util.MapDelete(us.m, func(key string) bool { // 如果不存在的,则删除 exists := false for _, opt := range opts { if opt.Name == key { exists = true break } } return !exists }) for _, item := range servers { server, _ := item.(*upstreamServer) if server != nil { server.Destroy() } } for _, opt := range opts { server := NewUpstreamServer(opt) currentServer := us.Get(opt.Name) // 先添加再删除 us.m.Store(opt.Name, server) // 判断原来是否已存在此upstream server // 如果存在,则删除 if currentServer != nil { currentServer.Destroy() } } } // Get get upstream server by name func (us *upstreamServers) Get(name string) *upstreamServer { value, ok := us.m.Load(name) if !ok { return nil } server, ok := value.(*upstreamServer) if !ok { return nil } return server } // Destroy destory the upstream server func (u *upstreamServer) Destroy() { // 停止定时检测 u.HTTPUpstream.StopHealthCheck() } // GetServerStatusList get sever status list func (u *upstreamServer) GetServerStatusList() []UpstreamServerStatus { statusList := make([]UpstreamServerStatus, 0) availableServers := u.HTTPUpstream.GetAvailableUpstreamList() for _, item := range u.servers { healthy := false for _, availableServer := range availableServers { if availableServer.URL.String() == item.Addr { healthy = true } } statusList = append(statusList, UpstreamServerStatus{ Addr: item.Addr, Healthy: healthy, }) } return statusList } // Get get upstream server by name func Get(name string) *upstreamServer { return defaultUpstreamServers.Get(name) } func onStatus(si StatusInfo) { log.Default().Info("upstream status change", zap.String("name", si.Name), zap.String("status", si.Status), zap.String("addr", si.URL), ) } func convertConfigs(configs []config.UpstreamConfig, fn OnStatus) []UpstreamServerOption { opts := make([]UpstreamServerOption, 0) for _, item := range configs { servers := make([]UpstreamServerConfig, 0) for _, server := range item.Servers { servers = append(servers, UpstreamServerConfig{ Addr: server.Addr, Backup: server.Backup, }) } opts = append(opts, UpstreamServerOption{ Name: item.Name, HealthCheck: item.HealthCheck, Policy: item.Policy, EnableH2C: item.EnableH2C, AcceptEncoding: item.AcceptEncoding, Servers: servers, OnStatus: fn, }) } return opts } // Reset reset the upstream server func Reset(configs []config.UpstreamConfig) { ResetWithOnStats(configs, onStatus) } // ResetWithOnStats reset with on stats func ResetWithOnStats(configs []config.UpstreamConfig, fn OnStatus) { defaultUpstreamServers.Reset(convertConfigs(configs, fn)) } ================================================ FILE: upstream/upstream_test.go ================================================ package upstream import ( "net/http" "testing" "github.com/stretchr/testify/assert" "github.com/vicanso/elton" "github.com/vicanso/pike/config" us "github.com/vicanso/upstream" "golang.org/x/net/http2" ) func TestNewTransport(t *testing.T) { assert := assert.New(t) transport := newTransport(true) h2Transport, ok := transport.(*http2.Transport) assert.True(ok) assert.True(h2Transport.AllowHTTP) transport = newTransport(false) hTransport, ok := transport.(*http.Transport) assert.True(ok) assert.True(hTransport.ForceAttemptHTTP2) } func TestNewTargetPicker(t *testing.T) { assert := assert.New(t) uh := &us.HTTP{ Policy: us.PolicyLeastconn, } err := uh.Add("http://127.0.0.1:3000") assert.Nil(err) for _, up := range uh.GetUpstreamList() { up.Healthy() } fn := newTargetPicker(uh) c := elton.NewContext(nil, nil) url, done, err := fn(c) assert.Nil(err) assert.NotNil(done) assert.Equal("http://127.0.0.1:3000", url.String()) done(c) } func TestUpstreamServer(t *testing.T) { assert := assert.New(t) addr := "https://www.bing.com/" server := NewUpstreamServer(UpstreamServerOption{ Policy: us.PolicyLeastconn, Name: "bing", HealthCheck: "/", Servers: []UpstreamServerConfig{ { Addr: addr, }, { Addr: "https://bing.com/", Backup: true, }, }, OnStatus: func(info StatusInfo) { assert.Equal("healthy", info.Status) }, }) up, done := server.HTTPUpstream.Next() assert.NotNil(up) assert.False(up.Backup) assert.Equal(addr, up.URL.String()) assert.NotNil(done) statusList := server.GetServerStatusList() assert.Equal(len(server.servers), len(statusList)) server.Destroy() } func TestUpstreamServers(t *testing.T) { assert := assert.New(t) baidu := "baidu" servers := NewUpstreamServers([]UpstreamServerOption{ { Name: baidu, HealthCheck: "/", Servers: []UpstreamServerConfig{ { Addr: "https://www.baidu.com", }, }, }, }) baiduServer := servers.Get(baidu) assert.NotNil(baiduServer) assert.Equal(baidu, baiduServer.Option.Name) bing := "bing" servers.Reset([]UpstreamServerOption{ { Name: bing, HealthCheck: "/", Servers: []UpstreamServerConfig{ { Addr: "https://www.bing.com/", }, }, }, }) assert.Nil(servers.Get(baidu)) bingServer := servers.Get(bing) assert.NotNil(bingServer) assert.Equal(bing, bingServer.Option.Name) } func TestConvertConfig(t *testing.T) { assert := assert.New(t) name := "upstream-test" healthCheck := "/ping" policy := "first" enableH2C := true acceptEncoding := "gzip, br" addr := "http://127.0.0.1:3015" backup := true configs := []config.UpstreamConfig{ { Name: name, HealthCheck: healthCheck, Policy: policy, EnableH2C: enableH2C, AcceptEncoding: acceptEncoding, Servers: []config.UpstreamServerConfig{ { Addr: addr, Backup: backup, }, }, }, } opts := convertConfigs(configs, nil) assert.Equal(1, len(opts)) assert.Equal(name, opts[0].Name) assert.Equal(healthCheck, opts[0].HealthCheck) assert.Equal(policy, opts[0].Policy) assert.Equal(enableH2C, opts[0].EnableH2C) assert.Equal(acceptEncoding, opts[0].AcceptEncoding) assert.Equal(1, len(opts[0].Servers)) assert.Equal(addr, opts[0].Servers[0].Addr) assert.True(opts[0].Servers[0].Backup) } func TestDefaultUpstreamServers(t *testing.T) { bing := "bing" assert := assert.New(t) Reset([]config.UpstreamConfig{ { Name: bing, HealthCheck: "/", Servers: []config.UpstreamServerConfig{ { Addr: "https://www.bing.com/", }, }, }, }) bingServer := Get(bing) assert.NotNil(bingServer) assert.Equal(bing, bingServer.Option.Name) } ================================================ FILE: util/util.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package util import ( "sync" "github.com/vicanso/hes" ) const errCategory = "pike" type DeleteMatch func(string) bool // MapDelete delete item form sync map func MapDelete(m *sync.Map, match DeleteMatch) []interface{} { result := make([]interface{}, 0) // m.Range中是先复制了仅读,因此可以直接在此处删除 m.Range(func(k, _ interface{}) bool { key, ok := k.(string) if !ok { return true } // 如果不匹配,则不需要删除 if !match(key) { return true } value, loaded := m.LoadAndDelete(key) if loaded { result = append(result, value) } return true }) return result } // NewError create a new http error func NewError(message string, statusCode int) error { return &hes.Error{ Message: message, StatusCode: statusCode, Category: errCategory, } } ================================================ FILE: util/util_test.go ================================================ // MIT License // Copyright (c) 2020 Tree Xie // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. package util import ( "sync" "testing" "github.com/stretchr/testify/assert" "github.com/vicanso/hes" ) func TestMapDelete(t *testing.T) { assert := assert.New(t) m := &sync.Map{} m.Store("a", "1") m.Store("b", "2") result := MapDelete(m, func(key string) bool { return key == "a" }) assert.Equal(1, len(result)) _, ok := m.Load("a") assert.False(ok) value, ok := m.Load("b") assert.True(ok) assert.Equal("2", value) } func TestNewError(t *testing.T) { assert := assert.New(t) message := "error" statusCode := 400 err := NewError(message, statusCode) assert.NotNil(err) he, ok := err.(*hes.Error) assert.True(ok) assert.Equal(statusCode, he.StatusCode) assert.Equal(message, he.Message) assert.Equal(errCategory, he.Category) } ================================================ FILE: web/assets/AssetManifest.json ================================================ {"images/logo.png":["images/logo.png"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"],"packages/fluttertoast/assets/toastify.css":["packages/fluttertoast/assets/toastify.css"],"packages/fluttertoast/assets/toastify.js":["packages/fluttertoast/assets/toastify.js"]} ================================================ FILE: web/assets/FontManifest.json ================================================ [{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]}] ================================================ FILE: web/assets/NOTICES ================================================ StackWalker Copyright (c) 2005-2009, Jochen Kalmbach All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of Jochen Kalmbach nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- StackWalker Copyright (c) 2005-2013, Jochen Kalmbach All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of Jochen Kalmbach nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- abseil-cpp Apache License Version 2.0, January 2004 https://www.apache.org/licenses TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -------------------------------------------------------------------------------- abseil-cpp accessibility skia Copyright 2020 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- abseil-cpp angle boringssl etc1 khronos txt vulkan vulkan-deps wuffs Apache License Version 2.0, January 2004 http://www.apache.org/licenses TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -------------------------------------------------------------------------------- accessibility Copyright (c) 2009 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- accessibility Copyright (c) 2010 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- accessibility Copyright (c) 2014 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- accessibility angle Copyright (c) 2013 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- accessibility base Copyright 2013 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- accessibility base fuchsia_sdk skia zlib Copyright 2018 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- accessibility base icu zlib Copyright 2014 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- accessibility base zlib Copyright (c) 2011 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- accessibility engine gpu tonic txt Copyright 2013 The Flutter Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- accessibility fuchsia_sdk skia zlib Copyright 2019 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- accessibility icu skia Copyright 2015 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- accessibility icu skia Copyright 2016 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- accessibility zlib Copyright (c) 2012 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- accessibility zlib Copyright 2017 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle Copyright (C) 2009 Apple Inc. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle Copyright (C) 2012 Apple Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY APPLE, INC. ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE, INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle Copyright (c) 2008 NVIDIA, Corporation Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- angle Copyright (c) 2008-2018 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials. THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -------------------------------------------------------------------------------- angle Copyright (c) 2010 NVIDIA, Corporation Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- angle Copyright 2002 The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle Copyright 2010 The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle Copyright 2011 The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle Copyright 2012 The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle Copyright 2013 The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle Copyright 2014 The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle Copyright 2015 The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle Copyright 2018 The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle Copyright 2018 The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle Copyright 2019 The ANGLE Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle Copyright 2020 The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle Copyright 2020 The ANGLE Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle Copyright 2021 The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle Copyright The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle base Copyright 2016 The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle base Copyright 2017 The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle fuchsia_sdk Copyright 2019 The Fuchsia Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle fuchsia_sdk rapidjson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- angle fuchsia_sdk skia Copyright 2021 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- angle khronos Copyright (c) 2013-2014 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials. THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -------------------------------------------------------------------------------- angle khronos Copyright (c) 2013-2017 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials. THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -------------------------------------------------------------------------------- angle khronos Copyright (c) 2013-2018 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials. THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -------------------------------------------------------------------------------- angle xxhash Copyright 2019 The ANGLE Project Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc. Ltd., nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- async Copyright 2015, the Dart project authors. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google LLC nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- bloc flutter_bloc The MIT License (MIT) Copyright (c) 2018 Felix Angelov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- boolean_selector meta Copyright 2016, the Dart project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) All rights reserved. This package is an SSL implementation written by Eric Young (eay@cryptsoft.com). The implementation was written so as to conform with Netscapes SSL. This library is free for commercial and non-commercial use as long as the following conditions are aheared to. The following conditions apply to all code found in this distribution, be it the RC4, RSA, lhash, DES, etc., code; not just the SSL code. The SSL documentation included with this distribution is covered by the same copyright terms except that the holder is Tim Hudson (tjh@cryptsoft.com). Copyright remains Eric Young's, and as such any Copyright notices in the code are not to be removed. If this package is used in a product, Eric Young should be given attribution as the author of the parts of the library used. This can be in the form of a textual message at program startup or in documentation (online or textual) provided with the package. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: "This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)" The word 'cryptographic' can be left out if the rouines from the library being used are not cryptographic related :-). 4. If you include any Windows specific code (or a derivative thereof) from the apps directory (application code) you must include an acknowledgement: "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The licence and distribution terms for any publically available version or derivative of this code cannot be changed. i.e. this code cannot simply be copied and put under another distribution licence [including the GNU Public Licence.] -------------------------------------------------------------------------------- boringssl Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) All rights reserved. This package is an SSL implementation written by Eric Young (eay@cryptsoft.com). The implementation was written so as to conform with Netscapes SSL. This library is free for commercial and non-commercial use as long as the following conditions are aheared to. The following conditions apply to all code found in this distribution, be it the RC4, RSA, lhash, DES, etc., code; not just the SSL code. The SSL documentation included with this distribution is covered by the same copyright terms except that the holder is Tim Hudson (tjh@cryptsoft.com). Copyright remains Eric Young's, and as such any Copyright notices in the code are not to be removed. If this package is used in a product, Eric Young should be given attribution as the author of the parts of the library used. This can be in the form of a textual message at program startup or in documentation (online or textual) provided with the package. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: "This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)" The word 'cryptographic' can be left out if the rouines from the library being used are not cryptographic related :-). 4. If you include any Windows specific code (or a derivative thereof) from the apps directory (application code) you must include an acknowledgement: "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The licence and distribution terms for any publically available version or derivative of this code cannot be changed. i.e. this code cannot simply be copied and put under another distribution licence [including the GNU Public Licence.] -------------------------------------------------------------------------------- boringssl Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 1998-2003 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 1998-2004 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 1999 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 1999-2003 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 1999-2007 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 1999-2008 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2000 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2000-2003 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2000-2005 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2001 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2001-2011 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2002-2006 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2003 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2004 Kungliga Tekniska Högskolan (Royal Institute of Technology, Stockholm, Sweden). All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the Institute nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2004 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2005 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2006 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2006,2007 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2008 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2010 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2011 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2011 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2012 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2013 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2014 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: "This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)" The word 'cryptographic' can be left out if the rouines from the library being used are not cryptographic related :-). 4. If you include any Windows specific code (or a derivative thereof) from the apps directory (application code) you must include an acknowledgement: "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The licence and distribution terms for any publically available version or derivative of this code cannot be changed. i.e. this code cannot simply be copied and put under another distribution licence [including the GNU Public Licence.] -------------------------------------------------------------------------------- boringssl Copyright (c) 2014, Google Inc. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2015 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2015, Google Inc. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2016, Google Inc. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2017, Google Inc. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2017, the HRSS authors. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2018, Google Inc. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2019, Google Inc. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2020 Google Inc. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- boringssl Copyright (c) 2020, Google Inc. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- boringssl Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- boringssl Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- boringssl Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact licensing@OpenSSL.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright 2005 Nokia. All rights reserved. The portions of the attached software ("Contribution") is developed by Nokia Corporation and is licensed pursuant to the OpenSSL open source license. The Contribution, originally written by Mika Kousa and Pasi Eronen of Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites support (see RFC 4279) to OpenSSL. No patent licenses or other rights except those expressly stated in the OpenSSL open source license shall be deemed granted or received expressly, by implication, estoppel, or otherwise. No assurances are provided by Nokia that the Contribution does not infringe the patent or other intellectual property rights of any third party or that the license provides you with all the necessary rights to make use of the Contribution. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR OTHERWISE. -------------------------------------------------------------------------------- boringssl Copyright 2005, Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright 2006, Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright 2006-2017 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- boringssl Copyright 2007, Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- boringssl Copyright 2008 Google Inc. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright 2008, Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright 2009 Google Inc. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright 2009, Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- boringssl Copyright 2013-2016 The OpenSSL Project Authors. All Rights Reserved. Copyright (c) 2012, Intel Corporation. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- boringssl Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- boringssl Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. Copyright (c) 2014, Intel Corporation. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- boringssl Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved. Copyright (c) 2015, Intel Inc. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- boringssl Copyright 2015, Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- boringssl Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- boringssl Copyright 2016 Brian Smith. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- boringssl Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. Licensed under the OpenSSL license (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html -------------------------------------------------------------------------------- boringssl The MIT License (MIT) Copyright (c) 2015-2016 the fiat-crypto authors (see https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS). Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- boringssl dart OpenSSL License ==================================================================== Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org. 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================== This product includes cryptographic software written by Eric Young (eay@cryptsoft.com). This product includes software written by Tim Hudson (tjh@cryptsoft.com). Original SSLeay License * Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * This package is an SSL implementation written * by Eric Young (eay@cryptsoft.com). * The implementation was written so as to conform with Netscapes SSL. * This library is free for commercial and non-commercial use as long as * the following conditions are aheared to. The following conditions * apply to all code found in this distribution, be it the RC4, RSA, * lhash, DES, etc., code; not just the SSL code. The SSL documentation * included with this distribution is covered by the same copyright terms * except that the holder is Tim Hudson (tjh@cryptsoft.com). * Copyright remains Eric Young's, and as such any Copyright notices in * the code are not to be removed. * If this package is used in a product, Eric Young should be given attribution * as the author of the parts of the library used. * This can be in the form of a textual message at program startup or * in documentation (online or textual) provided with the package. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * "This product includes cryptographic software written by * Eric Young (eay@cryptsoft.com)" * The word 'cryptographic' can be left out if the rouines from the library * being used are not cryptographic related :-). * 4. If you include any Windows specific code (or a derivative thereof) from * the apps directory (application code) you must include an acknowledgement: * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * The licence and distribution terms for any publically available version or * derivative of this code cannot be changed. i.e. this code cannot simply be * copied and put under another distribution licence * [including the GNU Public Licence.] ISC license used for completely new code in BoringSSL: /* Copyright (c) 2015, Google Inc. * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. The code in third_party/fiat carries the MIT license: Copyright (c) 2015-2016 the fiat-crypto authors (see https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS). Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Licenses for support code Parts of the TLS test suite are under the Go license. This code is not included in BoringSSL (i.e. libcrypto and libssl) when compiled, however, so distributing code linked against BoringSSL does not trigger this license: Copyright (c) 2009 The Go Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- characters ffi Copyright 2019, the Dart project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- charcode http http_parser matcher path source_span stack_trace string_scanner Copyright 2014, the Dart project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- clock fake_async Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -------------------------------------------------------------------------------- collection convert crypto stream_channel typed_data Copyright 2015, the Dart project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- colorama Copyright (c) 2010 Jonathan Hartley All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holders, nor those of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- cupertino_icons The MIT License (MIT) Copyright (c) 2016 Vladimir Kharlampidi Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- dart Copyright (c) 2003-2005 Tom Wu Copyright (c) 2012 Adam Singer (adam@solvr.io) All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. In addition, the following condition applies: All redistributions must retain an intact copy of this copyright notice and disclaimer. -------------------------------------------------------------------------------- dart Copyright (c) 2010, the Dart project authors. Please see the AUTHORS file for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- dart Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- dart Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- dart Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- dart Copyright (c) 2014 The Polymer Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- dart Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- dart Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- dart Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- dart Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- dart Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- dart Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- dart Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- dart Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- dart Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- dart Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- dart Copyright 2009 The Go Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file -------------------------------------------------------------------------------- dart Copyright 2012, the Dart project authors. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- double-conversion icu Copyright 2006-2008 the V8 project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- double-conversion icu Copyright 2010 the V8 project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- double-conversion icu Copyright 2012 the V8 project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- equatable MIT License Copyright (c) 2018 Felix Angelov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- ffx_spd Copyright (c) 2017-2019 Advanced Micro Devices, Inc. All rights reserved. Copyright (c) <2014> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- ffx_spd Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- file Copyright 2017, the Dart project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- files Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- files Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- files Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd and Clark Cooper Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- files Copyright 2000, Clark Cooper All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- fluro The MIT License Copyright 2020 Luke Pighetti Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- flutter Copyright 2014 The Flutter Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- fluttertoast MIT License Copyright (c) 2020 Karthik Ponnam Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- freetype2 Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- freetype2 Copyright (C) 1995-2002 Jean-loup Gailly. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- freetype2 Copyright (C) 1995-2002 Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- freetype2 Copyright (C) 2000, 2001, 2002, 2003, 2006, 2010 by Francesco Zappa Nardelli Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- freetype2 Copyright (C) 2000-2004, 2006-2011, 2013, 2014 by Francesco Zappa Nardelli Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- freetype2 Copyright (C) 2001, 2002 by Francesco Zappa Nardelli Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- freetype2 Copyright (C) 2001, 2002, 2003, 2004 by Francesco Zappa Nardelli Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- freetype2 Copyright (C) 2001-2008, 2011, 2013, 2014 by Francesco Zappa Nardelli Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- freetype2 Copyright 1990, 1994, 1998 The Open Group Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. -------------------------------------------------------------------------------- freetype2 Copyright 2000 Computing Research Labs, New Mexico State University Copyright 2001-2004, 2011 Francesco Zappa Nardelli Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- freetype2 Copyright 2000 Computing Research Labs, New Mexico State University Copyright 2001-2014 Francesco Zappa Nardelli Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- freetype2 Copyright 2000 Computing Research Labs, New Mexico State University Copyright 2001-2015 Francesco Zappa Nardelli Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- freetype2 Copyright 2000, 2001, 2004 by Francesco Zappa Nardelli Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- freetype2 Copyright 2000-2001, 2002 by Francesco Zappa Nardelli Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- freetype2 Copyright 2000-2001, 2003 by Francesco Zappa Nardelli Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- freetype2 Copyright 2000-2010, 2012-2014 by Francesco Zappa Nardelli Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- freetype2 Copyright 2001, 2002, 2012 Francesco Zappa Nardelli Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- freetype2 Copyright 2003 by Francesco Zappa Nardelli Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- freetype2 The FreeType Project LICENSE 2006-Jan-27 Copyright 1996-2002, 2006 by David Turner, Robert Wilhelm, and Werner Lemberg Introduction ============ The FreeType Project is distributed in several archive packages; some of them may contain, in addition to the FreeType font engine, various tools and contributions which rely on, or relate to, the FreeType Project. This license applies to all files found in such packages, and which do not fall under their own explicit license. The license affects thus the FreeType font engine, the test programs, documentation and makefiles, at the very least. This license was inspired by the BSD, Artistic, and IJG (Independent JPEG Group) licenses, which all encourage inclusion and use of free software in commercial and freeware products alike. As a consequence, its main points are that: o We don't promise that this software works. However, we will be interested in any kind of bug reports. (`as is' distribution) o You can use this software for whatever you want, in parts or full form, without having to pay us. (`royalty-free' usage) o You may not pretend that you wrote this software. If you use it, or only parts of it, in a program, you must acknowledge somewhere in your documentation that you have used the FreeType code. (`credits') We specifically permit and encourage the inclusion of this software, with or without modifications, in commercial products. We disclaim all warranties covering The FreeType Project and assume no liability related to The FreeType Project. Finally, many people asked us for a preferred form for a credit/disclaimer to use in compliance with this license. We thus encourage you to use the following text: Portions of this software are copyright © The FreeType Project (www.freetype.org). All rights reserved. Please replace with the value from the FreeType version you actually use. Legal Terms =========== 0. Definitions Throughout this license, the terms `package', `FreeType Project', and `FreeType archive' refer to the set of files originally distributed by the authors (David Turner, Robert Wilhelm, and Werner Lemberg) as the `FreeType Project', be they named as alpha, beta or final release. `You' refers to the licensee, or person using the project, where `using' is a generic term including compiling the project's source code as well as linking it to form a `program' or `executable'. This program is referred to as `a program using the FreeType engine'. This license applies to all files distributed in the original FreeType Project, including all source code, binaries and documentation, unless otherwise stated in the file in its original, unmodified form as distributed in the original archive. If you are unsure whether or not a particular file is covered by this license, you must contact us to verify this. The FreeType Project is copyright (C) 1996-2000 by David Turner, Robert Wilhelm, and Werner Lemberg. All rights reserved except as specified below. 1. No Warranty THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO USE, OF THE FREETYPE PROJECT. 2. Redistribution This license grants a worldwide, royalty-free, perpetual and irrevocable right and license to use, execute, perform, compile, display, copy, create derivative works of, distribute and sublicense the FreeType Project (in both source and object code forms) and derivative works thereof for any purpose; and to authorize others to exercise some or all of the rights granted herein, subject to the following conditions: o Redistribution of source code must retain this license file (`FTL.TXT') unaltered; any additions, deletions or changes to the original files must be clearly indicated in accompanying documentation. The copyright notices of the unaltered, original files must be preserved in all copies of source files. o Redistribution in binary form must provide a disclaimer that states that the software is based in part of the work of the FreeType Team, in the distribution documentation. We also encourage you to put an URL to the FreeType web page in your documentation, though this isn't mandatory. These conditions apply to any software derived from or based on the FreeType Project, not just the unmodified files. If you use our work, you must acknowledge us. However, no fee need be paid to us. 3. Advertising Neither the FreeType authors and contributors nor you shall use the name of the other for commercial, advertising, or promotional purposes without specific prior written permission. We suggest, but do not require, that you use one or more of the following phrases to refer to this software in your documentation or advertising materials: `FreeType Project', `FreeType Engine', `FreeType library', or `FreeType Distribution'. As you have not signed this license, you are not required to accept it. However, as the FreeType Project is copyrighted material, only this license, or another one contracted with the authors, grants you the right to use, distribute, and modify it. Therefore, by using, distributing, or modifying the FreeType Project, you indicate that you understand and accept all the terms of this license. 4. Contacts There are two mailing lists related to FreeType: o freetype@nongnu.org Discusses general use and applications of FreeType, as well as future and wanted additions to the library and distribution. If you are looking for support, start in this list if you haven't found anything to help you in the documentation. o freetype-devel@nongnu.org Discusses bugs, as well as engine internals, design issues, specific licenses, porting, etc. Our home page can be found at https://www.freetype.org --- end of FTL.TXT --- -------------------------------------------------------------------------------- fuchsia_sdk Copyright 2014 The Fuchsia Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- fuchsia_sdk Copyright 2015 The Fuchsia Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- fuchsia_sdk Copyright 2016 The Fuchsia Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- fuchsia_sdk Copyright 2016 The Fuchsia Authors. All rights reserved. Copyright (c) 2009 Corey Tabaka Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- fuchsia_sdk Copyright 2017 The Fuchsia Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- fuchsia_sdk Copyright 2018 The Fuchsia Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- fuchsia_sdk Copyright 2019 The Fuchsia Authors. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- fuchsia_sdk Copyright 2020 The Fuchsia Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- fuchsia_sdk Copyright 2021 The Fuchsia Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- fuchsia_sdk The majority of files in this project use the Apache 2.0 License. There are a few exceptions and their license can be found in the source. Any license deviations from Apache 2.0 are "more permissive" licenses. =========================================================================================== Apache License Version 2.0, January 2004 http://www.apache.org/licenses TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -------------------------------------------------------------------------------- fuchsia_sdk musl as a whole is licensed under the following standard MIT license: Copyright © 2005-2014 Rich Felker, et al. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Authors/contributors include: Alex Dowad Alexander Monakov Anthony G. Basile Arvid Picciani Bobby Bingham Boris Brezillon Brent Cook Chris Spiegel Clément Vasseur Daniel Micay Denys Vlasenko Emil Renner Berthing Felix Fietkau Felix Janda Gianluca Anzolin Hauke Mehrtens Hiltjo Posthuma Isaac Dunham Jaydeep Patil Jens Gustedt Jeremy Huntwork Jo-Philipp Wich Joakim Sindholt John Spencer Josiah Worcester Justin Cormack Khem Raj Kylie McClain Luca Barbato Luka Perkov M Farkas-Dyck (Strake) Mahesh Bodapati Michael Forney Natanael Copa Nicholas J. Kain orc Pascal Cuoq Petr Hosek Pierre Carrier Rich Felker Richard Pennington Shiz sin Solar Designer Stefan Kristiansson Szabolcs Nagy Timo Teräs Trutz Behn Valentin Ochs William Haddon Portions of this software are derived from third-party works licensed under terms compatible with the above MIT license: Much of the math library code (third_party/math/* and third_party/complex/*, and third_party/include/libm.h) is Copyright © 1993,2004 Sun Microsystems or Copyright © 2003-2011 David Schultz or Copyright © 2003-2009 Steven G. Kargl or Copyright © 2003-2009 Bruce D. Evans or Copyright © 2008 Stephen L. Moshier and labelled as such in comments in the individual source files. All have been licensed under extremely permissive terms. The smoothsort implementation (third_party/smoothsort/qsort.c) is Copyright © 2011 Valentin Ochs and is licensed under an MIT-style license. The x86_64 files in third_party/arch were written by Nicholas J. Kain and is licensed under the standard MIT terms. All other files which have no copyright comments are original works produced specifically for use as part of this library, written either by Rich Felker, the main author of the library, or by one or more contibutors listed above. Details on authorship of individual files can be found in the git version control history of the project. The omission of copyright and license comments in each file is in the interest of source tree size. In addition, permission is hereby granted for all public header files (include/* and arch/*/bits/*) and crt files intended to be linked into applications (crt/*, ldso/dlstart.c, and arch/*/crt_arch.h) to omit the copyright notice and permission notice otherwise required by the license, and to use these files without any requirement of attribution. These files include substantial contributions from: Bobby Bingham John Spencer Nicholas J. Kain Rich Felker Richard Pennington Stefan Kristiansson Szabolcs Nagy all of whom have explicitly granted such permission. This file previously contained text expressing a belief that most of the files covered by the above exception were sufficiently trivial not to be subject to copyright, resulting in confusion over whether it negated the permissions granted in the license. In the spirit of permissive licensing, and of not having licensing issues being an obstacle to adoption, that text has been removed. -------------------------------------------------------------------------------- glfw Copyright (c) 2002-2006 Marcus Geelnard Copyright (c) 2006-2016 Camilla Berglund This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- glfw Copyright (c) 2002-2006 Marcus Geelnard Copyright (c) 2006-2016 Camilla Berglund Copyright (c) 2012 Torsten Walluhn This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- glfw Copyright (c) 2006-2016 Camilla Berglund This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- glfw Copyright (c) 2009-2016 Camilla Berglund This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- glfw Copyright (c) 2009-2016 Camilla Berglund Copyright (c) 2012 Torsten Walluhn This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- glfw Copyright (c) 2010-2016 Camilla Berglund This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- glfw Copyright (c) 2014 Jonas Ådahl This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- glfw Copyright (c) 2014-2015 Brandon Schaefer This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- harfbuzz Copyright (C) 2011 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright (C) 2012 Grigori Goronzy Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -------------------------------------------------------------------------------- harfbuzz Copyright (C) 2013 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 1998-2004 David Turner and Werner Lemberg Copyright © 2004,2007,2009 Red Hat, Inc. Copyright © 2011,2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 1998-2004 David Turner and Werner Lemberg Copyright © 2004,2007,2009,2010 Red Hat, Inc. Copyright © 2011,2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 1998-2004 David Turner and Werner Lemberg Copyright © 2006 Behdad Esfahbod Copyright © 2007,2008,2009 Red Hat, Inc. Copyright © 2012,2013 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2007 Chris Wilson Copyright © 2009,2010 Red Hat, Inc. Copyright © 2011,2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2007,2008,2009 Red Hat, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2007,2008,2009 Red Hat, Inc. Copyright © 2010,2011,2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2007,2008,2009 Red Hat, Inc. Copyright © 2010,2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2007,2008,2009 Red Hat, Inc. Copyright © 2011,2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2007,2008,2009 Red Hat, Inc. Copyright © 2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2007,2008,2009 Red Hat, Inc. Copyright © 2012,2013 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2007,2008,2009 Red Hat, Inc. Copyright © 2012,2013 Google, Inc. Copyright © 2019, Facebook Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2007,2008,2009 Red Hat, Inc. Copyright © 2018,2019,2020 Ebrahim Byagowi Copyright © 2018 Khaled Hosny This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2007,2008,2009,2010 Red Hat, Inc. Copyright © 2010,2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2007,2008,2009,2010 Red Hat, Inc. Copyright © 2010,2012,2013 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2007,2008,2009,2010 Red Hat, Inc. Copyright © 2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2007,2008,2009,2010 Red Hat, Inc. Copyright © 2012,2018 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2007,2008,2009,2010 Red Hat, Inc. Copyright © 2012,2018 Google, Inc. Copyright © 2019 Facebook, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2009 Red Hat, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2009 Red Hat, Inc. Copyright © 2009 Keith Stribley Copyright © 2011 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2009 Red Hat, Inc. Copyright © 2009 Keith Stribley Copyright © 2015 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2009 Red Hat, Inc. Copyright © 2011 Codethink Limited Copyright © 2010,2011,2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2009 Red Hat, Inc. Copyright © 2011 Codethink Limited Copyright © 2011,2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2009 Red Hat, Inc. Copyright © 2011 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2009 Red Hat, Inc. Copyright © 2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2009 Red Hat, Inc. Copyright © 2015 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2009 Red Hat, Inc. Copyright © 2018 Ebrahim Byagowi This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2009 Red Hat, Inc. Copyright © 2018 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2009,2010 Red Hat, Inc. Copyright © 2010,2011,2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2009,2010 Red Hat, Inc. Copyright © 2010,2011,2012,2013 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2009,2010 Red Hat, Inc. Copyright © 2010,2011,2013 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2009,2010 Red Hat, Inc. Copyright © 2011,2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2010 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2010 Red Hat, Inc. Copyright © 2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2010,2011 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2010,2011,2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2010,2011,2013 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2010,2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2011 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2011 Martin Hosken Copyright © 2011 SIL International This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2011 Martin Hosken Copyright © 2011 SIL International Copyright © 2011,2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2011,2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2011,2012 Google, Inc. Copyright © 2018 Ebrahim Byagowi This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2011,2012,2013 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2011,2012,2014 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2011,2014 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2012 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2012 Mozilla Foundation. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2012,2013 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2012,2013 Mozilla Foundation. Copyright © 2012,2013 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2012,2017 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2012,2018 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2013 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2013 Red Hat, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2014 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2015 Google, Inc. Copyright © 2019 Adobe Inc. Copyright © 2019 Ebrahim Byagowi This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2015 Mozilla Foundation. Copyright © 2015 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2015-2019 Ebrahim Byagowi This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2016 Elie Roux Copyright © 2018 Google, Inc. Copyright © 2018-2019 Ebrahim Byagowi This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2016 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2016 Google, Inc. Copyright © 2018 Ebrahim Byagowi This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2016 Google, Inc. Copyright © 2018 Khaled Hosny Copyright © 2018 Ebrahim Byagowi This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2016 Igalia S.L. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2017 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2017 Google, Inc. Copyright © 2018 Ebrahim Byagowi This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2017 Google, Inc. Copyright © 2019 Facebook, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2017,2018 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2018 Ebrahim Byagowi This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2018 Ebrahim Byagowi Copyright © 2018 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2018 Ebrahim Byagowi Copyright © 2020 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2018 Ebrahim Byagowi. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2018 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2018 Google, Inc. Copyright © 2019 Facebook, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2018 Adobe Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2018-2019 Ebrahim Byagowi This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2019 Adobe Inc. Copyright © 2019 Ebrahim Byagowi This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2019 Adobe, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2019 Ebrahim Byagowi This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2019 Facebook, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2019 Adobe Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2019-2020 Ebrahim Byagowi This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2020 Ebrahim Byagowi This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz Copyright © 2020 Google, Inc. This is part of HarfBuzz, a text shaping library. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- harfbuzz HarfBuzz is licensed under the so-called "Old MIT" license. Details follow. For parts of HarfBuzz that are licensed under different licenses see individual files names COPYING in subdirectories where applicable. Copyright © 2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020 Google, Inc. Copyright © 2018,2019,2020 Ebrahim Byagowi Copyright © 2019,2020 Facebook, Inc. Copyright © 2012 Mozilla Foundation Copyright © 2011 Codethink Limited Copyright © 2008,2010 Nokia Corporation and/or its subsidiary(-ies) Copyright © 2009 Keith Stribley Copyright © 2009 Martin Hosken and SIL International Copyright © 2007 Chris Wilson Copyright © 2006 Behdad Esfahbod Copyright © 2005 David Turner Copyright © 2004,2007,2008,2009,2010 Red Hat, Inc. Copyright © 1998-2004 David Turner and Werner Lemberg For full copyright notices consult the individual files in the package. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------------------------------------------------------- icu Copyright (c) 1995-2016 International Business Machines Corporation and others All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, provided that the above copyright notice(s) and this permission notice appear in all copies of the Software and that both the above copyright notice(s) and this permission notice appear in supporting documentation. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder. All trademarks and registered trademarks mentioned herein are the property of their respective owners. -------------------------------------------------------------------------------- icu Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved. Copyright (C) 2002-2005, International Business Machines Corporation and others. All Rights Reserved. This file is provided as-is by Unicode, Inc. (The Unicode Consortium). No claims are made as to fitness for any particular purpose. No warranties of any kind are expressed or implied. The recipient agrees to determine applicability of information provided. If this file has been provided on optical media by Unicode, Inc., the sole remedy for any claim will be exchange of defective media within 90 days of receipt. Unicode, Inc. hereby grants the right to freely use the information supplied in this file in the creation of products supporting the Unicode Standard, and to make copies of this file in any form for internal or external distribution as long as this notice remains attached. -------------------------------------------------------------------------------- icu Copyright (c) 1999 Computer Systems and Communication Lab, Institute of Information Science, Academia * Sinica. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. . Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . Neither the name of the Computer Systems and Communication Lab nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- icu Copyright (c) 1999 TaBE Project. Copyright (c) 1999 Pai-Hsiang Hsiao. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: . Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. . Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. . Neither the name of the TaBE Project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- icu Copyright (c) 1999 Unicode, Inc. All Rights reserved. Copyright (C) 2002-2005, International Business Machines Corporation and others. All Rights Reserved. This file is provided as-is by Unicode, Inc. (The Unicode Consortium). No claims are made as to fitness for any particular purpose. No warranties of any kind are expressed or implied. The recipient agrees to determine applicability of information provided. If this file has been provided on optical media by Unicode, Inc., the sole remedy for any claim will be exchange of defective media within 90 days of receipt. Unicode, Inc. hereby grants the right to freely use the information supplied in this file in the creation of products supporting the Unicode Standard, and to make copies of this file in any form for internal or external distribution as long as this notice remains attached. -------------------------------------------------------------------------------- icu Copyright (c) 2002 Unicode, Inc. All Rights reserved. Copyright (C) 2002-2005, International Business Machines Corporation and others. All Rights Reserved. This file is provided as-is by Unicode, Inc. (The Unicode Consortium). No claims are made as to fitness for any particular purpose. No warranties of any kind are expressed or implied. The recipient agrees to determine applicability of information provided. If this file has been provided on optical media by Unicode, Inc., the sole remedy for any claim will be exchange of defective media within 90 days of receipt. Unicode, Inc. hereby grants the right to freely use the information supplied in this file in the creation of products supporting the Unicode Standard, and to make copies of this file in any form for internal or external distribution as long as this notice remains attached. -------------------------------------------------------------------------------- icu Copyright (c) 2013 International Business Machines Corporation and others. All Rights Reserved. Project: https://github.com/veer66/lao-dictionary Dictionary: https://github.com/veer66/lao-dictionary/blob/master/Lao-Dictionary.txt License: https://github.com/veer66/lao-dictionary/blob/master/Lao-Dictionary-LICENSE.txt (copied below) This file is derived from the above dictionary, with slight modifications. Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- icu Copyright (c) 2014 International Business Machines Corporation and others. All Rights Reserved. This list is part of a project hosted at: github.com/kanyawtech/myanmar-karen-word-lists Copyright (c) 2013, LeRoy Benjamin Sharon All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name Myanmar Karen Word Lists, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- icu Copyright (c) IBM Corporation, 2000-2010. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- icu Copyright (c) IBM Corporation, 2000-2011. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- icu Copyright (c) IBM Corporation, 2000-2012. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- icu Copyright (c) IBM Corporation, 2000-2014. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- icu Copyright (c) IBM Corporation, 2000-2016. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- icu Copyright 1996 Chih-Hao Tsai @ Beckman Institute, University of Illinois c-tsai4@uiuc.edu http://casper.beckman.uiuc.edu/~c-tsai4 -------------------------------------------------------------------------------- icu Copyright 2000, 2001, 2002, 2003 Nara Institute of Science and Technology. All Rights Reserved. Use, reproduction, and distribution of this software is permitted. Any copy of this software, whether in its original form or modified, must include both the above copyright notice and the following paragraphs. Nara Institute of Science and Technology (NAIST), the copyright holders, disclaims all warranties with regard to this software, including all implied warranties of merchantability and fitness, in no event shall NAIST be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortuous action, arising out of or in connection with the use or performance of this software. A large portion of the dictionary entries originate from ICOT Free Software. The following conditions for ICOT Free Software applies to the current dictionary as well. Each User may also freely distribute the Program, whether in its original form or modified, to any third party or parties, PROVIDED that the provisions of Section 3 ("NO WARRANTY") will ALWAYS appear on, or be attached to, the Program, which is distributed substantially in the same form as set out herein and that such intended distribution, if actually made, will neither violate or otherwise contravene any of the laws and regulations of the countries having jurisdiction over the User or the intended distribution itself. NO WARRANTY The program was produced on an experimental basis in the course of the research and development conducted during the project and is provided to users as so produced on an experimental basis. Accordingly, the program is provided without any warranty whatsoever, whether express, implied, statutory or otherwise. The term "warranty" used herein includes, but is not limited to, any warranty of the quality, performance, merchantability and fitness for a particular purpose of the program and the nonexistence of any infringement or violation of any right of any third party. Each user of the program will agree and understand, and be deemed to have agreed and understood, that there is no warranty whatsoever for the program and, accordingly, the entire risk arising from or otherwise connected with the program is assumed by the user. Therefore, neither ICOT, the copyright holder, or any other organization that participated in or was otherwise related to the development of the program and their respective officials, directors, officers and other employees shall be held liable for any and all damages, including, without limitation, general, special, incidental and consequential damages, arising out of or otherwise in connection with the use or inability to use the program or any product, material or result produced or otherwise obtained by using the program, regardless of whether they have been advised of, or otherwise had knowledge of, the possibility of such damages at any time during the project or thereafter. Each user will be deemed to have agreed to the foregoing by his or her commencement of use of the program. The term "use" as used herein includes, but is not limited to, the use, modification, copying and distribution of the program and the production of secondary products from the program. In the case where the program, whether in its original form or modified, was distributed or delivered to or received by a user from any person, organization or entity other than ICOT, unless it makes or grants independently of ICOT any specific warranty to the user in writing, such person, organization or entity, will also be exempted from and not be held liable to the user for any such damages as noted above as far as the program is concerned. -------------------------------------------------------------------------------- icu Copyright 2006-2011, the V8 project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- icu Copyright 2019 the V8 project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- icu Copyright © 1991-2020 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in https://www.unicode.org/copyright.html. Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that either (a) this copyright and permission notice appear with all copies of the Data Files or Software, or (b) this copyright and permission notice appear in associated Documentation. THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE. Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder. -------------------------------------------------------------------------------- icu The BSD License http://opensource.org/licenses/bsd-license.php Copyright (C) 2006-2008, Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- icu Unicode® Terms of Use For the general privacy policy governing access to this site, see the Unicode Privacy Policy. For trademark usage, see the Unicode® Consortium Name and Trademark Usage Policy. A. Unicode Copyright. 1. Copyright © 1991-2017 Unicode, Inc. All rights reserved. 2. Certain documents and files on this website contain a legend indicating that "Modification is permitted." Any person is hereby authorized, without fee, to modify such documents and files to create derivative works conforming to the Unicode® Standard, subject to Terms and Conditions herein. 3. Any person is hereby authorized, without fee, to view, use, reproduce, and distribute all documents and files solely for informational purposes and in the creation of products supporting the Unicode Standard, subject to the Terms and Conditions herein. 4. Further specifications of rights and restrictions pertaining to the use of the particular set of data files known as the "Unicode Character Database" can be found in the License. 5. Each version of the Unicode Standard has further specifications of rights and restrictions of use. For the book editions (Unicode 5.0 and earlier), these are found on the back of the title page. The online code charts carry specific restrictions. All other files, including online documentation of the core specification for Unicode 6.0 and later, are covered under these general Terms of Use. 6. No license is granted to "mirror" the Unicode website where a fee is charged for access to the "mirror" site. 7. Modification is not permitted with respect to this document. All copies of this document must be verbatim. B. Restricted Rights Legend. Any technical data or software which is licensed to the United States of America, its agencies and/or instrumentalities under this Agreement is commercial technical data or commercial computer software developed exclusively at private expense as defined in FAR 2.101, or DFARS 252.227-7014 (June 1995), as applicable. For technical data, use, duplication, or disclosure by the Government is subject to restrictions as set forth in DFARS 202.227-7015 Technical Data, Commercial and Items (Nov 1995) and this Agreement. For Software, in accordance with FAR 12-212 or DFARS 227-7202, as applicable, use, duplication or disclosure by the Government is subject to the restrictions set forth in this Agreement. C. Warranties and Disclaimers. 1. This publication and/or website may include technical or typographical errors or other inaccuracies . Changes are periodically added to the information herein; these changes will be incorporated in new editions of the publication and/or website. Unicode may make improvements and/or changes in the product(s) and/or program(s) described in this publication and/or website at any time. 2. If this file has been purchased on magnetic or optical media from Unicode, Inc. the sole and exclusive remedy for any claim will be exchange of the defective media within ninety (90) days of original purchase. 3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UNICODE AND ITS LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE WEBSITE. D. Waiver of Damages. In no event shall Unicode or its licensors be liable for any special, incidental, indirect or consequential damages of any kind, or any damages whatsoever, whether or not Unicode was advised of the possibility of the damage, including, without limitation, those resulting from the following: loss of use, data or profits, in connection with the use, modification or distribution of this information or its derivatives. E. Trademarks & Logos. 1. The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of Unicode, Inc. Use of the information and materials found on this website indicates your acknowledgement of Unicode, Inc.’s exclusive worldwide rights in the Unicode Word Mark, the Unicode Logo, and the Unicode trade names. 2. The Unicode Consortium Name and Trademark Usage Policy (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc. 3. All third party trademarks referenced herein are the property of their respective owners. F. Miscellaneous. 1. Jurisdiction and Venue. This server is operated from a location in the State of California, United States of America. Unicode makes no representation that the materials are appropriate for use in other locations. If you access this server from other locations, you are responsible for compliance with local laws. This Agreement, all use of this site and any claims and damages resulting from use of this site are governed solely by the laws of the State of California without regard to any principles which would apply the laws of a different jurisdiction. The user agrees that any disputes regarding this site shall be resolved solely in the courts located in Santa Clara County, California. The user agrees said courts have personal jurisdiction and agree to waive any right to transfer the dispute to any other forum. 2. Modification by Unicode Unicode shall have the right to modify this Agreement at any time by posting it to this site. The user may not assign any part of this Agreement without Unicode’s prior written consent. 3. Taxes. The user agrees to pay any taxes arising from access to this website or use of the information herein, except for those based on Unicode’s net income. 4. Severability. If any provision of this Agreement is declared invalid or unenforceable, the remaining provisions of this Agreement shall remain in effect. 5. Entire Agreement. This Agreement constitutes the entire agreement between the parties. EXHIBIT 1 UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE Unicode Data Files include all data files under the directories http://www.unicode.org/Public/, http://www.unicode.org/reports/, http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and http://www.unicode.org/utility/trac/browser/. Unicode Data Files do not include PDF online code charts under the directory http://www.unicode.org/Public/. Software includes any source code published in the Unicode Standard or under the directories http://www.unicode.org/Public/, http://www.unicode.org/reports/, http://www.unicode.org/cldr/data/, http://source.icu-project.org/repos/icu/, and http://www.unicode.org/utility/trac/browser/. NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE. COPYRIGHT AND PERMISSION NOTICE Copyright © 1991-2017 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html. Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that either (a) this copyright and permission notice appear with all copies of the Data Files or Software, or (b) this copyright and permission notice appear in associated Documentation. THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE. Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder. -------------------------------------------------------------------------------- intl Copyright 2013, the Dart project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- js Copyright 2012, the Dart project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- khronos Copyright (c) 2007-2010 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials. THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) Copyright (C) 1992 Silicon Graphics, Inc. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice including the dates of first publication and either this permission notice or a reference to http://oss.sgi.com/projects/FreeB shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of Silicon Graphics, Inc. shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from Silicon Graphics, Inc. -------------------------------------------------------------------------------- khronos Copyright (c) 2007-2012 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials. THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -------------------------------------------------------------------------------- khronos Copyright (c) 2007-2016 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials. THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -------------------------------------------------------------------------------- khronos Copyright (c) 2008-2009 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials. THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -------------------------------------------------------------------------------- khronos Copyright (c) 2013-2016 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials. THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -------------------------------------------------------------------------------- libcxx libcxxabi Apache License Version 2.0, January 2004 http://www.apache.org/licenses TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --- LLVM Exceptions to the Apache 2.0 License ---- As an exception, if, as a result of your compiling your source code, portions of this Software are embedded into an Object form of such source code, you may redistribute such embedded portions in such Object form without complying with the conditions of Sections 4(a), 4(b) and 4(d) of the License. In addition, if you combine or link compiled forms of this Software with software that is licensed under the GPLv2 ("Combined Software") and if a court of competent jurisdiction determines that the patent provision (Section 3), the indemnity provision (Section 9) or other Section of the License conflicts with the conditions of the GPLv2, you may retroactively and prospectively choose to deem waived or otherwise exclude such Section(s) of the License, but only in their entirety and only with respect to the Combined Software. -------------------------------------------------------------------------------- libcxx libcxxabi Copyright (c) 2009-2014 by the contributors listed in CREDITS.TXT Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- libcxx libcxxabi University of Illinois/NCSA Open Source License Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT All rights reserved. Developed by: LLVM Team University of Illinois at Urbana-Champaign http://llvm.org Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal with the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimers. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimers in the documentation and/or other materials provided with the distribution. * Neither the names of the LLVM Team, University of Illinois at Urbana-Champaign, nor the names of its contributors may be used to endorse or promote products derived from this Software without specific prior written permission. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C) 2009, D. R. Commander. Based on the x86 SIMD extension for IJG JPEG library Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C) 2009-2011, 2014-2016, D. R. Commander. Copyright (C) 2015, Matthieu Darbois. Based on the x86 SIMD extension for IJG JPEG library Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C) 2009-2011, Nokia Corporation and/or its subsidiary(-ies). All Rights Reserved. Author: Siarhei Siamashka Copyright (C) 2013-2014, Linaro Limited. All Rights Reserved. Author: Ragesh Radhakrishnan Copyright (C) 2014-2016, D. R. Commander. All Rights Reserved. Copyright (C) 2015-2016, Matthieu Darbois. All Rights Reserved. Copyright (C) 2016, Siarhei Siamashka. All Rights Reserved. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C) 2009-2011, Nokia Corporation and/or its subsidiary(-ies). All Rights Reserved. Author: Siarhei Siamashka Copyright (C) 2014, Siarhei Siamashka. All Rights Reserved. Copyright (C) 2014, Linaro Limited. All Rights Reserved. Copyright (C) 2015, D. R. Commander. All Rights Reserved. Copyright (C) 2015-2016, Matthieu Darbois. All Rights Reserved. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C) 2011, D. R. Commander. Based on the x86 SIMD extension for IJG JPEG library Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C) 2013, MIPS Technologies, Inc., California. All Rights Reserved. Authors: Teodora Novkovic (teodora.novkovic@imgtec.com) Darko Laus (darko.laus@imgtec.com) This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C) 2013-2014, MIPS Technologies, Inc., California. All Rights Reserved. Authors: Teodora Novkovic (teodora.novkovic@imgtec.com) Darko Laus (darko.laus@imgtec.com) Copyright (C) 2015, D. R. Commander. All Rights Reserved. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C) 2014, D. R. Commander. All Rights Reserved. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C) 2014-2015, D. R. Commander. All Rights Reserved. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C) 2014-2015, D. R. Commander. All Rights Reserved. Copyright (C) 2014, Jay Foad. All Rights Reserved. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C) 2015, D. R. Commander. All Rights Reserved. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C)2009-2014 D. R. Commander. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the libjpeg-turbo Project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C)2009-2015 D. R. Commander. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the libjpeg-turbo Project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C)2009-2016 D. R. Commander. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the libjpeg-turbo Project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C)2011 D. R. Commander. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the libjpeg-turbo Project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C)2011, 2015 D. R. Commander. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the libjpeg-turbo Project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- libjpeg-turbo Copyright (C)2011-2016 D. R. Commander. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of the libjpeg-turbo Project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS", AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- libjpeg-turbo Copyright 2009 Pierre Ossman for Cendio AB Based on the x86 SIMD extension for IJG JPEG library Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright 2009 Pierre Ossman for Cendio AB Based on the x86 SIMD extension for IJG JPEG library, Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright 2009 Pierre Ossman for Cendio AB Copyright (C) 2009, D. R. Commander. Based on the x86 SIMD extension for IJG JPEG library Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright 2009 Pierre Ossman for Cendio AB Copyright (C) 2009-2011, 2013-2014, 2016, D. R. Commander. Copyright (C) 2015, Matthieu Darbois. Based on the x86 SIMD extension for IJG JPEG library, Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright 2009 Pierre Ossman for Cendio AB Copyright (C) 2009-2011, 2013-2014, 2016, D. R. Commander. Copyright (C) 2015-2016, Matthieu Darbois. Based on the x86 SIMD extension for IJG JPEG library, Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright 2009 Pierre Ossman for Cendio AB Copyright (C) 2009-2011, 2014, 2016, D. R. Commander. Copyright (C) 2015, Matthieu Darbois. Based on the x86 SIMD extension for IJG JPEG library, Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright 2009 Pierre Ossman for Cendio AB Copyright (C) 2009-2011, 2014, D. R. Commander. Copyright (C) 2013-2014, MIPS Technologies, Inc., California. Copyright (C) 2015, Matthieu Darbois. Based on the x86 SIMD extension for IJG JPEG library, Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright 2009 Pierre Ossman for Cendio AB Copyright (C) 2009-2011, 2014, D. R. Commander. Copyright (C) 2015, Matthieu Darbois. Based on the x86 SIMD extension for IJG JPEG library, Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright 2009 Pierre Ossman for Cendio AB Copyright (C) 2009-2011, 2014-2015, D. R. Commander. Copyright (C) 2015, Matthieu Darbois. Based on the x86 SIMD extension for IJG JPEG library, Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright 2009 Pierre Ossman for Cendio AB Copyright (C) 2010, D. R. Commander. Based on the x86 SIMD extension for IJG JPEG library - version 1.02 Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright 2009 Pierre Ossman for Cendio AB Copyright (C) 2011, 2014, D. R. Commander. Copyright (C) 2015, Matthieu Darbois. Based on the x86 SIMD extension for IJG JPEG library, Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright 2009 Pierre Ossman for Cendio AB Copyright (C) 2011, 2014-2016, D. R. Commander. Copyright (C) 2013-2014, MIPS Technologies, Inc., California. Copyright (C) 2014, Linaro Limited. Copyright (C) 2015-2016, Matthieu Darbois. Based on the x86 SIMD extension for IJG JPEG library, Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright 2009 Pierre Ossman for Cendio AB Copyright (C) 2011, D. R. Commander. Based on the x86 SIMD extension for IJG JPEG library Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright 2009, 2012 Pierre Ossman for Cendio AB Copyright (C) 2009, 2012, D. R. Commander. Based on the x86 SIMD extension for IJG JPEG library Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo Copyright 2009, 2012 Pierre Ossman for Cendio AB Copyright (C) 2012, D. R. Commander. Based on the x86 SIMD extension for IJG JPEG library Copyright (C) 1999-2006, MIYASAKA Masaru. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- libjpeg-turbo libjpeg-turbo note: This file has been modified by The libjpeg-turbo Project to include only information relevant to libjpeg-turbo, to wordsmith certain sections, and to remove impolitic language that existed in the libjpeg v8 README. It is included only for reference. Please see README.md for information specific to libjpeg-turbo. The Independent JPEG Group's JPEG software ========================================== This distribution contains a release of the Independent JPEG Group's free JPEG software. You are welcome to redistribute this software and to use it for any purpose, subject to the conditions under LEGAL ISSUES, below. This software is the work of Tom Lane, Guido Vollbeding, Philip Gladstone, Bill Allombert, Jim Boucher, Lee Crocker, Bob Friesenhahn, Ben Jackson, Julian Minguillon, Luis Ortiz, George Phillips, Davide Rossi, Ge' Weijers, and other members of the Independent JPEG Group. IJG is not affiliated with the ISO/IEC JTC1/SC29/WG1 standards committee (also known as JPEG, together with ITU-T SG16). DOCUMENTATION ROADMAP ===================== This file contains the following sections: OVERVIEW General description of JPEG and the IJG software. LEGAL ISSUES Copyright, lack of warranty, terms of distribution. REFERENCES Where to learn more about JPEG. ARCHIVE LOCATIONS Where to find newer versions of this software. FILE FORMAT WARS Software *not* to get. TO DO Plans for future IJG releases. Other documentation files in the distribution are: User documentation: usage.txt Usage instructions for cjpeg, djpeg, jpegtran, rdjpgcom, and wrjpgcom. *.1 Unix-style man pages for programs (same info as usage.txt). wizard.txt Advanced usage instructions for JPEG wizards only. change.log Version-to-version change highlights. Programmer and internal documentation: libjpeg.txt How to use the JPEG library in your own programs. example.c Sample code for calling the JPEG library. structure.txt Overview of the JPEG library's internal structure. coderules.txt Coding style rules --- please read if you contribute code. Please read at least usage.txt. Some information can also be found in the JPEG FAQ (Frequently Asked Questions) article. See ARCHIVE LOCATIONS below to find out where to obtain the FAQ article. If you want to understand how the JPEG code works, we suggest reading one or more of the REFERENCES, then looking at the documentation files (in roughly the order listed) before diving into the code. OVERVIEW ======== This package contains C software to implement JPEG image encoding, decoding, and transcoding. JPEG (pronounced "jay-peg") is a standardized compression method for full-color and grayscale images. JPEG's strong suit is compressing photographic images or other types of images that have smooth color and brightness transitions between neighboring pixels. Images with sharp lines or other abrupt features may not compress well with JPEG, and a higher JPEG quality may have to be used to avoid visible compression artifacts with such images. JPEG is lossy, meaning that the output pixels are not necessarily identical to the input pixels. However, on photographic content and other "smooth" images, very good compression ratios can be obtained with no visible compression artifacts, and extremely high compression ratios are possible if you are willing to sacrifice image quality (by reducing the "quality" setting in the compressor.) This software implements JPEG baseline, extended-sequential, and progressive compression processes. Provision is made for supporting all variants of these processes, although some uncommon parameter settings aren't implemented yet. We have made no provision for supporting the hierarchical or lossless processes defined in the standard. We provide a set of library routines for reading and writing JPEG image files, plus two sample applications "cjpeg" and "djpeg", which use the library to perform conversion between JPEG and some other popular image file formats. The library is intended to be reused in other applications. In order to support file conversion and viewing software, we have included considerable functionality beyond the bare JPEG coding/decoding capability; for example, the color quantization modules are not strictly part of JPEG decoding, but they are essential for output to colormapped file formats or colormapped displays. These extra functions can be compiled out of the library if not required for a particular application. We have also included "jpegtran", a utility for lossless transcoding between different JPEG processes, and "rdjpgcom" and "wrjpgcom", two simple applications for inserting and extracting textual comments in JFIF files. The emphasis in designing this software has been on achieving portability and flexibility, while also making it fast enough to be useful. In particular, the software is not intended to be read as a tutorial on JPEG. (See the REFERENCES section for introductory material.) Rather, it is intended to be reliable, portable, industrial-strength code. We do not claim to have achieved that goal in every aspect of the software, but we strive for it. We welcome the use of this software as a component of commercial products. No royalty is required, but we do ask for an acknowledgement in product documentation, as described under LEGAL ISSUES. LEGAL ISSUES ============ In plain English: 1. We don't promise that this software works. (But if you find any bugs, please let us know!) 2. You can use this software for whatever you want. You don't have to pay us. 3. You may not pretend that you wrote this software. If you use it in a program, you must acknowledge somewhere in your documentation that you've used the IJG code. In legalese: The authors make NO WARRANTY or representation, either express or implied, with respect to this software, its quality, accuracy, merchantability, or fitness for a particular purpose. This software is provided "AS IS", and you, its user, assume the entire risk as to its quality and accuracy. This software is copyright (C) 1991-2016, Thomas G. Lane, Guido Vollbeding. All Rights Reserved except as specified below. Permission is hereby granted to use, copy, modify, and distribute this software (or portions thereof) for any purpose, without fee, subject to these conditions: (1) If any part of the source code for this software is distributed, then this README file must be included, with this copyright and no-warranty notice unaltered; and any additions, deletions, or changes to the original files must be clearly indicated in accompanying documentation. (2) If only executable code is distributed, then the accompanying documentation must state that "this software is based in part on the work of the Independent JPEG Group". (3) Permission for use of this software is granted only if the user accepts full responsibility for any undesirable consequences; the authors accept NO LIABILITY for damages of any kind. These conditions apply to any software derived from or based on the IJG code, not just to the unmodified library. If you use our work, you ought to acknowledge us. Permission is NOT granted for the use of any IJG author's name or company name in advertising or publicity relating to this software or products derived from it. This software may be referred to only as "the Independent JPEG Group's software". We specifically permit and encourage the use of this software as the basis of commercial products, provided that all warranty or liability claims are assumed by the product vendor. The Unix configuration script "configure" was produced with GNU Autoconf. It is copyright by the Free Software Foundation but is freely distributable. The same holds for its supporting scripts (config.guess, config.sub, ltmain.sh). Another support script, install-sh, is copyright by X Consortium but is also freely distributable. The IJG distribution formerly included code to read and write GIF files. To avoid entanglement with the Unisys LZW patent (now expired), GIF reading support has been removed altogether, and the GIF writer has been simplified to produce "uncompressed GIFs". This technique does not use the LZW algorithm; the resulting GIF files are larger than usual, but are readable by all standard GIF decoders. We are required to state that "The Graphics Interchange Format(c) is the Copyright property of CompuServe Incorporated. GIF(sm) is a Service Mark property of CompuServe Incorporated." REFERENCES ========== We recommend reading one or more of these references before trying to understand the innards of the JPEG software. The best short technical introduction to the JPEG compression algorithm is Wallace, Gregory K. "The JPEG Still Picture Compression Standard", Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44. (Adjacent articles in that issue discuss MPEG motion picture compression, applications of JPEG, and related topics.) If you don't have the CACM issue handy, a PDF file containing a revised version of Wallace's article is available at http://www.ijg.org/files/Wallace.JPEG.pdf. The file (actually a preprint for an article that appeared in IEEE Trans. Consumer Electronics) omits the sample images that appeared in CACM, but it includes corrections and some added material. Note: the Wallace article is copyright ACM and IEEE, and it may not be used for commercial purposes. A somewhat less technical, more leisurely introduction to JPEG can be found in "The Data Compression Book" by Mark Nelson and Jean-loup Gailly, published by M&T Books (New York), 2nd ed. 1996, ISBN 1-55851-434-1. This book provides good explanations and example C code for a multitude of compression methods including JPEG. It is an excellent source if you are comfortable reading C code but don't know much about data compression in general. The book's JPEG sample code is far from industrial-strength, but when you are ready to look at a full implementation, you've got one here... The best currently available description of JPEG is the textbook "JPEG Still Image Data Compression Standard" by William B. Pennebaker and Joan L. Mitchell, published by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1. Price US$59.95, 638 pp. The book includes the complete text of the ISO JPEG standards (DIS 10918-1 and draft DIS 10918-2). The original JPEG standard is divided into two parts, Part 1 being the actual specification, while Part 2 covers compliance testing methods. Part 1 is titled "Digital Compression and Coding of Continuous-tone Still Images, Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS 10918-1, ITU-T T.81. Part 2 is titled "Digital Compression and Coding of Continuous-tone Still Images, Part 2: Compliance testing" and has document numbers ISO/IEC IS 10918-2, ITU-T T.83. The JPEG standard does not specify all details of an interchangeable file format. For the omitted details we follow the "JFIF" conventions, revision 1.02. JFIF 1.02 has been adopted as an Ecma International Technical Report and thus received a formal publication status. It is available as a free download in PDF format from http://www.ecma-international.org/publications/techreports/E-TR-098.htm. A PostScript version of the JFIF document is available at http://www.ijg.org/files/jfif.ps.gz. There is also a plain text version at http://www.ijg.org/files/jfif.txt.gz, but it is missing the figures. The TIFF 6.0 file format specification can be obtained by FTP from ftp://ftp.sgi.com/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation scheme found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems. IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6). Instead, we recommend the JPEG design proposed by TIFF Technical Note #2 (Compression tag 7). Copies of this Note can be obtained from http://www.ijg.org/files/. It is expected that the next revision of the TIFF spec will replace the 6.0 JPEG design with the Note's design. Although IJG's own code does not support TIFF/JPEG, the free libtiff library uses our library to implement TIFF/JPEG per the Note. ARCHIVE LOCATIONS ================= The "official" archive site for this software is www.ijg.org. The most recent released version can always be found there in directory "files". The JPEG FAQ (Frequently Asked Questions) article is a source of some general information about JPEG. It is available on the World Wide Web at http://www.faqs.org/faqs/jpeg-faq and other news.answers archive sites, including the official news.answers archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/. If you don't have Web or FTP access, send e-mail to mail-server@rtfm.mit.edu with body send usenet/news.answers/jpeg-faq/part1 send usenet/news.answers/jpeg-faq/part2 FILE FORMAT WARS ================ The ISO/IEC JTC1/SC29/WG1 standards committee (also known as JPEG, together with ITU-T SG16) currently promotes different formats containing the name "JPEG" which are incompatible with original DCT-based JPEG. IJG therefore does not support these formats (see REFERENCES). Indeed, one of the original reasons for developing this free software was to help force convergence on common, interoperable format standards for JPEG files. Don't use an incompatible file format! (In any case, our decoder will remain capable of reading existing JPEG image files indefinitely.) TO DO ===== Please send bug reports, offers of help, etc. to jpeg-info@jpegclub.org. -------------------------------------------------------------------------------- libsdl skia Copyright 2016 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- libwebp Copyright (c) 2010, Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- libwebp Copyright 2010 Google Inc. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- libwebp Copyright 2011 Google Inc. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- libwebp Copyright 2012 Google Inc. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- libwebp Copyright 2013 Google Inc. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- libwebp Copyright 2014 Google Inc. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- libwebp Copyright 2015 Google Inc. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- libwebp Copyright 2016 Google Inc. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- libwebp Copyright 2017 Google Inc. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- nested provider MIT License Copyright (c) 2019 Remi Rousselet Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- path_provider_linux // Copyright 2020 The Chromium Authors. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- path_provider_platform_interface shared_preferences_linux Copyright 2020 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- path_provider_windows shared_preferences Copyright 2017 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- pedantic platform process term_glyph Copyright 2017, the Dart project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- pkg Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file for details. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- plugin_platform_interface Copyright 2019 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- rapidjson Copyright (c) 2006-2013 Alexander Chemeris Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the product nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- rapidjson Tencent is pleased to support the open source community by making RapidJSON available. Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. If you have downloaded a copy of the RapidJSON binary from Tencent, please note that the RapidJSON binary is licensed under the MIT License. If you have downloaded a copy of the RapidJSON source code from Tencent, please note that RapidJSON source code is licensed under the MIT License, except for the third-party components listed below which are subject to different license terms. Your integration of RapidJSON into your own projects may require compliance with the MIT License, as well as the other licenses applicable to the third-party components included within RapidJSON. A copy of the MIT License is included in this file. Other dependencies and licenses: Open Source Software Licensed Under the BSD License: The msinttypes r29 Copyright (c) 2006-2013 Alexander Chemeris All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Terms of the MIT License: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- rapidjson Tencent is pleased to support the open source community by making RapidJSON available. Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. If you have downloaded a copy of the RapidJSON binary from Tencent, please note that the RapidJSON binary is licensed under the MIT License. If you have downloaded a copy of the RapidJSON source code from Tencent, please note that RapidJSON source code is licensed under the MIT License, except for the third-party components listed below which are subject to different license terms. Your integration of RapidJSON into your own projects may require compliance with the MIT License, as well as the other licenses applicable to the third-party components included within RapidJSON. To avoid the problematic JSON license in your own projects, it's sufficient to exclude the bin/jsonchecker/ directory, as it's the only code under the JSON license. A copy of the MIT License is included in this file. Other dependencies and licenses: Open Source Software Licensed Under the BSD License: The msinttypes r29 Copyright (c) 2006-2013 Alexander Chemeris All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Open Source Software Licensed Under the JSON License: json.org Copyright (c) 2002 JSON.org All Rights Reserved. JSON_checker Copyright (c) 2002 JSON.org All Rights Reserved. Terms of the JSON License: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. The Software shall be used for Good, not Evil. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Terms of the MIT License: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- rapidjson The MIT License (MIT) Copyright (c) 2017 Bart Muzzin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Derived from: The MIT License (MIT) Copyright (c) 2015 mojmir svoboda Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- root_certificates Mozilla Public License Version 2.0 1. Definitions 1.1. “Contributor” means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. 1.2. “Contributor Version” means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor’s Contribution. 1.3. “Contribution” means Covered Software of a particular Contributor. 1.4. “Covered Software” means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. 1.5. “Incompatible With Secondary Licenses” means a. that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or b. that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License. 1.6. “Executable Form” means any form of the work other than Source Code Form. 1.7. “Larger Work” means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. 1.8. “License” means this document. 1.9. “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. 1.10. “Modifications” means any of the following: a. any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or b. any new file in Source Code Form that contains any Covered Software. 1.11. “Patent Claims” of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. 1.12. “Secondary License” means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. 1.13. “Source Code Form” means the form of the work preferred for making modifications. 1.14. “You” (or “Your”) means an individual or a legal entity exercising rights under this License. For legal entities, “You” includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. 2. License Grants and Conditions 2.1. Grants Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: a. under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and b. under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version. 2.2. Effective Date The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution. 2.3. Limitations on Grant Scope The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor: a. for any code that a Contributor has removed from Covered Software; or b. for infringements caused by: (i) Your and any other third party’s modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or c. under Patent Claims infringed by Covered Software in the absence of its Contributions. This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4). 2.4. Subsequent Licenses No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3). 2.5. Representation Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License. 2.6. Fair Use This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents. 2.7. Conditions Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1. 3. Responsibilities 3.1. Distribution of Source Form All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form. 3.2. Distribution of Executable Form If You distribute Covered Software in Executable Form then: a. such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and b. You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients’ rights in the Source Code Form under this License. 3.3. Distribution of a Larger Work You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s). 3.4. Notices You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies. 3.5. Application of Additional Terms You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction. 4. Inability to Comply Due to Statute or Regulation If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. 5. Termination 5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice. 5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate. 5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination. 6. Disclaimer of Warranty Covered Software is provided under this License on an “as is” basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer. 7. Limitation of Liability Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You. 8. Litigation Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims. 9. Miscellaneous This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor. 10. Versions of the License 10.1. New Versions Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number. 10.2. Effect of New Versions You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward. 10.3. Modified Versions If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License). 10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached. Exhibit A - Source Code Form License Notice This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/. If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. You may add additional accurate notices of copyright ownership. Exhibit B - “Incompatible With Secondary Licenses” Notice This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla Public License, v. 2.0. -------------------------------------------------------------------------------- root_certificates Mozilla Public License Version 2.0 ================================== 1. Definitions 1.1. "Contributor" means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software. 1.2. "Contributor Version" means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor's Contribution. 1.3. "Contribution" means Covered Software of a particular Contributor. 1.4. "Covered Software" means Source Code Form to which the initial Contributor has attached the notice in Exhibit A, the Executable Form of such Source Code Form, and Modifications of such Source Code Form, in each case including portions thereof. 1.5. "Incompatible With Secondary Licenses" means (a) that the initial Contributor has attached the notice described in Exhibit B to the Covered Software; or (b) that the Covered Software was made available under the terms of version 1.1 or earlier of the License, but not also under the terms of a Secondary License. 1.6. "Executable Form" means any form of the work other than Source Code Form. 1.7. "Larger Work" means a work that combines Covered Software with other material, in a separate file or files, that is not Covered Software. 1.8. "License" means this document. 1.9. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently, any and all of the rights conveyed by this License. 1.10. "Modifications" means any of the following: (a) any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or (b) any new file in Source Code Form that contains any Covered Software. 1.11. "Patent Claims" of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version. 1.12. "Secondary License" means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses. 1.13. "Source Code Form" means the form of the work preferred for making modifications. 1.14. "You" (or "Your") means an individual or a legal entity exercising rights under this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. 2. License Grants and Conditions 2.1. Grants Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: (a) under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and (b) under Patent Claims of such Contributor to make, use, sell, offer for sale, have made, import, and otherwise transfer either its Contributions or its Contributor Version. 2.2. Effective Date The licenses granted in Section 2.1 with respect to any Contribution become effective for each Contribution on the date the Contributor first distributes such Contribution. 2.3. Limitations on Grant Scope The licenses granted in this Section 2 are the only rights granted under this License. No additional rights or licenses will be implied from the distribution or licensing of Covered Software under this License. Notwithstanding Section 2.1(b) above, no patent license is granted by a Contributor: (a) for any code that a Contributor has removed from Covered Software; or (b) for infringements caused by: (i) Your and any other third party's modifications of Covered Software, or (ii) the combination of its Contributions with other software (except as part of its Contributor Version); or (c) under Patent Claims infringed by Covered Software in the absence of its Contributions. This License does not grant any rights in the trademarks, service marks, or logos of any Contributor (except as may be necessary to comply with the notice requirements in Section 3.4). 2.4. Subsequent Licenses No Contributor makes additional grants as a result of Your choice to distribute the Covered Software under a subsequent version of this License (see Section 10.2) or under the terms of a Secondary License (if permitted under the terms of Section 3.3). 2.5. Representation Each Contributor represents that the Contributor believes its Contributions are its original creation(s) or it has sufficient rights to grant the rights to its Contributions conveyed by this License. 2.6. Fair Use This License is not intended to limit any rights You have under applicable copyright doctrines of fair use, fair dealing, or other equivalents. 2.7. Conditions Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1. 3. Responsibilities 3.1. Distribution of Source Form All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients' rights in the Source Code Form. 3.2. Distribution of Executable Form If You distribute Covered Software in Executable Form then: (a) such Covered Software must also be made available in Source Code Form, as described in Section 3.1, and You must inform recipients of the Executable Form how they can obtain a copy of such Source Code Form by reasonable means in a timely manner, at a charge no more than the cost of distribution to the recipient; and (b) You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients' rights in the Source Code Form under this License. 3.3. Distribution of a Larger Work You may create and distribute a Larger Work under terms of Your choice, provided that You also comply with the requirements of this License for the Covered Software. If the Larger Work is a combination of Covered Software with a work governed by one or more Secondary Licenses, and the Covered Software is not Incompatible With Secondary Licenses, this License permits You to additionally distribute such Covered Software under the terms of such Secondary License(s), so that the recipient of the Larger Work may, at their option, further distribute the Covered Software under the terms of either this License or such Secondary License(s). 3.4. Notices You may not remove or alter the substance of any license notices (including copyright notices, patent notices, disclaimers of warranty, or limitations of liability) contained within the Source Code Form of the Covered Software, except that You may alter any license notices to the extent required to remedy known factual inaccuracies. 3.5. Application of Additional Terms You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction. 4. Inability to Comply Due to Statute or Regulation If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it. 5. Termination 5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice. 5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate. 5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination. * 6. Disclaimer of Warranty * Covered Software is provided under this License on an "as is" * basis, without warranty of any kind, either expressed, implied, or * statutory, including, without limitation, warranties that the * Covered Software is free of defects, merchantable, fit for a * particular purpose or non-infringing. The entire risk as to the * quality and performance of the Covered Software is with You. * Should any Covered Software prove defective in any respect, You * (not any Contributor) assume the cost of any necessary servicing, * repair, or correction. This disclaimer of warranty constitutes an * essential part of this License. No use of any Covered Software is * authorized under this License except under this disclaimer. * 7. Limitation of Liability * Under no circumstances and under no legal theory, whether tort * (including negligence), contract, or otherwise, shall any * Contributor, or anyone who distributes Covered Software as * permitted above, be liable to You for any direct, indirect, * special, incidental, or consequential damages of any character * including, without limitation, damages for lost profits, loss of * goodwill, work stoppage, computer failure or malfunction, or any * and all other commercial damages or losses, even if such party * shall have been informed of the possibility of such damages. This * limitation of liability shall not apply to liability for death or * personal injury resulting from such party's negligence to the * extent applicable law prohibits such limitation. Some * jurisdictions do not allow the exclusion or limitation of * incidental or consequential damages, so this exclusion and * limitation may not apply to You. 8. Litigation Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party's ability to bring cross-claims or counter-claims. 9. Miscellaneous This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor. 10. Versions of the License 10.1. New Versions Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number. 10.2. Effect of New Versions You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward. 10.3. Modified Versions If you create software not governed by this License, and you want to create a new license for such software, you may create and use a modified version of this License if you rename the license and remove any references to the name of the license steward (except to note that such modified license differs from this License). 10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached. Exhibit A - Source Code Form License Notice This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice. You may add additional accurate notices of copyright ownership. Exhibit B - "Incompatible With Secondary Licenses" Notice This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0. -------------------------------------------------------------------------------- shared_preferences_macos Copyright 2017, the Flutter project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- shared_preferences_platform_interface // Copyright 2017 The Chromium Authors. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- shared_preferences_web // Copyright 2019 The Chromium Authors. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- shared_preferences_windows // Copyright 2017 The Chromium Authors. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skcms Copyright (c) 2018 Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skcms vulkanmemoryallocator Copyright 2018 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright (C) 2014 Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright (c) 2011 Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright (c) 2011 Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright (c) 2014 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright (c) 2014-2016 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials. -------------------------------------------------------------------------------- skia Copyright 2005 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2006 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2006-2012 The Android Open Source Project Copyright 2012 Mozilla Foundation Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2007 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2008 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2008 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2009 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2009-2015 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2010 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2010 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2011 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2011 Google Inc. Copyright 2012 Mozilla Foundation Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2011 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2012 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2012 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2013 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2013 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2014 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2014 Google Inc. Copyright 2017 ARM Ltd. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2014 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2015 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2015 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2016 Mozilla Foundation Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2016 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2017 ARM Ltd. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2017 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2018 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2018 Google LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2018 Google LLC. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2018 Google, LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2018 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2019 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2019 Google Inc. and Adobe Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2019 Google LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2019 Google LLC. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2019 Google, LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2019 The Android Open Source Project Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2020 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2020 Google LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2020 Google LLC. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2020 Google, LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2021 Google Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2021 Google LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2021 Google LLC. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- skia Copyright 2021 Google, LLC Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- smhasher All MurmurHash source files are placed in the public domain. The license below applies to all other code in SMHasher: Copyright (c) 2011 Google, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- tcmalloc Copyright (c) 2003, Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- tcmalloc Copyright (c) 2005, Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- test_api Copyright 2018, the Dart project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- vector_math Copyright 2015, Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Copyright (C) 2013 Andrew Magill This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- vulkanmemoryallocator Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- win32 Copyright 2019, the Dart project authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- wuffs Apache License Version 2.0, January 2004 http://www.apache.org/licenses TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS -------------------------------------------------------------------------------- xdg_directories Copyright 2020 The Flutter Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- xxhash Copyright (C) 2012-2016, Yann Collet BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- xxhash Copyright (C) 2012-2016, Yann Collet. BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- zlib Copyright (C) 1995-2003, 2010 Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 1995-2003, 2010 Mark Adler Copyright (C) 2017 ARM, Inc. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 1995-2003, 2010, 2014, 2016 Jean-loup Gailly, Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 1995-2005, 2010 Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 1995-2006, 2010, 2011, 2012, 2016 Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 1995-2011, 2016 Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 1995-2016 Jean-loup Gailly This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 1995-2016 Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 1995-2017 Jean-loup Gailly This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 1995-2017 Jean-loup Gailly detect_data_type() function provided freely by Cosmin Truta, 2006 This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 1995-2017 Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) Modifications for Zip64 support Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) For more info read MiniZip_info.txt Condition of use and distribution are the same than zlib : This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) Modifications of Unzip for Zip64 Copyright (C) 2007-2008 Even Rouault Modifications for Zip64 support on both zip and unzip Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) For more info read MiniZip_info.txt Condition of use and distribution are the same than zlib : This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 2004, 2010 Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 2004-2017 Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 2013 Intel Corporation Authors: Arjan van de Ven Jim Kukunas This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 2013 Intel Corporation. All rights reserved. Authors: Wajdi Feghali Jim Guilford Vinodh Gopal Erdinc Ozturk Jim Kukunas This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- zlib Copyright (C) 2017 ARM, Inc. Copyright 2017 The Chromium Authors. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- zlib version 1.2.11, January 15th, 2017 Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. ================================================ FILE: web/assets/packages/fluttertoast/assets/toastify.css ================================================ /** * Minified by jsDelivr using clean-css v4.2.3. * Original file: /npm/toastify-js@1.9.3/src/toastify.css * * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files */ /*! * Toastify js 1.9.3 * https://github.com/apvarun/toastify-js * @license MIT licensed * * Copyright (C) 2018 Varun A P */ .toastify{padding:12px 20px;color:#fff;display:inline-block;box-shadow:0 3px 6px -1px rgba(0,0,0,.12),0 10px 36px -4px rgba(77,96,232,.3);background:-webkit-linear-gradient(315deg,#73a5ff,#5477f5);background:linear-gradient(135deg,#73a5ff,#5477f5);position:fixed;opacity:0;transition:all .4s cubic-bezier(.215,.61,.355,1);border-radius:2px;cursor:pointer;text-decoration:none;max-width:calc(50% - 20px);z-index:2147483647}.toastify.on{opacity:1}.toast-close{opacity:.4;padding:0 5px}.toastify-right{right:15px}.toastify-left{left:15px}.toastify-top{top:-150px}.toastify-bottom{bottom:-150px}.toastify-rounded{border-radius:25px}.toastify-avatar{width:1.5em;height:1.5em;margin:-7px 5px;border-radius:2px}.toastify-center{margin-left:auto;margin-right:auto;left:0;right:0;max-width:fit-content;max-width:-moz-fit-content}@media only screen and (max-width:360px){.toastify-left,.toastify-right{margin-left:auto;margin-right:auto;left:0;right:0;max-width:fit-content}} /*# sourceMappingURL=/sm/40f738e33ed5dbe7907b48c3be4b63e977eab6cb49c8df4f76f3edc3f1f2fb0d.map */ ================================================ FILE: web/assets/packages/fluttertoast/assets/toastify.js ================================================ /** * Minified by jsDelivr using Terser v5.3.0. * Original file: /npm/toastify-js@1.9.3/src/toastify.js * * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files */ /*! * Toastify js 1.9.3 * https://github.com/apvarun/toastify-js * @license MIT licensed * * Copyright (C) 2018 Varun A P */ !function(t,o){"object"==typeof module&&module.exports?module.exports=o():t.Toastify=o()}(this,(function(t){var o=function(t){return new o.lib.init(t)};function i(t,o){return o.offset[t]?isNaN(o.offset[t])?o.offset[t]:o.offset[t]+"px":"0px"}function s(t,o){return!(!t||"string"!=typeof o)&&!!(t.className&&t.className.trim().split(/\s+/gi).indexOf(o)>-1)}return o.lib=o.prototype={toastify:"1.9.3",constructor:o,init:function(t){return t||(t={}),this.options={},this.toastElement=null,this.options.text=t.text||"Hi there!",this.options.node=t.node,this.options.duration=0===t.duration?0:t.duration||3e3,this.options.selector=t.selector,this.options.callback=t.callback||function(){},this.options.destination=t.destination,this.options.newWindow=t.newWindow||!1,this.options.close=t.close||!1,this.options.gravity="bottom"===t.gravity?"toastify-bottom":"toastify-top",this.options.positionLeft=t.positionLeft||!1,this.options.position=t.position||"",this.options.backgroundColor=t.backgroundColor,this.options.avatar=t.avatar||"",this.options.className=t.className||"",this.options.stopOnFocus=void 0===t.stopOnFocus||t.stopOnFocus,this.options.onClick=t.onClick,this.options.offset=t.offset||{x:0,y:0},this},buildToast:function(){if(!this.options)throw"Toastify is not initialized";var t=document.createElement("div");if(t.className="toastify on "+this.options.className,this.options.position?t.className+=" toastify-"+this.options.position:!0===this.options.positionLeft?(t.className+=" toastify-left",console.warn("Property `positionLeft` will be depreciated in further versions. Please use `position` instead.")):t.className+=" toastify-right",t.className+=" "+this.options.gravity,this.options.backgroundColor&&(t.style.background=this.options.backgroundColor),this.options.node&&this.options.node.nodeType===Node.ELEMENT_NODE)t.appendChild(this.options.node);else if(t.innerHTML=this.options.text,""!==this.options.avatar){var o=document.createElement("img");o.src=this.options.avatar,o.className="toastify-avatar","left"==this.options.position||!0===this.options.positionLeft?t.appendChild(o):t.insertAdjacentElement("afterbegin",o)}if(!0===this.options.close){var s=document.createElement("span");s.innerHTML="✖",s.className="toast-close",s.addEventListener("click",function(t){t.stopPropagation(),this.removeElement(this.toastElement),window.clearTimeout(this.toastElement.timeOutValue)}.bind(this));var n=window.innerWidth>0?window.innerWidth:screen.width;("left"==this.options.position||!0===this.options.positionLeft)&&n>360?t.insertAdjacentElement("afterbegin",s):t.appendChild(s)}if(this.options.stopOnFocus&&this.options.duration>0){var e=this;t.addEventListener("mouseover",(function(o){window.clearTimeout(t.timeOutValue)})),t.addEventListener("mouseleave",(function(){t.timeOutValue=window.setTimeout((function(){e.removeElement(t)}),e.options.duration)}))}if(void 0!==this.options.destination&&t.addEventListener("click",function(t){t.stopPropagation(),!0===this.options.newWindow?window.open(this.options.destination,"_blank"):window.location=this.options.destination}.bind(this)),"function"==typeof this.options.onClick&&void 0===this.options.destination&&t.addEventListener("click",function(t){t.stopPropagation(),this.options.onClick()}.bind(this)),"object"==typeof this.options.offset){var a=i("x",this.options),p=i("y",this.options),r="left"==this.options.position?a:"-"+a,l="toastify-top"==this.options.gravity?p:"-"+p;t.style.transform="translate("+r+","+l+")"}return t},showToast:function(){var t;if(this.toastElement=this.buildToast(),!(t=void 0===this.options.selector?document.body:document.getElementById(this.options.selector)))throw"Root element is not defined";return t.insertBefore(this.toastElement,t.firstChild),o.reposition(),this.options.duration>0&&(this.toastElement.timeOutValue=window.setTimeout(function(){this.removeElement(this.toastElement)}.bind(this),this.options.duration)),this},hideToast:function(){this.toastElement.timeOutValue&&clearTimeout(this.toastElement.timeOutValue),this.removeElement(this.toastElement)},removeElement:function(t){t.className=t.className.replace(" on",""),window.setTimeout(function(){this.options.node&&this.options.node.parentNode&&this.options.node.parentNode.removeChild(this.options.node),t.parentNode&&t.parentNode.removeChild(t),this.options.callback.call(t),o.reposition()}.bind(this),400)}},o.reposition=function(){for(var t,o={top:15,bottom:15},i={top:15,bottom:15},n={top:15,bottom:15},e=document.getElementsByClassName("toastify"),a=0;a0?window.innerWidth:screen.width)<=360?(e[a].style[t]=n[t]+"px",n[t]+=p+15):!0===s(e[a],"toastify-left")?(e[a].style[t]=o[t]+"px",o[t]+=p+15):(e[a].style[t]=i[t]+"px",i[t]+=p+15)}return this},o.lib.init.prototype=o.lib,o})); //# sourceMappingURL=/sm/b2692762f762f02a544ce708819ce22427514c155203d0627f14174806ee9f38.map ================================================ FILE: web/flutter_service_worker.js ================================================ 'use strict'; const MANIFEST = 'flutter-app-manifest'; const TEMP = 'flutter-temp-cache'; const CACHE_NAME = 'flutter-app-cache'; const RESOURCES = { "version.json": "1f308f6516a18ecd7674c9a450a742cd", "index.html": "9bf34098aa05b0f5daa3672d1d389d66", "/": "9bf34098aa05b0f5daa3672d1d389d66", "main.dart.js": "1b2d0e9a1e65bbc2080d47783b5ce740", "favicon.png": "884a1524c6ce95ff3b2c4d9f28bb3d6d", "icons/Icon-192.png": "2170366816d46ad1215c42f6c1aaa16a", "icons/Icon-512.png": "02722d7162edf88b761e758a44e7d1a9", "manifest.json": "1f566b509698542d126fbd8f162102f7", "assets/images/logo.png": "884a1524c6ce95ff3b2c4d9f28bb3d6d", "assets/AssetManifest.json": "852da4d3c401b4c84bb94225217e82f4", "assets/NOTICES": "dd53e653312f96c2d1fdd9b2925f9f67", "assets/FontManifest.json": "dc3d03800ccca4601324923c0b1d6d57", "assets/packages/cupertino_icons/assets/CupertinoIcons.ttf": "b14fcf3ee94e3ace300b192e9e7c8c5d", "assets/packages/fluttertoast/assets/toastify.js": "8f5ac78dd0b9b5c9959ea1ade77f68ae", "assets/packages/fluttertoast/assets/toastify.css": "8beb4c67569fb90146861e66d94163d7", "assets/fonts/MaterialIcons-Regular.otf": "4e6447691c9509f7acdbf8a931a85ca1" }; // The application shell files that are downloaded before a service worker can // start. const CORE = [ "/", "main.dart.js", "index.html", "assets/NOTICES", "assets/AssetManifest.json", "assets/FontManifest.json"]; // During install, the TEMP cache is populated with the application shell files. self.addEventListener("install", (event) => { self.skipWaiting(); return event.waitUntil( caches.open(TEMP).then((cache) => { return cache.addAll( CORE.map((value) => new Request(value, {'cache': 'reload'}))); }) ); }); // During activate, the cache is populated with the temp files downloaded in // install. If this service worker is upgrading from one with a saved // MANIFEST, then use this to retain unchanged resource files. self.addEventListener("activate", function(event) { return event.waitUntil(async function() { try { var contentCache = await caches.open(CACHE_NAME); var tempCache = await caches.open(TEMP); var manifestCache = await caches.open(MANIFEST); var manifest = await manifestCache.match('manifest'); // When there is no prior manifest, clear the entire cache. if (!manifest) { await caches.delete(CACHE_NAME); contentCache = await caches.open(CACHE_NAME); for (var request of await tempCache.keys()) { var response = await tempCache.match(request); await contentCache.put(request, response); } await caches.delete(TEMP); // Save the manifest to make future upgrades efficient. await manifestCache.put('manifest', new Response(JSON.stringify(RESOURCES))); return; } var oldManifest = await manifest.json(); var origin = self.location.origin; for (var request of await contentCache.keys()) { var key = request.url.substring(origin.length + 1); if (key == "") { key = "/"; } // If a resource from the old manifest is not in the new cache, or if // the MD5 sum has changed, delete it. Otherwise the resource is left // in the cache and can be reused by the new service worker. if (!RESOURCES[key] || RESOURCES[key] != oldManifest[key]) { await contentCache.delete(request); } } // Populate the cache with the app shell TEMP files, potentially overwriting // cache files preserved above. for (var request of await tempCache.keys()) { var response = await tempCache.match(request); await contentCache.put(request, response); } await caches.delete(TEMP); // Save the manifest to make future upgrades efficient. await manifestCache.put('manifest', new Response(JSON.stringify(RESOURCES))); return; } catch (err) { // On an unhandled exception the state of the cache cannot be guaranteed. console.error('Failed to upgrade service worker: ' + err); await caches.delete(CACHE_NAME); await caches.delete(TEMP); await caches.delete(MANIFEST); } }()); }); // The fetch handler redirects requests for RESOURCE files to the service // worker cache. self.addEventListener("fetch", (event) => { if (event.request.method !== 'GET') { return; } var origin = self.location.origin; var key = event.request.url.substring(origin.length + 1); // Redirect URLs to the index.html if (key.indexOf('?v=') != -1) { key = key.split('?v=')[0]; } if (event.request.url == origin || event.request.url.startsWith(origin + '/#') || key == '') { key = '/'; } // If the URL is not the RESOURCE list then return to signal that the // browser should take over. if (!RESOURCES[key]) { return; } // If the URL is the index.html, perform an online-first request. if (key == '/') { return onlineFirst(event); } event.respondWith(caches.open(CACHE_NAME) .then((cache) => { return cache.match(event.request).then((response) => { // Either respond with the cached resource, or perform a fetch and // lazily populate the cache. return response || fetch(event.request).then((response) => { cache.put(event.request, response.clone()); return response; }); }) }) ); }); self.addEventListener('message', (event) => { // SkipWaiting can be used to immediately activate a waiting service worker. // This will also require a page refresh triggered by the main worker. if (event.data === 'skipWaiting') { self.skipWaiting(); return; } if (event.data === 'downloadOffline') { downloadOffline(); return; } }); // Download offline will check the RESOURCES for all files not in the cache // and populate them. async function downloadOffline() { var resources = []; var contentCache = await caches.open(CACHE_NAME); var currentContent = {}; for (var request of await contentCache.keys()) { var key = request.url.substring(origin.length + 1); if (key == "") { key = "/"; } currentContent[key] = true; } for (var resourceKey of Object.keys(RESOURCES)) { if (!currentContent[resourceKey]) { resources.push(resourceKey); } } return contentCache.addAll(resources); } // Attempt to download the resource online before falling back to // the offline cache. function onlineFirst(event) { return event.respondWith( fetch(event.request).then((response) => { return caches.open(CACHE_NAME).then((cache) => { cache.put(event.request, response.clone()); return response; }); }).catch((error) => { return caches.open(CACHE_NAME).then((cache) => { return cache.match(event.request).then((response) => { if (response != null) { return response; } throw error; }); }); }) ); } ================================================ FILE: web/index.html ================================================ web ================================================ FILE: web/main.dart.js ================================================ (function dartProgram(){function copyProperties(a,b){var s=Object.keys(a) for(var r=0;r=0)return true if(typeof version=="function"&&version.length==0){var q=version() if(/^\d+\.\d+\.\d+\.\d+$/.test(q))return true}}catch(p){}return false}() function setFunctionNamesIfNecessary(a){function t(){};if(typeof t.name=="string")return for(var s=0;s")) i.a.rd(j,h) p.J(0,h) if(h.length!==0)n.B(0,j) else m.B(0,j)}l=P.cq(p,p.r,p.$ti.c) case 3:if(!l.q()){s=4 break}s=5 return P.ak(l.d.pI(),$async$ahE) case 5:s=3 break case 4:g=P.iM(n,o) p=H.aFk(g,p) f=P.aZ(t.V0) for(o=P.cq(n,n.r,n.$ti.c),l=H.u(p).h("fd<1>");o.q();){i=o.d for(e=new P.fd(p,p.r,l),e.c=p.e;e.q();){d=e.d.d if(d==null)continue d=d.c h=H.b([],d.$ti.h("o<1>")) d.a.rd(i,h) f.J(0,h)}}for(o=P.cq(f,f.r,f.$ti.c);o.q();){l=o.d $.p3().B(0,l)}if(m.a!==0||g.a!==0)if(!c.a)H.RS() else{o=$.p3() l=o.c if(!(l.gaV(l)||o.d!=null)){$.ck().$1("Could not find a set of Noto fonts to display all missing characters. Please add a font asset for the missing characters. See: https://flutter.dev/docs/cookbook/design/fonts") c.b.J(0,m)}}case 1:return P.ad(q,r)}}) return P.ae($async$ahE,r)}, aDY:function(a2,a3){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a=null,a0="Unable to parse Google Fonts CSS: ",a1=H.b([],t.Zh) for(s=P.ajR(a2),s=new P.d8(s.a(),s.$ti.h("d8<1>")),r=t.Cz,q=a,p=q,o=!1;s.q();){n=s.gw(s) if(!o){if(n!=="@font-face {")continue o=!0}else if(J.p6(n," src:")){m=C.c.eF(n,"url(") if(m===-1){$.ck().$1("Unable to resolve Noto font URL: "+n) return a}p=C.c.V(n,m+4,C.c.eF(n,")")) o=!0}else if(C.c.bv(n," unicode-range:")){q=H.b([],r) l=C.c.V(n,17,n.length-1).split(", ") for(n=l.length,k=0;k"),r=H.u(a3).h("fd<1>"),q=s==="ja",p=s==="zh-HK",o=s!=="zh-Hant",n=s!=="zh-Hans",m=s!=="zh-CN",l=s!=="zh-SG",k=s==="zh-MY",j=s!=="zh-TW",i=s==="zh-MO";a3.a!==0;){h={} C.b.sl(a1,0) for(g=new P.fd(a4,a4.r,a2),g.c=a4.e,f=0;g.q();){e=g.d for(d=new P.fd(a3,a3.r,r),d.c=a3.e,c=0;d.q();){b=d.d a=e.d if((a==null?null:a.c.a.uk(b))===!0)++c}if(c>f){C.b.sl(a1,0) a1.push(e) f=c}else if(c===f)a1.push(e)}if(f===0)break h.a=C.b.gI(a1) if(a1.length>1)if(C.b.AW(a1,new H.ahH()))if(!n||!m||!l||k){if(C.b.C(a1,$.Sf()))h.a=$.Sf()}else if(!o||!j||i){if(C.b.C(a1,$.Sg()))h.a=$.Sg()}else if(p){if(C.b.C(a1,$.Sd()))h.a=$.Sd()}else if(q)if(C.b.C(a1,$.Se()))h.a=$.Se() a3.ZT(new H.ahI(h),!0) a0.J(0,a1)}return a0}, cH:function(a,b){return new H.nB(a,b)}, H:function(a,b){return new H.h0(a,b)}, aqw:function(a,b,c){J.awn(new self.window.flutterCanvasKit.Font(c),H.b([0],t._),null,null) return new H.tX(b,a,c)}, axZ:function(a){var s=new H.l_($) s.V5(a) return s}, ay_:function(a,b,c,d,e){var s=J.k(e),r=d===C.k4?s.adq(e,0,0,{width:s.CU(e),height:s.Bp(e),alphaType:a,colorSpace:b,colorType:c}):s.a9u(e) return r==null?null:H.ha(r.buffer,0,r.length)}, aF:function(){if(self.window.flutterWebRenderer!=null){var s=self.window.flutterWebRenderer s.toString return J.d(s,"canvaskit")}s=H.el() return J.fW(C.hR.a,s)}, aFC:function(){var s,r,q={},p=new P.a1($.R,t.U) q.a=$ s=$.bD() r=s.e r.toString new H.ahW(q).$1(W.bN(r,"load",new H.ahX(new H.ahV(q),new P.aH(p,t.gR)),!1,t.L.c)) q=W.eR("flt-scene",null) $.ain=q s.OO(q) return p}, aol:function(a,b){var s,r=H.b([],b.h("o>")) a.K(0,new H.Zy(r,b)) C.b.d5(r,new H.Zz(b)) s=new H.Zx(b).$1(r) s.toString new H.Zw(b).$1(s) return new H.G6(s,b.h("G6<0>"))}, b_:function(){var s=new H.pl(C.cb,C.aA,C.bK,C.t,C.fO) s.iy(null) return s}, ay0:function(a,b){var s,r,q=new H.pm(b) q.iy(a) s=q.gZ() r=q.b J.Sw(s,$.Sh()[r.a]) return q}, rr:function(){if($.apD)return $.bw().gvD().c.push(H.aDn()) $.apD=!0}, aB_:function(a){H.rr() if(C.b.C($.yv,a))return $.yv.push(a)}, aB0:function(){var s,r if($.yw.length===0&&$.yv.length===0)return for(s=0;s<$.yw.length;++s){r=$.yw[s] r.e1(0) r.a=null}C.b.sl($.yw,0) for(s=0;s<$.yv.length;++s)$.yv[s].adP(0) C.b.sl($.yv,0)}, aj9:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){return new H.vc(b,c,d,e,f,l,k,r,g,h,j,o,s,n,p,a,m,q,i)}, alN:function(a,b){var s=H.aAW(null) if(a!=null)s.weight=$.au7()[a.a] return s}, anE:function(a){var s,r,q,p,o,n,m=null,l=H.b([],t.bY) t.m6.a(a) s=H.b([],t.up) r=H.b([],t.AT) q=$.c8 q=J.auD(J.avN(q===$?H.e(H.t("canvasKit")):q),a.a,$.oW.e) p=a.c o=a.d n=a.e r.push(H.aj9(m,m,m,m,m,m,p,m,m,o,a.f,n,m,m,m,m,m,m,m)) return new H.U6(q,a,l,s,r)}, al9:function(a,b){var s=H.b([],t.s) if(a!=null)s.push(a) if(b!=null&&!C.b.AW(b,new H.agL(a)))C.b.J(s,b) C.b.J(s,$.p0().f) return s}, anz:function(a){return new H.DE(a)}, uj:function(a){var s=new Float32Array(4) s[0]=(a.gm(a)>>>16&255)/255 s[1]=(a.gm(a)>>>8&255)/255 s[2]=(a.gm(a)&255)/255 s[3]=(a.gm(a)>>>24&255)/255 return s}, aF5:function(a,b,c,d){var s,r,q,p,o,n,m,l,k=H.asd(J.aiT(a.gZ())) if(b===0)return k s=!d.Ny() if(s)k=H.S5(d,k) r=Math.min(b*0.0078125*64,150) q=1.1*b p=-b o=p*0 n=p*-0.75 m=new P.x(k.a-1+(o-r-q)*c,k.b-1+(n-r-q)*c,k.c+1+(o+r+q)*c,k.d+1+(n+r+q)*c) if(s){l=new H.bt(new Float32Array(16)) if(l.jZ(d)!==0)return H.S5(l,m) else return m}else return m}, as9:function(a,b,c,d,e,f){var s,r,q,p=e?5:4,o=P.aI(C.d.aO((c.gm(c)>>>24&255)*0.039),c.gm(c)>>>16&255,c.gm(c)>>>8&255,c.gm(c)&255),n=P.aI(C.d.aO((c.gm(c)>>>24&255)*0.25),c.gm(c)>>>16&255,c.gm(c)>>>8&255,c.gm(c)&255),m={ambient:H.uj(o),spot:H.uj(n)},l=$.c8,k=J.auT(l===$?H.e(H.t("canvasKit")):l,m) l=b.gZ() s=new Float32Array(3) s[2]=f*d r=new Float32Array(3) r[0]=0 r[1]=-450 r[2]=f*600 q=J.k(k) J.auY(a,l,s,r,f*1.1,q.ga7a(k),q.gR_(k),p)}, aoY:function(){var s=H.bV() return s===C.bw||window.navigator.clipboard==null?new H.WK():new H.Uk()}, Cv:function(a,b,c,d){var s,r,q,p,o,n,m,l,k,j,i,h=t.C.a($.bD().iK(0,c)),g=b.b===C.ab,f=b.c if(f==null)f=0 s=a.a r=a.c q=Math.min(H.B(s),H.B(r)) p=Math.max(H.B(s),H.B(r)) r=a.b s=a.d o=Math.min(H.B(r),H.B(s)) n=Math.max(H.B(r),H.B(s)) if(d.q6(0))if(g){s=f/2 m="translate("+H.c(q-s)+"px, "+H.c(o-s)+"px)"}else m="translate("+H.c(q)+"px, "+H.c(o)+"px)" else{s=new Float32Array(16) l=new H.bt(s) l.bC(d) if(g){r=f/2 l.af(0,q-r,o-r)}else l.af(0,q,o) m=H.ir(s)}k=h.style k.position="absolute" C.e.a_(k,C.e.R(k,"transform-origin"),"0 0 0","") C.e.a_(k,C.e.R(k,"transform"),m,"") s=b.r if(s==null)j="#000000" else{s=H.cs(s) s.toString j=s}s=b.y if(s!=null){i=s.b s=H.bV() if(s===C.W&&!g){s="0px 0px "+H.c(i*2)+"px "+j C.e.a_(k,C.e.R(k,"box-shadow"),s,"") s=b.r if(s==null)s=C.t s=H.cs(new P.C(((C.d.aO((1-Math.min(Math.sqrt(i)/6.283185307179586,1))*(s.gm(s)>>>24&255))&255)<<24|s.gm(s)&16777215)>>>0)) s.toString j=s}else{s="blur("+H.c(i)+"px)" C.e.a_(k,C.e.R(k,"filter"),s,"")}}s=p-q if(g){s=H.c(s-f)+"px" k.width=s s=H.c(n-o-f)+"px" k.height=s s=H.kC(f)+" solid "+j k.border=s}else{s=H.c(s)+"px" k.width=s s=H.c(n-o)+"px" k.height=s k.backgroundColor=j}return h}, ar1:function(a,b){var s,r,q=b.e,p=b.r if(q===p){s=b.Q if(q===s){r=b.y s=q===r&&q===b.f&&p===b.x&&s===b.ch&&r===b.z}else s=!1}else s=!1 if(s){q=H.kC(b.Q) a.toString C.e.a_(a,C.e.R(a,"border-radius"),q,"") return}q=H.kC(q)+" "+H.kC(b.f) a.toString C.e.a_(a,C.e.R(a,"border-top-left-radius"),q,"") p=H.kC(p)+" "+H.kC(b.x) C.e.a_(a,C.e.R(a,"border-top-right-radius"),p,"") p=H.kC(b.Q)+" "+H.kC(b.ch) C.e.a_(a,C.e.R(a,"border-bottom-left-radius"),p,"") p=H.kC(b.y)+" "+H.kC(b.z) C.e.a_(a,C.e.R(a,"border-bottom-right-radius"),p,"")}, kC:function(a){return C.d.ba(a===0?1:a,3)+"px"}, arD:function(a,b,c,d){var s,r,q,p=new P.c6(""),o='' p.a=o o=p.a=o+"' o=p.a=o+"" return W.vH(o.charCodeAt(0)==0?o:o,new H.oI(),null)}, ayo:function(){var s,r=document.body r.toString r=new H.F2(r) r.e7(0) s=$.rQ if(s!=null)J.c9(s.a) $.rQ=null s=new H.a3G(10,P.y(t.UY,t.R3),W.eR("flt-ruler-host",null)) s.EM() $.rQ=s return r}, cA:function(a,b,c){var s if(c==null)a.style.removeProperty(b) else{s=a.style s.toString C.e.a_(s,C.e.R(s,b),c,null)}}, VJ:function(a,b){var s=H.bV() if(s===C.W){s=a.style s.toString C.e.a_(s,C.e.R(s,"-webkit-clip-path"),b,null)}s=a.style s.toString C.e.a_(s,C.e.R(s,"clip-path"),b,null)}, F3:function(a,b,c,d,e,f,g,h,i){var s=$.anS if(s==null?$.anS=a.ellipse!=null:s)a.ellipse(b,c,d,e,f,g,h,i) else{a.save() a.translate(b,c) a.rotate(f) a.scale(d,e) a.arc(0,0,1,g,h,i) a.restore()}}, ayp:function(a){switch(a){case"DeviceOrientation.portraitUp":return"portrait-primary" case"DeviceOrientation.landscapeLeft":return"portrait-secondary" case"DeviceOrientation.portraitDown":return"landscape-primary" case"DeviceOrientation.landscapeRight":return"landscape-secondary" default:return null}}, S6:function(a,b){var s if(b.k(0,C.i))return a s=new H.bt(new Float32Array(16)) s.bC(a) s.CF(0,b.a,b.b,0) return s}, arg:function(a,b,c){var s=a.P7() if(c!=null)H.alJ(s,H.S6(c,b).a) return s}, as1:function(a,b){var s,r=b.dt(0),q=r.c,p=r.d,o=H.alh(b,0,0,1/q,1/p) H.VJ(a,"url(#svgClip"+$.RL+")") s=a.style q=H.c(q)+"px" s.width=q q=H.c(p)+"px" s.height=q return o}, ar4:function(a,b,c){var s=$.eU+1 $.eU=s s=u.u+s+u.p+H.c(H.cs(a))+'" flood-opacity="1" result="flood">' return s+(c?'':'')+""}, ajc:function(a,b,c){var s,r,q,p,o,n,m if(0===b){c.push(new P.m(a.c,a.d)) c.push(new P.m(a.e,a.f)) return}s=new H.LA() a.Fx(s) r=s.a r.toString q=s.b q.toString p=a.b o=a.f if(H.dk(p,a.d,o)){n=r.f if(!H.dk(p,n,o))m=r.f=q.b=Math.abs(n-p)0){s=b[7] b[9]=s b[5]=s if(o===2){s=b[13] b[15]=s b[11]=s}}return o}, aD5:function(b0,b1,b2){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9=b0.length if(0===a9)for(s=0;s<8;++s)b2[s]=b1[s] else{r=b0[0] for(q=a9-1,p=0,s=0;s0))return 0 s=1 r=0}q=h-i p=g-h o=f-g do{n=(r+s)/2 m=i+q*n l=h+p*n k=m+(l-m)*n j=k+(l+(g+o*n-l)*n-k)*n if(j===0)return n if(j<0)s=n else r=n}while(Math.abs(r-s)>0.0000152587890625) return(s+r)/2}, ari:function(a,b,c,d,e){return(((d+3*(b-c)-a)*e+3*(c-b-b+a))*e+3*(b-a))*e+a}, akq:function(){var s=new H.oe(H.ap0(),C.bp) s.IP() return s}, ags:function(a,b,c,d){var s=a+b if(s<=c)return d return Math.min(c/s,d)}, aqC:function(a,b,c,d,e,f){return new H.aex(e-2*c+a,f-2*d+b,2*(c-a),2*(d-b),a,b)}, ap0:function(){var s=new Float32Array(16) s=new H.qx(s,new Uint8Array(8)) s.e=s.c=8 s.fr=172 return s}, azJ:function(a,b,c){var s,r,q,p=a.d,o=a.c,n=new Float32Array(o*2),m=a.f for(s=p*2,r=0;r0?1:0 return s}, RW:function(a,b){var s if(a<0){a=-a b=-b}if(b===0||a===0||a>=b)return null s=a/b if(isNaN(s))return null if(s===0)return null return s}, aDP:function(a){var s,r,q=a.e,p=a.r if(q+p!==a.c-a.a)return!1 s=a.f r=a.x if(s+r!==a.d-a.b)return!1 if(q!==a.Q||p!==a.y||s!==a.ch||r!==a.z)return!1 return!0}, a12:function(a,b,c,d,e,f){if(d==f)return H.dk(c,a,e)&&a!=e else return a==c&&b==d}, azK:function(a){var s,r,q,p,o=a[0],n=a[1],m=a[2],l=a[3],k=a[4],j=a[5],i=n-l,h=H.RW(i,i-l+j) if(h!=null){s=o+h*(m-o) r=n+h*(l-n) q=m+h*(k-m) p=l+h*(j-l) a[2]=s a[3]=r a[4]=s+h*(q-s) a[5]=r+h*(p-r) a[6]=q a[7]=p a[8]=k a[9]=j return 1}a[3]=Math.abs(i)=q}, ap_:function(a,b){var s=new H.a10(a,!0,a.x) if(a.ch)a.xt() if(!a.cx)s.Q=a.x return s}, aGa:function(a,b,c,d){var s,r,q,p,o=a[1],n=a[3] if(!H.dk(o,c,n))return s=a[0] r=a[2] if(!H.dk(s,b,r))return q=r-s p=n-o if(!(Math.abs((b-s)*p-q*(c-o))<0.000244140625))return d.push(new P.m(q,p))}, aGb:function(a,b,c,d){var s,r,q,p,o,n,m,l,k,j,i=a[1],h=a[3],g=a[5] if(!H.dk(i,c,h)&&!H.dk(h,c,g))return s=a[0] r=a[2] q=a[4] if(!H.dk(s,b,r)&&!H.dk(r,b,q))return p=new H.kw() o=p.kc(i-2*h+g,2*(h-i),i-c) for(n=q-2*r+s,m=2*(r-s),l=0;l30)C.b.eH($.kF,0).d.p(0)}else a.d.p(0)}}, a17:function(a,b){if(a<=0)return b*0.1 else return Math.min(Math.max(b*0.5,a*10),b)}, aD6:function(a7,a8,a9){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5,a6 if(a7==null||a7.Ny())return 1 s=a7.a r=s[12] q=s[15] p=r*q o=s[13] n=o*q m=s[3] l=m*a8 k=s[7] j=k*a9 i=1/(l+j+q) h=s[0] g=h*a8 f=s[4] e=f*a9 d=(g+e+r)*i c=s[1] b=c*a8 a=s[5] a0=a*a9 a1=(b+a0+o)*i a2=Math.min(p,d) a3=Math.max(p,d) a4=Math.min(n,a1) a5=Math.max(n,a1) i=1/(m*0+j+q) d=(h*0+e+r)*i a1=(c*0+a0+o)*i p=Math.min(a2,d) a3=Math.max(a3,d) n=Math.min(a4,a1) a5=Math.max(a5,a1) i=1/(l+k*0+q) d=(g+f*0+r)*i a1=(b+a*0+o)*i p=Math.min(p,d) a3=Math.max(a3,d) n=Math.min(n,a1) a6=Math.min((a3-p)/a8,(Math.max(a5,a1)-n)/a9) if(a6<1e-9||a6===1)return 1 if(a6>1){a6=Math.min(4,C.d.ey(a6/2)*2) r=a8*a9 if(r*a6*a6>4194304&&a6>2)a6=3355443.2/r}else a6=Math.max(2/C.d.dC(2/a6),0.0001) return a6}, oT:function(a,b){var s=a<0?0:a,r=b<0?0:b return s*s+r*r}, Cz:function(a){var s,r=a.a,q=r.y,p=q!=null?0+q.b*2:0 r=r.c s=r==null if((s?0:r)!==0)p+=(s?0:r)*0.70710678118 return p}, aqf:function(){var s=$.akE return s===$?H.e(H.t("_programCache")):s}, azF:function(a0,a1){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a if(a1==null)a1=C.rp s=a0.length r=a1[0]!==0 q=C.b.gL(a1)!==1 p=r?s+1:s if(q)++p o=p*4 n=new Float32Array(o) m=new Float32Array(o) o=p-1 l=C.f.cr(o,4) k=new Float32Array(4*(l+1)) if(r){l=a0[0].a n[0]=(l>>>16&255)/255 n[1]=(l>>>8&255)/255 n[2]=(l&255)/255 n[3]=(l>>>24&255)/255 k[0]=0 j=4 i=1}else{j=0 i=0}for(l=a0.length,h=0;h>>16&255)/255 j=g+1 n[g]=(f>>>8&255)/255 g=j+1 n[j]=(f&255)/255 j=g+1 n[g]=(f>>>24&255)/255}for(l=a1.length,h=0;h>>16&255)/255 j=g+1 n[g]=(l>>>8&255)/255 n[j]=(l&255)/255 n[j+1]=(l>>>24&255)/255 k[i]=1}d=4*o for(c=0;c>>2 m[c]=(n[c+4]-n[c])/(k[i+1]-k[i])}m[d]=0 m[d+1]=0 m[d+2]=0 m[d+3]=0 for(c=0;c1)C.b.d5(p,new H.ahs()) for(p=$.ah5,o=p.length,r=0;r1)s.push(new P.jS(C.b.gI(o),C.b.gL(o))) else s.push(new P.jS(p,null))}return s}, aDF:function(a,b){var s=a.fV(b),r=P.as8(s.b) switch(s.a){case"setDevicePixelRatio":$.b4().x=r $.bw().f.$0() return!0}return!1}, S_:function(a,b){if(a==null)return if(b===$.R)a.$0() else b.kC(a)}, S0:function(a,b,c,d){if(a==null)return if(b===$.R)a.$1(c) else b.lN(a,c,d)}, kI:function(a,b,c,d,e){if(a==null)return if(b===$.R)a.$3(c,d,e) else b.kC(new H.ai1(a,c,d,e))}, aF6:function(a){switch(a){case 0:return 1 case 1:return 4 case 2:return 2 default:return C.f.QK(1,a)}}, t6:function(a){var s=J.aiY(a) return P.cJ(C.d.cU((a-s)*1000),s)}, aiq:function(a,b){var s=b.$0() return s}, aDw:function(){if($.bw().dx==null)return $.alm=C.d.cU(window.performance.now()*1000)}, aDu:function(){if($.bw().dx==null)return $.akY=C.d.cU(window.performance.now()*1000)}, arl:function(){if($.bw().dx==null)return $.akX=C.d.cU(window.performance.now()*1000)}, arm:function(){if($.bw().dx==null)return $.ali=C.d.cU(window.performance.now()*1000)}, aDv:function(){var s,r,q=$.bw() if(q.dx==null)return s=$.arE=C.d.cU(window.performance.now()*1000) $.al7.push(new P.jH(H.b([$.alm,$.akY,$.akX,$.ali,s],t._))) $.arE=$.ali=$.akX=$.akY=$.alm=-1 if(s-$.atU()>1e5){$.aDt=s r=$.al7 H.S0(q.dx,q.dy,r,t.Px) $.al7=H.b([],t.no)}}, aE4:function(){return C.d.cU(window.performance.now()*1000)}, axp:function(){var s=new H.Sx() s.UW() return s}, aD3:function(a){var s=a.a s.toString if((s&256)!==0)return C.iu else if((s&65536)!==0)return C.iv else return C.it}, az0:function(a){var s=new H.q0(W.Zr(),a) s.VK(a) return s}, a4v:function(a){var s=a.style s.removeProperty("transform-origin") s.removeProperty("transform") s=H.el() if(s!==C.bG){s=H.el() s=s===C.bH}else s=!0 if(s){s=a.style s.top="0px" s.left="0px"}else{s=a.style s.removeProperty("top") s.removeProperty("left")}}, l7:function(){var s=t.bo,r=H.b([],t.eE),q=H.b([],t.u),p=H.el() p=J.fW(C.hR.a,p)?new H.Vg():new H.a_N() p=new H.WC(P.y(s,t.lk),P.y(s,t.UF),r,q,new H.WF(),new H.a4r(p),C.be,H.b([],t.U9)) p.Vt() return p}, aso:function(a){var s,r,q,p,o,n,m,l,k=a.length,j=t._,i=H.b([],j),h=H.b([0],j) for(s=0,r=0;r=h.length)h.push(r) else h[o]=r if(o>s)s=o}m=P.b6(s,0,!1,t.S) l=h[s] for(r=s-1;r>=0;--r){m[r]=l l=i[l]}return m}, akB:function(){var s=new Uint8Array(0),r=new DataView(new ArrayBuffer(8)) return new H.a80(new H.Kn(s,0),r,H.cK(r.buffer,0,null))}, arW:function(a){if(a===0)return C.i return new P.m(200*a/600,400*a/600)}, aF4:function(a,b){var s,r,q,p,o,n if(b===0)return a s=a.c r=a.a q=a.d p=a.b o=b*((800+(s-r)*0.5)/600) n=b*((800+(q-p)*0.5)/600) return new P.x(r-o,p-n,s+o,q+n).bJ(H.arW(b))}, alv:function(a,b){if(b===0)return null return new H.a6G(Math.min(b*((800+(a.c-a.a)*0.5)/600),b*((800+(a.d-a.b)*0.5)/600)),H.arW(b))}, alp:function(a,b,c,d){var s,r,q,p="box-shadow",o=H.alv(b,c) if(o==null){s=a.style s.toString C.e.a_(s,C.e.R(s,p),"none","")}else{d=H.alM(d) s=a.style r=o.b q=d.a q=H.c(r.a)+"px "+H.c(r.b)+"px "+H.c(o.a)+"px 0px rgba("+(q>>>16&255)+", "+(q>>>8&255)+", "+(q&255)+", "+H.c((q>>>24&255)/255)+")" s.toString C.e.a_(s,C.e.R(s,p),q,"")}}, alM:function(a){var s=a.a return new P.C(((C.d.aO(0.3*(s>>>24&255))&255)<<24|s&16777215)>>>0)}, ayR:function(){var s=t.mo if($.am8())return new H.FJ(H.b([],s)) else return new H.OF(H.b([],s))}, ajQ:function(a,b,c,d,e,f){return new H.a_d(H.b([],t.Aw),H.b([],t.Kd),e,a,b,f,d,c,f)}, alE:function(a,b,a0){var s,r,q,p,o,n,m,l,k,j,i,h,g,f=H.ahM(a,b),e=$.Sk().pY(f),d=e===C.el?C.eg:null,c=e===C.h0 if(e===C.fX||c)e=C.b2 for(s=a.length,r=b,q=r,p=null,o=0;b65535?b+1:b)+1 m=e===C.el l=!m if(l)d=null f=H.ahM(a,b) k=$.Sk().pY(f) j=k===C.h0 if(e===C.d6||e===C.eh)return new H.dc(b,r,q,C.bj) if(e===C.ek)if(k===C.d6)continue else return new H.dc(b,r,q,C.bj) if(l)q=b if(k===C.d6||k===C.eh||k===C.ek){r=b continue}if(b>=s)return new H.dc(s,b,q,C.aR) if(k===C.el){d=m?d:e r=b continue}if(k===C.ee){r=b continue}if(e===C.ee||d===C.ee)return new H.dc(b,b,q,C.cn) if(k===C.fX||j){if(!m){if(n)--o r=b k=e continue}k=C.b2}if(c){r=b continue}if(k===C.eg||e===C.eg){r=b continue}if(e===C.fZ){r=b continue}if(!(!l||e===C.ea||e===C.d5)&&k===C.fZ){r=b continue}if(k===C.ec||k===C.cp||k===C.kd||k===C.eb||k===C.fY){r=b continue}if(e===C.co||d===C.co){r=b continue}n=e!==C.em if((!n||d===C.em)&&k===C.co){r=b continue}l=e!==C.ec if((!l||d===C.ec||e===C.cp||d===C.cp)&&k===C.h_){r=b continue}if((e===C.ef||d===C.ef)&&k===C.ef){r=b continue}if(m)return new H.dc(b,b,q,C.cn) if(!n||k===C.em){r=b continue}if(e===C.h2||k===C.h2)return new H.dc(b,b,q,C.cn) if(k===C.ea||k===C.d5||k===C.h_||e===C.kb){r=b continue}if(p===C.aH)n=e===C.d5||e===C.ea else n=!1 if(n){r=b continue}n=e===C.fY if(n&&k===C.aH){r=b continue}if(k===C.kc){r=b continue}m=e!==C.b2 if(!((!m||e===C.aH)&&k===C.bB))if(e===C.bB)i=k===C.b2||k===C.aH else i=!1 else i=!0 if(i){r=b continue}i=e===C.en if(i)h=k===C.h1||k===C.ei||k===C.ej else h=!1 if(h){r=b continue}if((e===C.h1||e===C.ei||e===C.ej)&&k===C.bX){r=b continue}h=!i if(!h||e===C.bX)g=k===C.b2||k===C.aH else g=!1 if(g){r=b continue}if(!m||e===C.aH)g=k===C.en||k===C.bX else g=!1 if(g){r=b continue}if(!l||e===C.cp||e===C.bB)l=k===C.bX||k===C.en else l=!1 if(l){r=b continue}l=e!==C.bX if((!l||i)&&k===C.co){r=b continue}if((!l||!h||e===C.d5||e===C.eb||e===C.bB||n)&&k===C.bB){r=b continue}n=e===C.ed if(n)l=k===C.ed||k===C.d7||k===C.d9||k===C.da else l=!1 if(l){r=b continue}l=e!==C.d7 if(!l||e===C.d9)h=k===C.d7||k===C.d8 else h=!1 if(h){r=b continue}h=e!==C.d8 if((!h||e===C.da)&&k===C.d8){r=b continue}if((n||!l||!h||e===C.d9||e===C.da)&&k===C.bX){r=b continue}if(i)n=k===C.ed||k===C.d7||k===C.d8||k===C.d9||k===C.da else n=!1 if(n){r=b continue}if(!m||e===C.aH)n=k===C.b2||k===C.aH else n=!1 if(n){r=b continue}if(e===C.eb)n=k===C.b2||k===C.aH else n=!1 if(n){r=b continue}if(!m||e===C.aH||e===C.bB)if(k===C.co){n=C.c.al(a,b) if(n!==9001)if(!(n>=12296&&n<=12317))n=n>=65047&&n<=65378 else n=!0 else n=!0 n=!n}else n=!1 else n=!1 if(n){r=b continue}if(e===C.cp){n=C.c.al(a,b-1) if(n!==9001)if(!(n>=12296&&n<=12317))n=n>=65047&&n<=65378 else n=!0 else n=!0 if(!n)n=k===C.b2||k===C.aH||k===C.bB else n=!1}else n=!1 if(n){r=b continue}if(k===C.h3)if((o&1)===1){r=b continue}else return new H.dc(b,b,q,C.cn) if(e===C.ei&&k===C.ej){r=b continue}return new H.dc(b,b,q,C.cn)}return new H.dc(s,r,q,C.aR)}, aE2:function(a){var s=$.Sk().pY(a) return s===C.eh||s===C.d6||s===C.ek}, aAC:function(){var s=new H.y8(W.eR("flt-ruler-host",null)) s.EM() return s}, rP:function(a){var s,r=$.b4().gij() if(!r.gO(r))if($.a7T.a){s=a.b r=a.c!=null&&s.Q==null&&s.z==null}else r=!1 else r=!1 if(r){r=$.anA return r==null?$.anA=new H.TW(W.v5(null,null).getContext("2d")):r}r=$.anU return r==null?$.anU=new H.VM():r}, anT:function(a,b){if(a<=b)return b if(a-b<2)return a throw H.a(P.cF("minIntrinsicWidth ("+H.c(a)+") is greater than maxIntrinsicWidth ("+H.c(b)+")."))}, me:function(a,b,c,d,e){var s,r,q if(c===d)return 0 s=a.font if(c===$.arw&&d===$.arv&&b==$.arx&&s==$.aru)r=$.ary else{q=a.measureText(c===0&&d===b.length?b:J.e7(b,c,d)).width q.toString r=q}$.arw=c $.arv=d $.arx=b $.aru=s $.ary=r if(e==null)e=0 return C.d.aO((e!==0?r+e*(d-c):r)*100)/100}, aDs:function(a,b,c,d){while(!0){if(!(b=a.length)return null s=J.CU(a,b) if((s&63488)===55296&&b>>6&31)+1<<16|(s&63)<<10|C.c.al(a,b+1)&1023 return s}, apX:function(a,b,c,d,e){return new H.Kp(H.aEu(a,b,c,e),d,P.y(t.S,e),e.h("Kp<0>"))}, aEu:function(a,b,c,d){var s,r,q,p,o,n=H.b([],d.h("o>")),m=a.length for(s=d.h("zl<0>"),r=0;r=0&&q<=r))break q+=s if(H.aBI(b,q))break}return H.uh(q,0,r)}, aBI:function(a,b){var s,r,q,p,o,n,m,l,k,j=null if(b<=0||b>=a.length)return!0 s=b-1 if((C.c.al(a,s)&63488)===55296)return!1 r=$.CQ().uS(0,a,b) q=$.CQ().uS(0,a,s) if(q===C.eQ&&r===C.eR)return!1 if(H.dw(q,C.ir,C.eQ,C.eR,j,j))return!0 if(H.dw(r,C.ir,C.eQ,C.eR,j,j))return!0 if(q===C.iq&&r===C.iq)return!1 if(H.dw(r,C.dD,C.dE,C.dC,j,j))return!1 for(p=0;H.dw(q,C.dD,C.dE,C.dC,j,j);){++p s=b-p-1 if(s<0)return!0 o=$.CQ() o.toString n=H.ahM(a,s) q=n==null?o.b:o.pY(n)}if(H.dw(q,C.aY,C.aq,j,j,j)&&H.dw(r,C.aY,C.aq,j,j,j))return!1 m=0 do{++m l=$.CQ().uS(0,a,b+m)}while(H.dw(l,C.dD,C.dE,C.dC,j,j)) do{++p k=$.CQ().uS(0,a,b-p-1)}while(H.dw(k,C.dD,C.dE,C.dC,j,j)) if(H.dw(q,C.aY,C.aq,j,j,j)&&H.dw(r,C.io,C.dB,C.cK,j,j)&&H.dw(l,C.aY,C.aq,j,j,j))return!1 if(H.dw(k,C.aY,C.aq,j,j,j)&&H.dw(q,C.io,C.dB,C.cK,j,j)&&H.dw(r,C.aY,C.aq,j,j,j))return!1 s=q===C.aq if(s&&r===C.cK)return!1 if(s&&r===C.im&&l===C.aq)return!1 if(k===C.aq&&q===C.im&&r===C.aq)return!1 s=q===C.bt if(s&&r===C.bt)return!1 if(H.dw(q,C.aY,C.aq,j,j,j)&&r===C.bt)return!1 if(s&&H.dw(r,C.aY,C.aq,j,j,j))return!1 if(k===C.bt&&H.dw(q,C.ip,C.dB,C.cK,j,j)&&r===C.bt)return!1 if(s&&H.dw(r,C.ip,C.dB,C.cK,j,j)&&l===C.bt)return!1 if(q===C.dF&&r===C.dF)return!1 if(H.dw(q,C.aY,C.aq,C.bt,C.dF,C.eP)&&r===C.eP)return!1 if(q===C.eP&&H.dw(r,C.aY,C.aq,C.bt,C.dF,j))return!1 return!0}, dw:function(a,b,c,d,e,f){if(a===b)return!0 if(a===c)return!0 if(d!=null&&a===d)return!0 if(e!=null&&a===e)return!0 if(f!=null&&a===f)return!0 return!1}, ao1:function(a,b){switch(a){case"TextInputType.number":return b?C.o4:C.op case"TextInputType.phone":return C.ot case"TextInputType.emailAddress":return C.oc case"TextInputType.url":return C.oy case"TextInputType.multiline":return C.on case"TextInputType.text":default:return C.ox}}, aBk:function(a){var s if(a==="TextCapitalization.words")s=C.i_ else if(a==="TextCapitalization.characters")s=C.i1 else s=a==="TextCapitalization.sentences"?C.i0:C.eJ return new H.yX(s)}, aDl:function(a){}, RO:function(a,b){var s,r="transparent",q="none",p=a.style p.whiteSpace="pre-wrap" C.e.a_(p,C.e.R(p,"align-content"),"center","") p.padding="0" C.e.a_(p,C.e.R(p,"opacity"),"1","") p.color=r p.backgroundColor=r p.background=r p.outline=q p.border=q C.e.a_(p,C.e.R(p,"resize"),q,"") p.width="0" p.height="0" C.e.a_(p,C.e.R(p,"text-shadow"),r,"") C.e.a_(p,C.e.R(p,"transform-origin"),"0 0 0","") if(b){p.top="-9999px" p.left="-9999px"}s=H.bV() if(s!==C.bv){s=H.bV() if(s!==C.bN){s=H.bV() s=s===C.W}else s=!0}else s=!0 if(s)a.classList.add("transparentTextEditing") C.e.a_(p,C.e.R(p,"caret-color"),r,null)}, ayA:function(a,a0){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b if(a==null)return null s=t.N r=P.y(s,t.C) q=P.y(s,t.M1) p=document.createElement("form") p.noValidate=!0 p.method="post" p.action="#" C.jW.jJ(p,"submit",new H.Wn()) H.RO(p,!1) o=J.wm(0,s) n=H.aj2(a,C.ma) if(a0!=null)for(s=J.CT(a0,t.b),s=new H.bj(s,s.gl(s),H.u(s).h("bj")),m=n.b;s.q();){l=s.d k=J.ag(l) j=k.i(l,"autofill") i=k.i(l,"textCapitalization") if(i==="TextCapitalization.words")i=C.i_ else if(i==="TextCapitalization.characters")i=C.i1 else i=i==="TextCapitalization.sentences"?C.i0:C.eJ h=H.aj2(j,new H.yX(i)) i=h.b o.push(i) if(i!=m){g=H.ao1(J.aS(k.i(l,"inputType"),"name"),!1).Aq() h.a.e_(g) h.e_(g) H.RO(g,!1) q.n(0,i,h) r.n(0,i,g) p.appendChild(g)}}else o.push(n.b) C.b.ha(o) for(s=o.length,f=0,m="";f0)m+="*" m+=H.c(e)}d=m.charCodeAt(0)==0?m:m c=$.CP().i(0,d) if(c!=null)C.jW.c4(c) b=W.Zr() H.RO(b,!0) b.className="submitBtn" b.type="submit" p.appendChild(b) return new H.Wk(p,r,q,d)}, aj2:function(a,b){var s,r,q,p=J.ag(a),o=p.i(a,"uniqueIdentifier") o.toString s=p.i(a,"hints") r=H.anX(p.i(a,"editingValue")) p=$.asO() q=J.aS(s,0) p=p.a.i(0,q) return new H.Di(r,o,b,p==null?q:p)}, ajg:function(a,b,c){var s=a==null,r=s?0:a,q=b==null,p=q?0:b p=Math.max(0,Math.min(r,p)) s=s?0:a r=q?0:b return new H.pJ(c,p,Math.max(0,Math.max(s,r)))}, anX:function(a){var s=J.ag(a) return H.ajg(s.i(a,"selectionBase"),s.i(a,"selectionExtent"),s.i(a,"text"))}, anW:function(a,b){var s if(t.Zb.b(a)){s=a.value return H.ajg(a.selectionStart,a.selectionEnd,s)}else if(t.S0.b(a)){s=a.value return H.ajg(a.selectionStart,a.selectionEnd,s)}else throw H.a(P.F("Initialized with unsupported input type"))}, aok:function(a){var s,r,q,p,o,n="inputType",m="autofill",l=J.ag(a),k=J.aS(l.i(a,n),"name"),j=J.aS(l.i(a,n),"decimal") k=H.ao1(k,j==null?!1:j) j=l.i(a,"inputAction") if(j==null)j="TextInputAction.done" s=l.i(a,"obscureText") if(s==null)s=!1 r=l.i(a,"readOnly") if(r==null)r=!1 q=l.i(a,"autocorrect") if(q==null)q=!0 p=H.aBk(l.i(a,"textCapitalization")) o=l.am(a,m)?H.aj2(l.i(a,m),C.ma):null return new H.Zq(k,j,r,s,q,o,H.ayA(l.i(a,m),l.i(a,"fields")),p)}, ayU:function(a){return new H.FO(a,H.b([],t.Iu))}, alJ:function(a,b){var s,r=a.style r.toString C.e.a_(r,C.e.R(r,"transform-origin"),"0 0 0","") s=H.ir(b) C.e.a_(r,C.e.R(r,"transform"),s,"")}, ir:function(a){var s=H.air(a) if(s===C.ml)return"matrix("+H.c(a[0])+","+H.c(a[1])+","+H.c(a[4])+","+H.c(a[5])+","+H.c(a[12])+","+H.c(a[13])+")" else if(s===C.eL)return H.aFo(a) else return"none"}, air:function(a){if(!(a[15]===1&&a[14]===0&&a[11]===0&&a[10]===1&&a[9]===0&&a[8]===0&&a[7]===0&&a[6]===0&&a[3]===0&&a[2]===0))return C.eL if(a[0]===1&&a[1]===0&&a[4]===0&&a[5]===1&&a[12]===0&&a[13]===0)return C.mk else return C.ml}, aFo:function(a){var s,r,q=a[0] if(q===1&&a[1]===0&&a[2]===0&&a[3]===0&&a[4]===0&&a[5]===1&&a[6]===0&&a[7]===0&&a[8]===0&&a[9]===0&&a[10]===1&&a[11]===0&&a[14]===0&&a[15]===1){s=a[12] r=a[13] return"translate3d("+H.c(s)+"px, "+H.c(r)+"px, 0px)"}else return"matrix3d("+H.c(q)+","+H.c(a[1])+","+H.c(a[2])+","+H.c(a[3])+","+H.c(a[4])+","+H.c(a[5])+","+H.c(a[6])+","+H.c(a[7])+","+H.c(a[8])+","+H.c(a[9])+","+H.c(a[10])+","+H.c(a[11])+","+H.c(a[12])+","+H.c(a[13])+","+H.c(a[14])+","+H.c(a[15])+")"}, S5:function(a,b){var s=$.aui() s[0]=b.a s[1]=b.b s[2]=b.c s[3]=b.d H.alO(a,s) return new P.x(s[0],s[1],s[2],s[3])}, alO:function(a1,a2){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0=$.am5() a0[0]=a2[0] a0[4]=a2[1] a0[8]=0 a0[12]=1 a0[1]=a2[2] a0[5]=a2[1] a0[9]=0 a0[13]=1 a0[2]=a2[0] a0[6]=a2[3] a0[10]=0 a0[14]=1 a0[3]=a2[2] a0[7]=a2[3] a0[11]=0 a0[15]=1 s=$.auh().a r=s[0] q=s[4] p=s[8] o=s[12] n=s[1] m=s[5] l=s[9] k=s[13] j=s[2] i=s[6] h=s[10] g=s[14] f=s[3] e=s[7] d=s[11] c=s[15] b=a1.a s[0]=r*b[0]+q*b[4]+p*b[8]+o*b[12] s[4]=r*b[1]+q*b[5]+p*b[9]+o*b[13] s[8]=r*b[2]+q*b[6]+p*b[10]+o*b[14] s[12]=r*b[3]+q*b[7]+p*b[11]+o*b[15] s[1]=n*b[0]+m*b[4]+l*b[8]+k*b[12] s[5]=n*b[1]+m*b[5]+l*b[9]+k*b[13] s[9]=n*b[2]+m*b[6]+l*b[10]+k*b[14] s[13]=n*b[3]+m*b[7]+l*b[11]+k*b[15] s[2]=j*b[0]+i*b[4]+h*b[8]+g*b[12] s[6]=j*b[1]+i*b[5]+h*b[9]+g*b[13] s[10]=j*b[2]+i*b[6]+h*b[10]+g*b[14] s[14]=j*b[3]+i*b[7]+h*b[11]+g*b[15] s[3]=f*b[0]+e*b[4]+d*b[8]+c*b[12] s[7]=f*b[1]+e*b[5]+d*b[9]+c*b[13] s[11]=f*b[2]+e*b[6]+d*b[10]+c*b[14] s[15]=f*b[3]+e*b[7]+d*b[11]+c*b[15] a=b[15] if(a===0)a=1 a2[0]=Math.min(Math.min(Math.min(a0[0],a0[1]),a0[2]),a0[3])/a a2[1]=Math.min(Math.min(Math.min(a0[4],a0[5]),a0[6]),a0[7])/a a2[2]=Math.max(Math.max(Math.max(a0[0],a0[1]),a0[2]),a0[3])/a a2[3]=Math.max(Math.max(Math.max(a0[4],a0[5]),a0[6]),a0[7])/a}, asz:function(a,b){return a.a<=b.a&&a.b<=b.b&&a.c>=b.c&&a.d>=b.d}, alh:function(a,b,c,d,e){var s,r,q='',p=$.RL+1 $.RL=p s=new P.c6("") s.a='' s.a=q r="svgClip"+p p=H.bV() if(p===C.bw){p=q+("") s.a=p s.a=p+'') s.a=p s.a=p+('>>0===4278190080){r=C.f.j9(s&16777215,16) switch(r.length){case 1:return"#00000"+r case 2:return"#0000"+r case 3:return"#000"+r case 4:return"#00"+r case 5:return"#0"+r default:return"#"+r}}else{q="rgba("+C.f.j(s>>>16&255)+","+C.f.j(s>>>8&255)+","+C.f.j(s&255)+","+C.d.j((s>>>24&255)/255)+")" return q.charCodeAt(0)==0?q:q}}, aF0:function(a,b,c,d){if(d===255)return"rgb("+a+","+b+","+c+")" else return"rgba("+a+","+b+","+c+","+C.d.ba(d/255,2)+")"}, aFJ:function(){var s=H.el() if(s!==C.bG){s=H.el() s=s===C.bH}else s=!0 return s}, oY:function(a){var s if(J.fW(C.C3.a,a))return a s=H.el() if(s!==C.bG){s=H.el() s=s===C.bH}else s=!0 if(s)if(a===".SF Pro Text"||a===".SF Pro Display"||a===".SF UI Text"||a===".SF UI Display")return $.alZ() return'"'+H.c(a)+'", '+$.alZ()+", sans-serif"}, alI:function(){var s=0,r=P.af(t.z) var $async$alI=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:if(!$.al6){$.al6=!0 C.aB.OR(window,new H.ail())}return P.ad(null,r)}}) return P.ae($async$alI,r)}, uh:function(a,b,c){if(ac)return c else return a}, azu:function(a){var s=new H.bt(new Float32Array(16)) if(s.jZ(a)===0)return null return s}, dt:function(){var s=new Float32Array(16) s[15]=1 s[0]=1 s[5]=1 s[10]=1 return new H.bt(s)}, azr:function(a){return new H.bt(a)}, aq1:function(a,b,c){var s=new Float32Array(3) s[0]=a s[1]=b s[2]=c return new H.a7O(s)}, aBF:function(){var s=new H.KG() s.X8() return s}, ayC:function(a,b){var s=new H.Fd(a,b,C.eO) s.Vs(a,b) return s}, ahZ:function ahZ(){}, ai_:function ai_(a){this.a=a}, ahY:function ahY(a){this.a=a}, age:function age(){}, agf:function agf(){}, oI:function oI(){}, D3:function D3(a){var _=this _.a=a _.c=_.b=null _.d=$}, SP:function SP(){}, SQ:function SQ(){}, SR:function SR(){}, pd:function pd(a,b){this.a=a this.b=b}, jp:function jp(a,b,c,d,e,f,g,h,i){var _=this _.a=a _.b=null _.c=b _.d=c _.e=null _.f=d _.r=e _.x=f _.y=0 _.z=g _.ch=_.Q=null _.db=_.cy=_.cx=!1 _.dx=h _.dy=i}, jt:function jt(a){this.b=a}, iQ:function iQ(a){this.b=a}, a9f:function a9f(a,b,c,d,e){var _=this _.e=_.d=null _.f=a _.r=b _.Q=_.z=_.y=_.x=null _.ch=0 _.cx=c _.a=d _.b=null _.c=e}, UO:function UO(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.x=_.r=null _.y=1 _.ch=_.Q=_.z=null _.cx=!1}, Pk:function Pk(){}, hC:function hC(a){this.a=a}, I_:function I_(a,b){this.b=a this.a=b}, Ua:function Ua(a,b){this.a=a this.b=b}, ct:function ct(){}, E7:function E7(){}, E4:function E4(){}, E5:function E5(a){this.a=a}, Ec:function Ec(a,b){this.a=a this.b=b}, E9:function E9(a,b){this.a=a this.b=b}, E6:function E6(a){this.a=a}, Eb:function Eb(a){this.a=a}, DP:function DP(a,b,c){this.a=a this.b=b this.c=c}, DO:function DO(a,b){this.a=a this.b=b}, DN:function DN(a,b){this.a=a this.b=b}, DT:function DT(a,b,c){this.a=a this.b=b this.c=c}, DU:function DU(a){this.a=a}, DZ:function DZ(a,b){this.a=a this.b=b}, DY:function DY(a,b){this.a=a this.b=b}, DR:function DR(a,b,c){this.a=a this.b=b this.c=c}, DQ:function DQ(a,b,c){this.a=a this.b=b this.c=c}, DW:function DW(a,b){this.a=a this.b=b}, E_:function E_(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, DS:function DS(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, DV:function DV(a,b){this.a=a this.b=b}, DX:function DX(a){this.a=a}, E8:function E8(a,b){this.a=a this.b=b}, mB:function mB(){}, TR:function TR(){}, TS:function TS(){}, Ur:function Ur(){}, a5T:function a5T(){}, a5H:function a5H(){}, a5h:function a5h(){}, a5f:function a5f(){}, a5e:function a5e(){}, a5g:function a5g(){}, rf:function rf(){}, a4V:function a4V(){}, a4U:function a4U(){}, a5L:function a5L(){}, ro:function ro(){}, a5I:function a5I(){}, rl:function rl(){}, a5C:function a5C(){}, rh:function rh(){}, a5D:function a5D(){}, ri:function ri(){}, a5R:function a5R(){}, a5Q:function a5Q(){}, a5B:function a5B(){}, a5A:function a5A(){}, a50:function a50(){}, rc:function rc(){}, a57:function a57(){}, rd:function rd(){}, a5w:function a5w(){}, a5v:function a5v(){}, a4Z:function a4Z(){}, rb:function rb(){}, a5F:function a5F(){}, rj:function rj(){}, a5q:function a5q(){}, rg:function rg(){}, a4Y:function a4Y(){}, ra:function ra(){}, a5G:function a5G(){}, rk:function rk(){}, a5a:function a5a(){}, re:function re(){}, a5O:function a5O(){}, rp:function rp(){}, a59:function a59(){}, a58:function a58(){}, a5o:function a5o(){}, a5n:function a5n(){}, a4X:function a4X(){}, a4W:function a4W(){}, a53:function a53(){}, a52:function a52(){}, o1:function o1(){}, lH:function lH(){}, a5E:function a5E(){}, k9:function k9(){}, a5m:function a5m(){}, o4:function o4(){}, o3:function o3(){}, a51:function a51(){}, o2:function o2(){}, a5j:function a5j(){}, a5i:function a5i(){}, a5u:function a5u(){}, acU:function acU(){}, a5b:function a5b(){}, o6:function o6(){}, a55:function a55(){}, a54:function a54(){}, a5x:function a5x(){}, a5_:function a5_(){}, o7:function o7(){}, a5s:function a5s(){}, a5r:function a5r(){}, a5t:function a5t(){}, Jh:function Jh(){}, o9:function o9(){}, a5K:function a5K(){}, rn:function rn(){}, a5J:function a5J(){}, rm:function rm(){}, a5z:function a5z(){}, a5y:function a5y(){}, Jj:function Jj(){}, Ji:function Ji(){}, Jg:function Jg(){}, o8:function o8(){}, yu:function yu(){}, ka:function ka(){}, a5c:function a5c(){}, Jf:function Jf(){}, a7y:function a7y(){}, a5l:function a5l(){}, o5:function o5(){}, a5M:function a5M(){}, a5N:function a5N(){}, a5S:function a5S(){}, a5P:function a5P(){}, a5d:function a5d(){}, a7z:function a7z(){}, a1D:function a1D(a){this.a=$ this.b=a this.c=null}, a1E:function a1E(a){this.a=a}, a1F:function a1F(a){this.a=a}, Jm:function Jm(a,b){this.a=a this.b=b}, k8:function k8(){}, ZF:function ZF(){}, a5p:function a5p(){}, a56:function a56(){}, a5k:function a5k(){}, TQ:function TQ(a){this.a=a}, AI:function AI(a){this.b=a this.a=null}, zJ:function zJ(){}, YQ:function YQ(a,b,c,d,e,f,g,h,i,j,k){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k}, a0I:function a0I(a,b){this.a=a this.b=b}, nw:function nw(a){this.b=a}, hZ:function hZ(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f}, x1:function x1(a){this.a=a}, Xq:function Xq(a,b,c,d,e,f){var _=this _.a=!1 _.b=a _.c=b _.d=c _.e=d _.f=e _.r=f}, Xr:function Xr(){}, Xs:function Xs(){}, ahF:function ahF(a){this.a=a}, ah1:function ah1(){}, ah6:function ah6(){}, ahH:function ahH(){}, ahI:function ahI(a){this.a=a}, nB:function nB(a,b){var _=this _.a=a _.b=b _.d=_.c=null}, h0:function h0(a,b){this.a=a this.b=b}, adD:function adD(a,b){this.a=a this.c=b}, oJ:function oJ(a,b,c){this.a=a this.b=b this.c=c}, Fp:function Fp(a,b,c){var _=this _.a=a _.b=b _.c=c _.d=null}, WO:function WO(a,b,c){this.a=a this.b=b this.c=c}, a0s:function a0s(){this.a=0}, a0u:function a0u(){}, a0t:function a0t(){}, a0w:function a0w(){}, a0v:function a0v(){}, Jk:function Jk(a,b,c){var _=this _.a=a _.b=b _.c=c _.e=null}, a5V:function a5V(){}, a5W:function a5W(){}, a5U:function a5U(){}, tX:function tX(a,b,c){this.a=a this.b=b this.c=c}, FY:function FY(a){this.a=a}, DM:function DM(a,b){var _=this _.b=a _.c=b _.d=!1 _.a=null}, l_:function l_(a){this.a=null this.b=a this.c=!1}, U4:function U4(a,b,c){this.a=a this.b=b this.c=c}, D6:function D6(a,b){this.a=a this.b=b}, ahW:function ahW(a){this.a=a}, ahV:function ahV(a){this.a=a}, ahX:function ahX(a,b){this.a=a this.b=b}, ahT:function ahT(){}, ahU:function ahU(a){this.a=a}, G6:function G6(a,b){this.a=a this.$ti=b}, Zy:function Zy(a,b){this.a=a this.b=b}, Zz:function Zz(a){this.a=a}, Zx:function Zx(a){this.a=a}, Zw:function Zw(a){this.a=a}, iJ:function iJ(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.f=_.e=null _.$ti=e}, ex:function ex(){}, a1w:function a1w(a){this.c=a}, a0S:function a0S(a,b){this.a=a this.b=b}, pw:function pw(){}, IE:function IE(a,b){this.c=a this.a=null this.b=b}, Ef:function Ef(a,b,c,d){var _=this _.f=a _.r=b _.c=c _.a=null _.b=d}, Ej:function Ej(a,b,c,d){var _=this _.f=a _.r=b _.c=c _.a=null _.b=d}, Eg:function Eg(a,b,c,d){var _=this _.f=a _.r=b _.c=c _.a=null _.b=d}, H2:function H2(a,b,c,d){var _=this _.f=a _.r=b _.c=c _.a=null _.b=d}, zi:function zi(a,b,c){var _=this _.f=a _.c=b _.a=null _.b=c}, H0:function H0(a,b,c){var _=this _.f=a _.c=b _.a=null _.b=c}, HF:function HF(a,b,c){var _=this _.c=a _.d=b _.a=null _.b=c}, HD:function HD(a,b,c,d,e,f,g){var _=this _.f=a _.r=b _.x=c _.y=d _.z=e _.c=f _.a=null _.b=g}, Gg:function Gg(a){this.a=a}, a_a:function a_a(a){this.a=a this.b=$}, a_b:function a_b(a,b){this.a=a this.b=b}, XC:function XC(a,b,c){this.a=a this.b=b this.c=c}, XD:function XD(a,b,c){this.a=a this.b=b this.c=c}, XE:function XE(a,b,c){this.a=a this.b=b this.c=c}, Uu:function Uu(){}, E1:function E1(a,b){this.b=a this.c=b this.a=null}, U5:function U5(a){this.a=a}, pl:function pl(a,b,c,d,e){var _=this _.b=a _.c=b _.d=0 _.e=c _.r=!0 _.x=d _.ch=_.Q=_.z=null _.cx=e _.a=_.cy=null}, pm:function pm(a){this.b=a this.a=this.c=null}, vb:function vb(a,b){this.b=a this.c=b this.a=null}, E3:function E3(){this.c=this.b=this.a=null}, a1J:function a1J(a,b,c){this.a=a this.b=b this.c=c}, pn:function pn(){}, E0:function E0(a,b,c,d,e){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.a=null}, Jl:function Jl(a,b,c){this.a=a this.b=b this.c=c}, dG:function dG(){}, ez:function ez(){}, rq:function rq(a,b,c){var _=this _.a=1 _.b=a _.d=_.c=null _.e=b _.f=!1 _.$ti=c}, yN:function yN(a,b){this.a=a this.b=b}, rC:function rC(a,b){var _=this _.a=null _.b=!0 _.d=_.c=null _.e=a _.f=null _.x=_.r=-1 _.y=!1 _.z=b _.Q=null _.ch=-1}, a6I:function a6I(a){this.a=a}, a6H:function a6H(a){this.a=a}, Ea:function Ea(a,b,c){var _=this _.a=a _.b=b _.c=c _.d=!1}, E2:function E2(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f}, vc:function vc(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q _.fr=r _.fx=s _.go=_.fy=$}, Ub:function Ub(a){this.a=a}, va:function va(a,b,c){var _=this _.b=a _.c=b _.d=c _.a=_.e=null}, U6:function U6(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.e=d _.f=e}, U9:function U9(){}, U7:function U7(a){this.a=a}, U8:function U8(a){this.a=a}, m4:function m4(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, tT:function tT(a){this.b=a}, agL:function agL(a){this.a=a}, DE:function DE(a){this.a=a}, El:function El(a,b){this.a=a this.b=b}, Un:function Un(a,b){this.a=a this.b=b}, Uo:function Uo(a,b){this.a=a this.b=b}, Ul:function Ul(a){this.a=a}, Um:function Um(a){this.a=a}, Ek:function Ek(){}, Uk:function Uk(){}, Fk:function Fk(){}, WK:function WK(){}, VA:function VA(a,b,c,d){var _=this _.a=a _.MH$=b _.pU$=c _.iR$=d}, F2:function F2(a){var _=this _.z=_.y=_.x=_.r=_.f=_.e=_.d=_.c=_.b=_.a=null _.Q=a _.ch=null}, VE:function VE(a,b,c){this.a=a this.b=b this.c=c}, VF:function VF(a,b){this.a=a this.b=b}, VG:function VG(){}, VH:function VH(a,b){this.a=a this.b=b}, VI:function VI(){}, VK:function VK(a){this.a=a}, VL:function VL(a){this.a=a}, Wo:function Wo(){}, Pj:function Pj(a,b){this.a=a this.b=b}, oK:function oK(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, Pi:function Pi(a,b){this.a=a this.b=b}, a3M:function a3M(){}, fp:function fp(a,b){this.a=a this.$ti=b}, Eu:function Eu(a){this.b=this.a=null this.$ti=a}, tb:function tb(a,b,c){this.a=a this.b=b this.$ti=c}, a6B:function a6B(a){this.a=a}, tg:function tg(){}, xp:function xp(a,b,c,d,e,f){var _=this _.fy=a _.go=b _.cu$=c _.z=d _.a=e _.b=-1 _.c=f _.y=_.x=_.r=_.f=_.e=_.d=null}, Hx:function Hx(a,b,c,d,e,f){var _=this _.fy=a _.go=b _.cu$=c _.z=d _.a=e _.b=-1 _.c=f _.y=_.x=_.r=_.f=_.e=_.d=null}, xs:function xs(a,b,c,d,e,f,g,h,i,j){var _=this _.fy=a _.go=b _.id=c _.k1=d _.k2=e _.k3=f _.r1=_.k4=null _.cu$=g _.z=h _.a=i _.b=-1 _.c=j _.y=_.x=_.r=_.f=_.e=_.d=null}, xo:function xo(a,b,c,d,e){var _=this _.fy=a _.go=b _.id=null _.z=c _.a=d _.b=-1 _.c=e _.y=_.x=_.r=_.f=_.e=_.d=null}, xq:function xq(a,b,c,d,e){var _=this _.fy=a _.go=b _.z=c _.a=d _.b=-1 _.c=e _.y=_.x=_.r=_.f=_.e=_.d=null}, xr:function xr(a,b,c,d,e){var _=this _.fy=a _.go=b _.z=c _.a=d _.b=-1 _.c=e _.y=_.x=_.r=_.f=_.e=_.d=null}, aR:function aR(a){this.a=a this.b=!1}, aT:function aT(){var _=this _.e=_.d=_.c=_.b=_.a=null _.f=!0 _.Q=_.z=_.y=_.x=_.r=null}, h1:function h1(a,b,c,d,e,f,g){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g}, ade:function ade(){var _=this _.d=_.c=_.b=_.a=0}, a9w:function a9w(){var _=this _.d=_.c=_.b=_.a=0}, LA:function LA(){this.b=this.a=null}, a9z:function a9z(){var _=this _.d=_.c=_.b=_.a=0}, oe:function oe(a,b){var _=this _.a=a _.b=b _.d=0 _.f=_.e=-1}, aex:function aex(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f}, qx:function qx(a,b){var _=this _.b=_.a=null _.e=_.d=_.c=0 _.f=a _.r=b _.y=_.x=0 _.z=null _.Q=0 _.cx=_.ch=!0 _.dy=_.dx=_.db=_.cy=!1 _.fr=-1 _.fx=0}, nF:function nF(a){var _=this _.a=a _.b=-1 _.e=_.d=_.c=0}, kw:function kw(){this.b=this.a=null}, a11:function a11(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.e=_.d=0 _.f=d}, a10:function a10(a,b,c){var _=this _.a=a _.b=b _.c=c _.d=!1 _.e=0 _.f=-1 _.ch=_.Q=_.z=_.y=_.x=_.r=0}, m3:function m3(a,b){this.a=a this.b=b}, HA:function HA(a,b,c,d,e,f,g){var _=this _.fx=null _.fy=a _.go=b _.id=c _.k1=d _.k3=1 _.k4=!1 _.r1=e _.ry=_.rx=_.r2=null _.a=f _.b=-1 _.c=g _.y=_.x=_.r=_.f=_.e=_.d=null}, a16:function a16(a){this.a=a}, a22:function a22(a,b,c){var _=this _.a=a _.b=null _.c=b _.d=c _.f=_.e=!1 _.r=1}, cL:function cL(){}, vF:function vF(){}, xl:function xl(){}, Hj:function Hj(){}, Hn:function Hn(a,b){this.a=a this.b=b}, Hl:function Hl(a,b){this.a=a this.b=b}, Hk:function Hk(a){this.a=a}, Hm:function Hm(a){this.a=a}, H9:function H9(a,b,c,d,e,f){var _=this _.f=a _.r=b _.a=!1 _.b=c _.c=d _.d=e _.e=f}, H8:function H8(a,b,c,d,e){var _=this _.f=a _.a=!1 _.b=b _.c=c _.d=d _.e=e}, H7:function H7(a,b,c,d,e){var _=this _.f=a _.a=!1 _.b=b _.c=c _.d=d _.e=e}, Hd:function Hd(a,b,c,d,e,f,g){var _=this _.f=a _.r=b _.x=c _.a=!1 _.b=d _.c=e _.d=f _.e=g}, Hh:function Hh(a,b,c,d,e,f){var _=this _.f=a _.r=b _.a=!1 _.b=c _.c=d _.d=e _.e=f}, Hg:function Hg(a,b,c,d,e,f){var _=this _.f=a _.r=b _.a=!1 _.b=c _.c=d _.d=e _.e=f}, Hb:function Hb(a,b,c,d,e,f,g){var _=this _.f=a _.r=b _.x=c _.y=null _.a=!1 _.b=d _.c=e _.d=f _.e=g}, Ha:function Ha(a,b,c,d,e,f,g){var _=this _.f=a _.r=b _.x=c _.a=!1 _.b=d _.c=e _.d=f _.e=g}, Hf:function Hf(a,b,c,d,e,f){var _=this _.f=a _.r=b _.a=!1 _.b=c _.c=d _.d=e _.e=f}, Hi:function Hi(a,b,c,d,e,f,g,h){var _=this _.f=a _.r=b _.x=c _.y=d _.a=!1 _.b=e _.c=f _.d=g _.e=h}, Hc:function Hc(a,b,c,d,e,f,g,h){var _=this _.f=a _.r=b _.x=c _.y=d _.a=!1 _.b=e _.c=f _.d=g _.e=h}, He:function He(a,b,c,d,e,f){var _=this _.f=a _.r=b _.a=!1 _.b=c _.c=d _.d=e _.e=f}, ad0:function ad0(a,b,c,d){var _=this _.a=a _.b=!1 _.d=_.c=17976931348623157e292 _.f=_.e=-17976931348623157e292 _.r=b _.x=c _.y=!0 _.z=d _.Q=!1 _.db=_.cy=_.cx=_.ch=0}, a37:function a37(){var _=this _.d=_.c=_.b=_.a=!1}, afX:function afX(){}, N3:function N3(a){this.a=a}, N2:function N2(a){var _=this _.a=a _.dx=_.db=_.cy=_.ch=_.Q=_.z=_.y=_.x=_.r=_.f=_.e=_.d=_.c=null}, akL:function akL(a,b){var _=this _.b=_.a=null _.c=a _.d=b}, rD:function rD(a){this.a=a}, xt:function xt(a,b,c){var _=this _.z=a _.a=b _.b=-1 _.c=c _.y=_.x=_.r=_.f=_.e=_.d=null}, a6C:function a6C(a){this.a=a}, a6E:function a6E(a){this.a=a}, a6F:function a6F(a){this.a=a}, a0q:function a0q(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, vL:function vL(){}, FP:function FP(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f}, J7:function J7(a,b,c,d,e){var _=this _.b=a _.c=b _.e=null _.x=_.r=_.f=0 _.z=c _.Q=d _.ch=null _.cx=e}, yp:function yp(a,b){this.b=a this.c=b this.d=1}, nX:function nX(a,b,c){this.a=a this.b=b this.c=c}, ahs:function ahs(){}, nG:function nG(a){this.b=a}, cM:function cM(){}, Hz:function Hz(){}, dv:function dv(){}, a15:function a15(){}, m6:function m6(a,b,c){this.a=a this.b=b this.c=c}, xu:function xu(a,b,c,d){var _=this _.fy=a _.z=b _.a=c _.b=-1 _.c=d _.y=_.x=_.r=_.f=_.e=_.d=null}, FU:function FU(){}, YO:function YO(a,b,c){this.a=a this.b=b this.c=c}, YP:function YP(a,b){this.a=a this.b=b}, YL:function YL(a){this.a=a}, YK:function YK(a){this.a=a}, YM:function YM(a,b,c){this.a=a this.b=b this.c=c}, YN:function YN(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e}, FT:function FT(a){this.a=a}, yt:function yt(a){this.a=a}, wa:function wa(a,b,c){var _=this _.a=a _.b=!1 _.d=b _.e=c}, ZO:function ZO(a){var _=this _.a=a _.c=_.b=null _.d=0}, ZP:function ZP(a){this.a=a}, ZQ:function ZQ(a){this.a=a}, ZR:function ZR(a){this.a=a}, a_6:function a_6(a,b,c){this.a=a this.b=b this.c=c}, a_7:function a_7(a){this.a=a}, agQ:function agQ(){}, agR:function agR(){}, agS:function agS(){}, agT:function agT(){}, agU:function agU(){}, agV:function agV(){}, agW:function agW(){}, agX:function agX(){}, Ge:function Ge(a){this.b=$ this.c=a}, ZS:function ZS(a){this.a=a}, ZT:function ZT(a){this.a=a}, ZU:function ZU(a){this.a=a}, ZV:function ZV(a){this.a=a}, jD:function jD(a){this.a=a}, ZW:function ZW(a,b,c,d){var _=this _.a=a _.b=b _.c=!1 _.d=c _.e=d}, ZX:function ZX(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, ZY:function ZY(a){this.a=a}, ZZ:function ZZ(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, a__:function a__(a,b){this.a=a this.b=b}, a_1:function a_1(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, a_2:function a_2(a,b,c){this.a=a this.b=b this.c=c}, a_3:function a_3(a,b){this.a=a this.b=b}, a_4:function a_4(a,b,c){this.a=a this.b=b this.c=c}, a_0:function a_0(a,b,c){this.a=a this.b=b this.c=c}, a_U:function a_U(){}, Tv:function Tv(){}, x0:function x0(a){var _=this _.c=a _.a=_.d=$ _.b=!1}, a02:function a02(){}, ys:function ys(a,b){var _=this _.c=a _.d=b _.e=null _.a=$ _.b=!1}, a4S:function a4S(){}, a4T:function a4T(){}, ni:function ni(){}, a7J:function a7J(){}, Yb:function Yb(){}, Yf:function Yf(a,b){this.a=a this.b=b}, Yd:function Yd(a){this.a=a}, Yc:function Yc(a){this.a=a}, Ye:function Ye(a,b){this.a=a this.b=b}, V4:function V4(a){this.a=a}, a1i:function a1i(){}, Tw:function Tw(){}, Fc:function Fc(){this.a=null this.b=$ this.c=!1}, Fb:function Fb(a){this.a=a}, Ws:function Ws(a,b,c,d){var _=this _.a=a _.d=b _.e=c _.id=_.fx=_.fr=_.dy=_.dx=_.cx=_.ch=_.Q=_.z=_.y=_.x=_.r=_.f=null _.k4=d _.y2=_.y1=_.x2=_.x1=_.ry=_.rx=_.r2=_.r1=null _.ac=$}, WB:function WB(a,b){this.a=a this.b=b}, Ww:function Ww(a,b){this.a=a this.b=b}, Wx:function Wx(a,b){this.a=a this.b=b}, Wy:function Wy(a,b){this.a=a this.b=b}, Wz:function Wz(a,b){this.a=a this.b=b}, WA:function WA(a,b){this.a=a this.b=b}, Wt:function Wt(a){this.a=a}, Wu:function Wu(a){this.a=a}, Wv:function Wv(a,b){this.a=a this.b=b}, ai1:function ai1(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, HK:function HK(a,b){this.a=a this.c=b this.d=$}, a1s:function a1s(){}, a8Q:function a8Q(){}, a8R:function a8R(a,b,c){this.a=a this.b=b this.c=c}, QY:function QY(){}, afY:function afY(a){this.a=a}, kx:function kx(a,b){this.a=a this.b=b}, oy:function oy(){this.a=0}, ad2:function ad2(a,b,c,d){var _=this _.d=a _.a=b _.b=c _.c=d}, ad4:function ad4(){}, ad3:function ad3(a){this.a=a}, ad5:function ad5(a){this.a=a}, ad6:function ad6(a){this.a=a}, ad7:function ad7(a){this.a=a}, ad8:function ad8(a){this.a=a}, ad9:function ad9(a){this.a=a}, afi:function afi(a,b,c,d){var _=this _.d=a _.a=b _.b=c _.c=d}, afj:function afj(a){this.a=a}, afk:function afk(a){this.a=a}, afl:function afl(a){this.a=a}, afm:function afm(a){this.a=a}, afn:function afn(a){this.a=a}, acN:function acN(a,b,c,d){var _=this _.d=a _.a=b _.b=c _.c=d}, acO:function acO(a){this.a=a}, acP:function acP(a){this.a=a}, acQ:function acQ(a){this.a=a}, acR:function acR(a){this.a=a}, acS:function acS(a){this.a=a}, tV:function tV(a,b){this.a=null this.b=a this.c=b}, a1m:function a1m(a){this.a=a this.b=0}, a1n:function a1n(a,b){this.a=a this.b=b}, akg:function akg(){}, ajH:function ajH(a){this.a=a this.b=null}, Sx:function Sx(){this.c=this.a=null}, Sy:function Sy(a){this.a=a}, Sz:function Sz(a){this.a=a}, zI:function zI(a){this.b=a}, pk:function pk(a,b){this.c=a this.b=b}, pY:function pY(a){this.c=null this.b=a}, q0:function q0(a,b){var _=this _.c=a _.d=1 _.e=null _.f=!1 _.b=b}, Zj:function Zj(a,b){this.a=a this.b=b}, Zk:function Zk(a){this.a=a}, q9:function q9(a){this.c=null this.b=a}, qd:function qd(a){this.b=a}, qZ:function qZ(a){var _=this _.d=_.c=null _.e=0 _.b=a}, a4b:function a4b(a){this.a=a}, a4c:function a4c(a){this.a=a}, a4d:function a4d(a){this.a=a}, a4E:function a4E(a){this.a=a}, J5:function J5(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2){var _=this _.a=a _.b=b _.c=c _.f=d _.r=e _.y=f _.z=g _.Q=h _.ch=i _.cx=j _.cy=k _.db=l _.dx=m _.dy=n _.fr=o _.fx=p _.fy=q _.go=r _.id=s _.k1=a0 _.k2=a1 _.k4=a2}, i2:function i2(a){this.b=a}, ah7:function ah7(){}, ah8:function ah8(){}, ah9:function ah9(){}, aha:function aha(){}, ahb:function ahb(){}, ahc:function ahc(){}, ahd:function ahd(){}, ahe:function ahe(){}, fF:function fF(){}, cB:function cB(a,b,c,d){var _=this _.fy=_.fx=_.fr=_.dy=_.dx=_.db=_.cy=_.cx=_.ch=_.Q=_.z=_.y=_.x=_.r=_.f=_.e=_.d=_.c=_.b=_.a=null _.go=a _.id=b _.k1=c _.k2=-1 _.k4=_.k3=null _.r1=d _.rx=_.r2=0 _.ry=null}, a4x:function a4x(a){this.a=a}, a4w:function a4w(a){this.a=a}, SA:function SA(a){this.b=a}, n4:function n4(a){this.b=a}, WC:function WC(a,b,c,d,e,f,g,h){var _=this _.a=a _.b=b _.c=c _.d=d _.e=null _.f=e _.r=f _.x=!1 _.z=g _.Q=null _.ch=h}, WD:function WD(a){this.a=a}, WF:function WF(){}, WE:function WE(a){this.a=a}, vK:function vK(a){this.b=a}, a4r:function a4r(a){this.a=a}, a4n:function a4n(){}, Vg:function Vg(){var _=this _.b=_.a=null _.c=0 _.d=!1}, Vi:function Vi(a){this.a=a}, Vh:function Vh(a){this.a=a}, a_N:function a_N(){var _=this _.b=_.a=null _.c=0 _.d=!1}, a_P:function a_P(a){this.a=a}, a_O:function a_O(a){this.a=a}, rI:function rI(a){this.c=null this.b=a}, a6W:function a6W(a){this.a=a}, a4D:function a4D(a,b,c){var _=this _.ch=a _.a=b _.b=!1 _.c=null _.d=$ _.y=_.x=_.r=_.f=_.e=null _.z=c _.Q=!1}, rN:function rN(a){this.c=null this.b=a}, a7_:function a7_(a){this.a=a}, a70:function a70(a,b){this.a=a this.b=b}, a71:function a71(a,b){this.a=a this.b=b}, jl:function jl(){}, Nh:function Nh(){}, Kn:function Kn(a,b){this.a=a this.b=b}, hX:function hX(a,b){this.a=a this.b=b}, G9:function G9(){}, Ga:function Ga(){}, JL:function JL(){}, a6i:function a6i(a,b){this.a=a this.b=b}, a6j:function a6j(){}, a80:function a80(a,b,c){var _=this _.a=!1 _.b=a _.c=b _.d=c}, HY:function HY(a){this.a=a this.b=0}, a6G:function a6G(a,b){this.a=a this.b=b}, DF:function DF(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.e=d _.f=!1 _.r=null _.y=_.x=$ _.z=null}, TV:function TV(a){this.a=a}, TU:function TU(a){this.a=a}, Fx:function Fx(a,b,c){this.a=a this.b=b this.c=c}, rB:function rB(){}, DJ:function DJ(a,b){this.b=a this.c=b this.a=null}, IF:function IF(a){this.b=a this.a=null}, TT:function TT(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.r=f _.x=!0}, Xo:function Xo(){this.b=this.a=null}, FJ:function FJ(a){this.a=a}, Xt:function Xt(a){this.a=a}, Xu:function Xu(a){this.a=a}, OF:function OF(a){this.a=a}, adb:function adb(a){this.a=a}, ada:function ada(a){this.a=a}, adc:function adc(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e}, add:function add(a){this.a=a}, a78:function a78(a,b,c){var _=this _.a=a _.b=b _.c=-1 _.d=0 _.e=null _.r=_.f=0 _.y=_.x=-1 _.z=!1 _.Q=c}, xH:function xH(){}, xw:function xw(){}, oc:function oc(a,b,c,d,e,f,g,h,i){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i}, Gn:function Gn(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e}, a_d:function a_d(a,b,c,d,e,f,g,h,i){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.cx=_.ch=_.Q=_.z=0}, a66:function a66(a,b){var _=this _.a=a _.b=b _.c="" _.e=_.d=null}, bl:function bl(a){this.b=a}, qa:function qa(a){this.b=a}, dc:function dc(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, y8:function y8(a){this.a=a}, a3G:function a3G(a,b,c){var _=this _.b=a _.c=b _.d=!1 _.a=c}, a3I:function a3I(a){this.a=a}, a3H:function a3H(){}, a3J:function a3J(){}, a79:function a79(){}, VM:function VM(){}, TW:function TW(a){this.b=a}, a_e:function a_e(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=!1 _.x=null}, a_z:function a_z(a,b,c){var _=this _.a=a _.b=b _.c=c _.e=_.d=0}, a7a:function a7a(a){this.a=a}, mQ:function mQ(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.Q=j _.ch=k _.cx=l _.cy=m _.db=n _.dx=o}, mM:function mM(a,b,c,d,e,f,g,h){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=null _.z=!1 _.Q=null _.ch=0}, vM:function vM(a,b,c,d,e,f,g,h,i,j,k,l){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l}, mR:function mR(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q _.fr=r _.fx=s _.fy=a0 _.go=null _.id=$}, Fe:function Fe(a,b,c,d,e,f,g,h){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h}, VC:function VC(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.e=d}, VD:function VD(a,b){this.a=a this.b=b}, jZ:function jZ(a,b,c,d,e,f,g,h,i,j,k,l,m){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.dx=_.db=_.cy=null}, rO:function rO(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d _.e=$}, rM:function rM(a){this.a=a this.b=null}, K4:function K4(a,b,c){var _=this _.a=a _.b=b _.d=_.c=$ _.e=c _.r=_.f=$}, iU:function iU(a,b,c,d,e,f,g,h,i,j){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=$ _.z=0 _.Q=!1 _.ch=null _.cx=i _.cy=j}, wT:function wT(a,b,c,d,e,f,g,h,i,j,k,l,m,n){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n}, zK:function zK(a){this.b=a}, zl:function zl(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.$ti=d}, Kp:function Kp(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.$ti=d}, cR:function cR(a){this.b=a}, MM:function MM(a){this.a=a}, Tp:function Tp(a){this.a=a}, Wq:function Wq(){}, a76:function a76(){}, a0z:function a0z(){}, V9:function V9(){}, a18:function a18(){}, Wj:function Wj(){}, a7I:function a7I(){}, a05:function a05(){}, rL:function rL(a){this.b=a}, yX:function yX(a){this.a=a}, Wk:function Wk(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, Wn:function Wn(){}, Wm:function Wm(a,b){this.a=a this.b=b}, Wl:function Wl(a,b,c){this.a=a this.b=b this.c=c}, Di:function Di(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, pJ:function pJ(a,b,c){this.a=a this.b=b this.c=c}, Zq:function Zq(a,b,c,d,e,f,g,h){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h}, FO:function FO(a,b){var _=this _.a=a _.b=!1 _.c=null _.d=$ _.y=_.x=_.r=_.f=_.e=null _.z=b _.Q=!1}, a3L:function a3L(a,b){var _=this _.a=a _.b=!1 _.c=null _.d=$ _.y=_.x=_.r=_.f=_.e=null _.z=b _.Q=!1}, vw:function vw(){}, Vc:function Vc(a){this.a=a}, Vd:function Vd(){}, Ve:function Ve(){}, Vf:function Vf(){}, YV:function YV(a,b){var _=this _.k1=null _.k2=!0 _.a=a _.b=!1 _.c=null _.d=$ _.y=_.x=_.r=_.f=_.e=null _.z=b _.Q=!1}, YY:function YY(a){this.a=a}, YZ:function YZ(a){this.a=a}, YW:function YW(a){this.a=a}, YX:function YX(a){this.a=a}, SG:function SG(a,b){var _=this _.a=a _.b=!1 _.c=null _.d=$ _.y=_.x=_.r=_.f=_.e=null _.z=b _.Q=!1}, SH:function SH(a){this.a=a}, WX:function WX(a,b){var _=this _.a=a _.b=!1 _.c=null _.d=$ _.y=_.x=_.r=_.f=_.e=null _.z=b _.Q=!1}, WZ:function WZ(a){this.a=a}, X_:function X_(a){this.a=a}, WY:function WY(a){this.a=a}, a6Y:function a6Y(a){this.a=a}, a6Z:function a6Z(){}, YS:function YS(){var _=this _.b=_.a=$ _.d=_.c=null _.e=!1 _.f=$}, YU:function YU(a){this.a=a}, YT:function YT(a){this.a=a}, Wc:function Wc(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e}, VY:function VY(a,b,c){this.a=a this.b=b this.c=c}, zj:function zj(a){this.b=a}, ail:function ail(){}, aik:function aik(){}, bt:function bt(a){this.a=a}, a7O:function a7O(a){this.a=a}, KG:function KG(){this.b=this.a=!0}, a7S:function a7S(){}, Fa:function Fa(){}, Wp:function Wp(){}, Fd:function Fd(a,b,c){var _=this _.x=null _.a=a _.b=b _.c=null _.d=!1 _.e=c _.f=null}, KJ:function KJ(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, Mf:function Mf(){}, Of:function Of(){}, Og:function Og(){}, Oh:function Oh(){}, Rf:function Rf(){}, Rk:function Rk(){}, ajN:function ajN(){}, as0:function(){return $}, kY:function(a,b,c){if(b.h("M<0>").b(a))return new H.A5(a,b.h("@<0>").a3(c).h("A5<1,2>")) return new H.mC(a,b.h("@<0>").a3(c).h("mC<1,2>"))}, bS:function(a){return new H.jO("Field '"+a+"' has been assigned during initialization.")}, t:function(a){return new H.jO("Field '"+a+"' has not been initialized.")}, c1:function(a){return new H.jO("Local '"+a+"' has not been initialized.")}, lj:function(a){return new H.jO("Field '"+a+"' has already been initialized.")}, ew:function(a){return new H.jO("Local '"+a+"' has already been initialized.")}, j:function(a){return new H.HX(a)}, ahO:function(a){var s,r=a^48 if(r<=9)return r s=a|32 if(97<=s&&s<=102)return s-87 return-1}, aFV:function(a,b){var s=H.ahO(C.c.al(a,b)),r=H.ahO(C.c.al(a,b+1)) return s*16+r-(r&256)}, apK:function(a,b){a=a+b&536870911 a=a+((a&524287)<<10)&536870911 return a^a>>>6}, aBh:function(a){a=a+((a&67108863)<<3)&536870911 a^=a>>>11 return a+((a&16383)<<15)&536870911}, e3:function(a,b,c){if(a==null)throw H.a(new H.xc(b,c.h("xc<0>"))) return a}, eJ:function(a,b,c,d){P.cV(b,"start") if(c!=null){P.cV(c,"end") if(b>c)H.e(P.bz(b,0,c,"start",null))}return new H.fL(a,b,c,d.h("fL<0>"))}, jT:function(a,b,c,d){if(t.Ee.b(a))return new H.mN(a,b,c.h("@<0>").a3(d).h("mN<1,2>")) return new H.ft(a,b,c.h("@<0>").a3(d).h("ft<1,2>"))}, a6Q:function(a,b,c){P.cV(b,"takeCount") if(t.Ee.b(a))return new H.vG(a,b,c.h("vG<0>")) return new H.oh(a,b,c.h("oh<0>"))}, a5X:function(a,b,c){if(t.Ee.b(a)){P.cV(b,"count") return new H.pK(a,b,c.h("pK<0>"))}P.cV(b,"count") return new H.kb(a,b,c.h("kb<0>"))}, ayO:function(a,b,c){return new H.n0(a,b,c.h("n0<0>"))}, bR:function(){return new P.hg("No element")}, aoq:function(){return new P.hg("Too many elements")}, aop:function(){return new P.hg("Too few elements")}, apF:function(a,b){H.Jy(a,0,J.bQ(a)-1,b)}, Jy:function(a,b,c,d){if(c-b<=32)H.JA(a,b,c,d) else H.Jz(a,b,c,d)}, JA:function(a,b,c,d){var s,r,q,p,o for(s=b+1,r=J.ag(a);s<=c;++s){q=r.i(a,s) p=s while(!0){if(!(p>b&&d.$2(r.i(a,p-1),q)>0))break o=p-1 r.n(a,p,r.i(a,o)) p=o}r.n(a,p,q)}}, Jz:function(a3,a4,a5,a6){var s,r,q,p,o,n,m,l,k,j,i=C.f.cr(a5-a4+1,6),h=a4+i,g=a5-i,f=C.f.cr(a4+a5,2),e=f-i,d=f+i,c=J.ag(a3),b=c.i(a3,h),a=c.i(a3,e),a0=c.i(a3,f),a1=c.i(a3,d),a2=c.i(a3,g) if(a6.$2(b,a)>0){s=a a=b b=s}if(a6.$2(a1,a2)>0){s=a2 a2=a1 a1=s}if(a6.$2(b,a0)>0){s=a0 a0=b b=s}if(a6.$2(a,a0)>0){s=a0 a0=a a=s}if(a6.$2(b,a1)>0){s=a1 a1=b b=s}if(a6.$2(a0,a1)>0){s=a1 a1=a0 a0=s}if(a6.$2(a,a2)>0){s=a2 a2=a a=s}if(a6.$2(a,a0)>0){s=a0 a0=a a=s}if(a6.$2(a1,a2)>0){s=a2 a2=a1 a1=s}c.n(a3,h,b) c.n(a3,f,a0) c.n(a3,g,a2) c.n(a3,e,c.i(a3,a4)) c.n(a3,d,c.i(a3,a5)) r=a4+1 q=a5-1 if(J.d(a6.$2(a,a1),0)){for(p=r;p<=q;++p){o=c.i(a3,p) n=a6.$2(o,a) if(n===0)continue if(n<0){if(p!==r){c.n(a3,p,c.i(a3,r)) c.n(a3,r,o)}++r}else for(;!0;){n=a6.$2(c.i(a3,q),a) if(n>0){--q continue}else{m=q-1 if(n<0){c.n(a3,p,c.i(a3,r)) l=r+1 c.n(a3,r,c.i(a3,q)) c.n(a3,q,o) q=m r=l break}else{c.n(a3,p,c.i(a3,q)) c.n(a3,q,o) q=m break}}}}k=!0}else{for(p=r;p<=q;++p){o=c.i(a3,p) if(a6.$2(o,a)<0){if(p!==r){c.n(a3,p,c.i(a3,r)) c.n(a3,r,o)}++r}else if(a6.$2(o,a1)>0)for(;!0;)if(a6.$2(c.i(a3,q),a1)>0){--q if(qg){for(;J.d(a6.$2(c.i(a3,r),a),0);)++r for(;J.d(a6.$2(c.i(a3,q),a1),0);)--q for(p=r;p<=q;++p){o=c.i(a3,p) if(a6.$2(o,a)===0){if(p!==r){c.n(a3,p,c.i(a3,r)) c.n(a3,r,o)}++r}else if(a6.$2(o,a1)===0)for(;!0;)if(a6.$2(c.i(a3,q),a1)===0){--q if(q36)throw H.a(P.bz(b,2,36,"radix",m)) if(b===10&&r!=null)return parseInt(a,10) if(b<10||r==null){q=b<=10?47+b:86+b p=s[1] for(o=p.length,n=0;nq)return m}return parseInt(a,b)}, apb:function(a){var s,r if(typeof a!="string")H.e(H.bZ(a)) if(!/^\s*[+-]?(?:Infinity|NaN|(?:\.\d+|\d+(?:\.\d*)?)(?:[eE][+-]?\d+)?)\s*$/.test(a))return null s=parseFloat(a) if(isNaN(s)){r=J.fY(a) if(r==="NaN"||r==="+NaN"||r==="-NaN")return s return null}return s}, a1B:function(a){return H.aA_(a)}, aA_:function(a){var s,r,q,p if(a instanceof P.z)return H.fT(H.bv(a),null) if(J.jn(a)===C.ra||t.kk.b(a)){s=C.jh(a) r=s!=="Object"&&s!=="" if(r)return s q=a.constructor if(typeof q=="function"){p=q.name if(typeof p=="string")r=p!=="Object"&&p!=="" else r=!1 if(r)return p}}return H.fT(H.bv(a),null)}, aA2:function(){return Date.now()}, aAa:function(){var s,r if($.a1C!==0)return $.a1C=1000 if(typeof window=="undefined")return s=window if(s==null)return r=s.performance if(r==null)return if(typeof r.now!="function")return $.a1C=1e6 $.HP=new H.a1A(r)}, aA1:function(){if(!!self.location)return self.location.href return null}, apa:function(a){var s,r,q,p,o=a.length if(o<=500)return String.fromCharCode.apply(null,a) for(s="",r=0;r65535)return H.aAb(a)}return H.apa(a)}, aAc:function(a,b,c){var s,r,q,p if(c<=500&&b===0&&c===a.length)return String.fromCharCode.apply(null,a) for(s=b,r="";s>>0,s&1023|56320)}}throw H.a(P.bz(a,0,1114111,null,null))}, f6:function(a){if(a.date===void 0)a.date=new Date(a.a) return a.date}, aA9:function(a){return a.b?H.f6(a).getUTCFullYear()+0:H.f6(a).getFullYear()+0}, aA7:function(a){return a.b?H.f6(a).getUTCMonth()+1:H.f6(a).getMonth()+1}, aA3:function(a){return a.b?H.f6(a).getUTCDate()+0:H.f6(a).getDate()+0}, aA4:function(a){return a.b?H.f6(a).getUTCHours()+0:H.f6(a).getHours()+0}, aA6:function(a){return a.b?H.f6(a).getUTCMinutes()+0:H.f6(a).getMinutes()+0}, aA8:function(a){return a.b?H.f6(a).getUTCSeconds()+0:H.f6(a).getSeconds()+0}, aA5:function(a){return a.b?H.f6(a).getUTCMilliseconds()+0:H.f6(a).getMilliseconds()+0}, akf:function(a,b){if(a==null||H.ip(a)||typeof a=="number"||typeof a=="string")throw H.a(H.bZ(a)) return a[b]}, apd:function(a,b,c){if(a==null||H.ip(a)||typeof a=="number"||typeof a=="string")throw H.a(H.bZ(a)) a[b]=c}, lw:function(a,b,c){var s,r,q={} q.a=0 s=[] r=[] q.a=b.length C.b.J(s,b) q.b="" if(c!=null&&!c.gO(c))c.K(0,new H.a1z(q,r,s)) ""+q.a return J.awL(a,new H.ZB(C.Cr,0,s,r,0))}, aA0:function(a,b,c){var s,r,q,p if(b instanceof Array)s=c==null||c.gO(c) else s=!1 if(s){r=b q=r.length if(q===0){if(!!a.$0)return a.$0()}else if(q===1){if(!!a.$1)return a.$1(r[0])}else if(q===2){if(!!a.$2)return a.$2(r[0],r[1])}else if(q===3){if(!!a.$3)return a.$3(r[0],r[1],r[2])}else if(q===4){if(!!a.$4)return a.$4(r[0],r[1],r[2],r[3])}else if(q===5)if(!!a.$5)return a.$5(r[0],r[1],r[2],r[3],r[4]) p=a[""+"$"+q] if(p!=null)return p.apply(a,r)}return H.azZ(a,b,c)}, azZ:function(a,b,c){var s,r,q,p,o,n,m,l,k,j,i,h,g if(b!=null)s=b instanceof Array?b:P.bk(b,!0,t.z) else s=[] r=s.length q=a.$R if(rq+n.length)return H.lw(a,s,null) C.b.J(s,n.slice(r-q)) return l.apply(a,s)}else{if(r>q)return H.lw(a,s,c) k=Object.keys(n) if(c==null)for(o=k.length,j=0;j=s)return P.bY(b,a,r,null,s) return P.qG(b,r,null)}, aFc:function(a,b,c){if(a<0||a>c)return P.bz(a,0,c,"start",null) if(b!=null)if(bc)return P.bz(b,a,c,"end",null) return new P.hx(!0,b,"end",null)}, bZ:function(a){return new P.hx(!0,a,null,null)}, B:function(a){if(typeof a!="number")throw H.a(H.bZ(a)) return a}, a:function(a){var s,r if(a==null)a=new P.GV() s=new Error() s.dartException=a r=H.aGj if("defineProperty" in Object){Object.defineProperty(s,"message",{get:r}) s.name=""}else s.toString=r return s}, aGj:function(){return J.bB(this.dartException)}, e:function(a){throw H.a(a)}, L:function(a){throw H.a(P.bp(a))}, kh:function(a){var s,r,q,p,o,n a=H.asy(a.replace(String({}),"$receiver$")) s=a.match(/\\\$[a-zA-Z]+\\\$/g) if(s==null)s=H.b([],t.s) r=s.indexOf("\\$arguments\\$") q=s.indexOf("\\$argumentsExpr\\$") p=s.indexOf("\\$expr\\$") o=s.indexOf("\\$method\\$") n=s.indexOf("\\$receiver\\$") return new H.a7w(a.replace(new RegExp("\\\\\\$arguments\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$argumentsExpr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$expr\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$method\\\\\\$","g"),"((?:x|[^x])*)").replace(new RegExp("\\\\\\$receiver\\\\\\$","g"),"((?:x|[^x])*)"),r,q,p,o,n)}, a7x:function(a){return function($expr$){var $argumentsExpr$="$arguments$" try{$expr$.$method$($argumentsExpr$)}catch(s){return s.message}}(a)}, apV:function(a){return function($expr$){try{$expr$.$method$}catch(s){return s.message}}(a)}, ajO:function(a,b){var s=b==null,r=s?null:b.method return new H.Gb(a,r,s?null:b.receiver)}, U:function(a){if(a==null)return new H.GW(a) if(a instanceof H.vQ)return H.mh(a,a.a) if(typeof a!=="object")return a if("dartException" in a)return H.mh(a,a.dartException) return H.aEv(a)}, mh:function(a,b){if(t.Lt.b(b))if(b.$thrownJsError==null)b.$thrownJsError=a return b}, aEv:function(a){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e=null if(!("message" in a))return a s=a.message if("number" in a&&typeof a.number=="number"){r=a.number q=r&65535 if((C.f.ew(r,16)&8191)===10)switch(q){case 438:return H.mh(a,H.ajO(H.c(s)+" (Error "+q+")",e)) case 445:case 5007:p=H.c(s)+" (Error "+q+")" return H.mh(a,new H.xe(p,e))}}if(a instanceof TypeError){o=$.atk() n=$.atl() m=$.atm() l=$.atn() k=$.atq() j=$.atr() i=$.atp() $.ato() h=$.att() g=$.ats() f=o.ig(s) if(f!=null)return H.mh(a,H.ajO(s,f)) else{f=n.ig(s) if(f!=null){f.method="call" return H.mh(a,H.ajO(s,f))}else{f=m.ig(s) if(f==null){f=l.ig(s) if(f==null){f=k.ig(s) if(f==null){f=j.ig(s) if(f==null){f=i.ig(s) if(f==null){f=l.ig(s) if(f==null){f=h.ig(s) if(f==null){f=g.ig(s) p=f!=null}else p=!0}else p=!0}else p=!0}else p=!0}else p=!0}else p=!0}else p=!0 if(p)return H.mh(a,new H.xe(s,f==null?e:f.method))}}return H.mh(a,new H.Ks(typeof s=="string"?s:""))}if(a instanceof RangeError){if(typeof s=="string"&&s.indexOf("call stack")!==-1)return new P.yH() s=function(b){try{return String(b)}catch(d){}return null}(a) return H.mh(a,new P.hx(!1,e,e,typeof s=="string"?s.replace(/^RangeError:\s*/,""):s))}if(typeof InternalError=="function"&&a instanceof InternalError)if(typeof s=="string"&&s==="too much recursion")return new P.yH() return a}, aB:function(a){var s if(a instanceof H.vQ)return a.b if(a==null)return new H.BB(a) s=a.$cachedTrace if(s!=null)return s return a.$cachedTrace=new H.BB(a)}, CM:function(a){if(a==null||typeof a!="object")return J.a3(a) else return H.di(a)}, asa:function(a,b){var s,r,q,p=a.length for(s=0;s=27 if(o)return H.ay3(r,!p,s,b) if(r===0){p=$.jw $.jw=p+1 n="self"+H.c(p) p="return function(){var "+n+" = this." o=$.uW return new Function(p+(o==null?$.uW=H.Tl("self"):o)+";return "+n+"."+H.c(s)+"();}")()}m="abcdefghijklmnopqrstuvwxyz".split("").splice(0,r).join(",") p=$.jw $.jw=p+1 m+=H.c(p) p="return function("+m+"){return this." o=$.uW return new Function(p+(o==null?$.uW=H.Tl("self"):o)+"."+H.c(s)+"("+m+");}")()}, ay4:function(a,b,c,d){var s=H.anq,r=H.axH switch(b?-1:a){case 0:throw H.a(new H.IN("Intercepted function with no arguments.")) case 1:return function(e,f,g){return function(){return f(this)[e](g(this))}}(c,s,r) case 2:return function(e,f,g){return function(h){return f(this)[e](g(this),h)}}(c,s,r) case 3:return function(e,f,g){return function(h,i){return f(this)[e](g(this),h,i)}}(c,s,r) case 4:return function(e,f,g){return function(h,i,j){return f(this)[e](g(this),h,i,j)}}(c,s,r) case 5:return function(e,f,g){return function(h,i,j,k){return f(this)[e](g(this),h,i,j,k)}}(c,s,r) case 6:return function(e,f,g){return function(h,i,j,k,l){return f(this)[e](g(this),h,i,j,k,l)}}(c,s,r) default:return function(e,f,g,h){return function(){h=[g(this)] Array.prototype.push.apply(h,arguments) return e.apply(f(this),h)}}(d,s,r)}}, ay5:function(a,b){var s,r,q,p,o,n,m,l=$.uW if(l==null)l=$.uW=H.Tl("self") s=$.anp if(s==null)s=$.anp=H.Tl("receiver") r=b.$stubName q=b.length p=a[r] o=b==null?p==null:b===p n=!o||q>=28 if(n)return H.ay4(q,!o,r,b) if(q===1){o="return function(){return this."+l+"."+H.c(r)+"(this."+s+");" n=$.jw $.jw=n+1 return new Function(o+H.c(n)+"}")()}m="abcdefghijklmnopqrstuvwxyz".split("").splice(0,q-1).join(",") o="return function("+m+"){return this."+l+"."+H.c(r)+"(this."+s+", "+m+");" n=$.jw $.jw=n+1 return new Function(o+H.c(n)+"}")()}, als:function(a,b,c,d,e,f,g){return H.ay6(a,b,c,d,!!e,!!f,g)}, axF:function(a,b){return H.QT(v.typeUniverse,H.bv(a.a),b)}, axG:function(a,b){return H.QT(v.typeUniverse,H.bv(a.c),b)}, anq:function(a){return a.a}, axH:function(a){return a.c}, Tl:function(a){var s,r,q,p=new H.pj("self","target","receiver","name"),o=J.ZA(Object.getOwnPropertyNames(p)) for(s=o.length,r=0;r").a3(b).h("cU<1,2>"))}, aJs:function(a,b,c){Object.defineProperty(a,b,{value:c,enumerable:false,writable:true,configurable:true})}, aFP:function(a){var s,r,q,p,o,n=$.ash.$1(a),m=$.ahx[n] if(m!=null){Object.defineProperty(a,v.dispatchPropertyName,{value:m,enumerable:false,writable:true,configurable:true}) return m.i}s=$.ai0[n] if(s!=null)return s r=v.interceptorsByTag[n] if(r==null){q=$.arT.$2(a,n) if(q!=null){m=$.ahx[q] if(m!=null){Object.defineProperty(a,v.dispatchPropertyName,{value:m,enumerable:false,writable:true,configurable:true}) return m.i}s=$.ai0[q] if(s!=null)return s r=v.interceptorsByTag[q] n=q}}if(r==null)return null s=r.prototype p=n[0] if(p==="!"){m=H.aia(s) $.ahx[n]=m Object.defineProperty(a,v.dispatchPropertyName,{value:m,enumerable:false,writable:true,configurable:true}) return m.i}if(p==="~"){$.ai0[n]=s return s}if(p==="-"){o=H.aia(s) Object.defineProperty(Object.getPrototypeOf(a),v.dispatchPropertyName,{value:o,enumerable:false,writable:true,configurable:true}) return o.i}if(p==="+")return H.asu(a,s) if(p==="*")throw H.a(P.ce(n)) if(v.leafTags[n]===true){o=H.aia(s) Object.defineProperty(Object.getPrototypeOf(a),v.dispatchPropertyName,{value:o,enumerable:false,writable:true,configurable:true}) return o.i}else return H.asu(a,s)}, asu:function(a,b){var s=Object.getPrototypeOf(a) Object.defineProperty(s,v.dispatchPropertyName,{value:J.alB(b,s,null,null),enumerable:false,writable:true,configurable:true}) return b}, aia:function(a){return J.alB(a,!1,null,!!a.$ib1)}, aFQ:function(a,b,c){var s=b.prototype if(v.leafTags[a]===true)return H.aia(s) else return J.alB(s,c,null,null)}, aFA:function(){if(!0===$.aly)return $.aly=!0 H.aFB()}, aFB:function(){var s,r,q,p,o,n,m,l $.ahx=Object.create(null) $.ai0=Object.create(null) H.aFz() s=v.interceptorsByTag r=Object.getOwnPropertyNames(s) if(typeof window!="undefined"){window q=function(){} for(p=0;p=0 else if(b instanceof H.q6){s=C.c.bw(a,c) return b.b.test(s)}else{s=J.amd(b,C.c.bw(a,c)) return!s.gO(s)}}, aFg:function(a){if(a.indexOf("$",0)>=0)return a.replace(/\$/g,"$$$$") return a}, asy:function(a){if(/[[\]{}()*+?.\\^$|]/.test(a))return a.replace(/[[\]{}()*+?.\\^$|]/g,"\\$&") return a}, is:function(a,b,c){var s=H.aG6(a,b,c) return s}, aG6:function(a,b,c){var s,r,q,p if(b===""){if(a==="")return c s=a.length for(r=c,q=0;q=0)return a.split(b).join(c) return a.replace(new RegExp(H.asy(b),'g'),H.aFg(c))}, aDZ:function(a){return a.i(0,0)}, aEn:function(a){return a}, alK:function(a,b,c,d){var s,r,q,p if(c==null)c=H.aDV() if(d==null)d=H.aDW() if(typeof b=="string")return H.aG5(a,b,c,d) if(!t.lq.b(b))throw H.a(P.eq(b,"pattern","is not a Pattern")) for(s=J.amd(b,a),s=s.gM(s),r=0,q="";s.q();){p=s.gw(s) q=q+H.c(d.$1(C.c.V(a,r,p.gbb(p))))+H.c(c.$1(p)) r=p.gaX(p)}s=q+H.c(d.$1(C.c.bw(a,r))) return s.charCodeAt(0)==0?s:s}, aG4:function(a,b,c){var s,r,q=a.length,p=H.c(c.$1("")) for(s=0;ss+1)if((C.c.W(a,s+1)&4294966272)===56320){r=s+2 p+=H.c(c.$1(C.c.V(a,s,r))) s=r continue}p+=H.c(c.$1(a[s]));++s}p=p+H.c(b.$1(new H.ke(s,"")))+H.c(c.$1("")) return p.charCodeAt(0)==0?p:p}, aG5:function(a,b,c,d){var s,r,q,p,o=b.length if(o===0)return H.aG4(a,c,d) s=a.length for(r=0,q="";r>>0!==a||a>=c)throw H.a(H.iq(b,a))}, ma:function(a,b,c){var s if(!(a>>>0!==a))if(b==null)s=a>c else s=b>>>0!==b||a>b||b>c else s=!0 if(s)throw H.a(H.aFc(a,b,c)) if(b==null)return c return b}, nx:function nx(){}, dg:function dg(){}, x2:function x2(){}, qm:function qm(){}, lq:function lq(){}, fy:function fy(){}, x3:function x3(){}, x4:function x4(){}, GO:function GO(){}, x5:function x5(){}, GP:function GP(){}, GQ:function GQ(){}, x6:function x6(){}, x7:function x7(){}, ny:function ny(){}, AV:function AV(){}, AW:function AW(){}, AX:function AX(){}, AY:function AY(){}, aAB:function(a,b){var s=b.c return s==null?b.c=H.akS(a,b.z,!0):s}, apt:function(a,b){var s=b.c return s==null?b.c=H.BW(a,"ax",[b.z]):s}, apu:function(a){var s=a.y if(s===6||s===7||s===8)return H.apu(a.z) return s===11||s===12}, aAA:function(a){return a.cy}, T:function(a){return H.QS(v.typeUniverse,a,!1)}, aFE:function(a,b){var s,r,q,p,o if(a==null)return null s=b.Q r=a.cx if(r==null)r=a.cx=new Map() q=b.cy p=r.get(q) if(p!=null)return p o=H.kG(v.typeUniverse,a.z,s,0) r.set(q,o) return o}, kG:function(a,b,a0,a1){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c=b.y switch(c){case 5:case 1:case 2:case 3:case 4:return b case 6:s=b.z r=H.kG(a,s,a0,a1) if(r===s)return b return H.aqI(a,r,!0) case 7:s=b.z r=H.kG(a,s,a0,a1) if(r===s)return b return H.akS(a,r,!0) case 8:s=b.z r=H.kG(a,s,a0,a1) if(r===s)return b return H.aqH(a,r,!0) case 9:q=b.Q p=H.CE(a,q,a0,a1) if(p===q)return b return H.BW(a,b.z,p) case 10:o=b.z n=H.kG(a,o,a0,a1) m=b.Q l=H.CE(a,m,a0,a1) if(n===o&&l===m)return b return H.akQ(a,n,l) case 11:k=b.z j=H.kG(a,k,a0,a1) i=b.Q h=H.aEo(a,i,a0,a1) if(j===k&&h===i)return b return H.aqG(a,j,h) case 12:g=b.Q a1+=g.length f=H.CE(a,g,a0,a1) o=b.z n=H.kG(a,o,a0,a1) if(f===g&&n===o)return b return H.akR(a,n,f,!0) case 13:e=b.z if(e0;--p)a5.push("T"+(q+p)) for(o=t.O,n=t.ub,m=t.K,l="<",k="",p=0;p0){a1+=a2+"[" for(a2="",p=0;p0){a1+=a2+"{" for(a2="",p=0;p "+H.c(a0)}, fT:function(a,b){var s,r,q,p,o,n,m=a.y if(m===5)return"erased" if(m===2)return"dynamic" if(m===3)return"void" if(m===1)return"Never" if(m===4)return"any" if(m===6){s=H.fT(a.z,b) return s}if(m===7){r=a.z s=H.fT(r,b) q=r.y return J.mk(q===11||q===12?C.c.U("(",s)+")":s,"?")}if(m===8)return"FutureOr<"+H.c(H.fT(a.z,b))+">" if(m===9){p=H.aEt(a.z) o=a.Q return o.length!==0?p+("<"+H.aEf(o,b)+">"):p}if(m===11)return H.arn(a,b,null) if(m===12)return H.arn(a.z,b,a.Q) if(m===13){b.toString n=a.z return b[b.length-1-n]}return"?"}, aEt:function(a){var s,r=H.asK(a) if(r!=null)return r s="minified:"+a return s}, aqJ:function(a,b){var s=a.tR[b] for(;typeof s=="string";)s=a.tR[s] return s}, aCE:function(a,b){var s,r,q,p,o,n=a.eT,m=n[b] if(m==null)return H.QS(a,b,!1) else if(typeof m=="number"){s=m r=H.BX(a,5,"#") q=[] for(p=0;p" s=a.eC.get(p) if(s!=null)return s r=new H.i3(null,null) r.y=9 r.z=b r.Q=c if(c.length>0)r.c=c[0] r.cy=p q=H.m9(a,r) a.eC.set(p,q) return q}, akQ:function(a,b,c){var s,r,q,p,o,n if(b.y===10){s=b.z r=b.Q.concat(c)}else{r=c s=b}q=s.cy+(";<"+H.QR(r)+">") p=a.eC.get(q) if(p!=null)return p o=new H.i3(null,null) o.y=10 o.z=s o.Q=r o.cy=q n=H.m9(a,o) a.eC.set(q,n) return n}, aqG:function(a,b,c){var s,r,q,p,o,n=b.cy,m=c.a,l=m.length,k=c.b,j=k.length,i=c.c,h=i.length,g="("+H.QR(m) if(j>0){s=l>0?",":"" r=H.QR(k) g+=s+"["+r+"]"}if(h>0){s=l>0?",":"" r=H.aCv(i) g+=s+"{"+r+"}"}q=n+(g+")") p=a.eC.get(q) if(p!=null)return p o=new H.i3(null,null) o.y=11 o.z=b o.Q=c o.cy=q r=H.m9(a,o) a.eC.set(q,r) return r}, akR:function(a,b,c,d){var s,r=b.cy+("<"+H.QR(c)+">"),q=a.eC.get(r) if(q!=null)return q s=H.aCx(a,b,c,r,d) a.eC.set(r,s) return s}, aCx:function(a,b,c,d,e){var s,r,q,p,o,n,m,l if(e){s=c.length r=new Array(s) for(q=0,p=0;p0){n=H.kG(a,b,r,0) m=H.CE(a,c,r,0) return H.akR(a,n,m,c!==m)}}l=new H.i3(null,null) l.y=12 l.z=b l.Q=c l.cy=d return H.m9(a,l)}, aqr:function(a,b,c,d){return{u:a,e:b,r:c,s:[],p:0,n:d}}, aqt:function(a){var s,r,q,p,o,n,m,l,k,j,i,h,g=a.r,f=a.s for(s=g.length,r=0;r=48&&q<=57)r=H.aCf(r+1,q,g,f) else if((((q|32)>>>0)-97&65535)<26||q===95||q===36)r=H.aqs(a,r,g,f,!1) else if(q===46)r=H.aqs(a,r,g,f,!0) else{++r switch(q){case 44:break case 58:f.push(!1) break case 33:f.push(!0) break case 59:f.push(H.m5(a.u,a.e,f.pop())) break case 94:f.push(H.aCA(a.u,f.pop())) break case 35:f.push(H.BX(a.u,5,"#")) break case 64:f.push(H.BX(a.u,2,"@")) break case 126:f.push(H.BX(a.u,3,"~")) break case 60:f.push(a.p) a.p=f.length break case 62:p=a.u o=f.splice(a.p) H.akN(a.u,a.e,o) a.p=f.pop() n=f.pop() if(typeof n=="string")f.push(H.BW(p,n,o)) else{m=H.m5(p,a.e,n) switch(m.y){case 11:f.push(H.akR(p,m,o,a.n)) break default:f.push(H.akQ(p,m,o)) break}}break case 38:H.aCg(a,f) break case 42:l=a.u f.push(H.aqI(l,H.m5(l,a.e,f.pop()),a.n)) break case 63:l=a.u f.push(H.akS(l,H.m5(l,a.e,f.pop()),a.n)) break case 47:l=a.u f.push(H.aqH(l,H.m5(l,a.e,f.pop()),a.n)) break case 40:f.push(a.p) a.p=f.length break case 41:p=a.u k=new H.MZ() j=p.sEA i=p.sEA n=f.pop() if(typeof n=="number")switch(n){case-1:j=f.pop() break case-2:i=f.pop() break default:f.push(n) break}else f.push(n) o=f.splice(a.p) H.akN(a.u,a.e,o) a.p=f.pop() k.a=o k.b=j k.c=i f.push(H.aqG(p,H.m5(p,a.e,f.pop()),k)) break case 91:f.push(a.p) a.p=f.length break case 93:o=f.splice(a.p) H.akN(a.u,a.e,o) a.p=f.pop() f.push(o) f.push(-1) break case 123:f.push(a.p) a.p=f.length break case 125:o=f.splice(a.p) H.aCi(a.u,a.e,o) a.p=f.pop() f.push(o) f.push(-2) break default:throw"Bad character "+q}}}h=f.pop() return H.m5(a.u,a.e,h)}, aCf:function(a,b,c,d){var s,r,q=b-48 for(s=c.length;a=48&&r<=57))break q=q*10+(r-48)}d.push(q) return a}, aqs:function(a,b,c,d,e){var s,r,q,p,o,n,m=b+1 for(s=c.length;m>>0)-97&65535)<26||r===95||r===36))q=r>=48&&r<=57 else q=!0 if(!q)break}}p=c.substring(b,m) if(e){s=a.u o=a.e if(o.y===10)o=o.z n=H.aqJ(s,o.z)[p] if(n==null)H.e('No "'+p+'" in "'+H.aAA(o)+'"') d.push(H.QT(s,o,n))}else d.push(p) return m}, aCg:function(a,b){var s=b.pop() if(0===s){b.push(H.BX(a.u,1,"0&")) return}if(1===s){b.push(H.BX(a.u,4,"1&")) return}throw H.a(P.pc("Unexpected extended operation "+H.c(s)))}, m5:function(a,b,c){if(typeof c=="string")return H.BW(a,c,a.sEA) else if(typeof c=="number")return H.aCh(a,b,c) else return c}, akN:function(a,b,c){var s,r=c.length for(s=0;sn)return!1 m=n-o l=s.b k=r.b j=l.length i=k.length if(o+j=d)return!1 a1=f[b] b+=3 if(a04294967295)throw H.a(P.bz(a,0,4294967295,"length",null)) return J.az9(new Array(a),b)}, wm:function(a,b){if(!H.dz(a)||a<0)throw H.a(P.bc("Length must be a non-negative integer: "+H.c(a))) return H.b(new Array(a),b.h("o<0>"))}, aor:function(a,b){if(a<0)throw H.a(P.bc("Length must be a non-negative integer: "+a)) return H.b(new Array(a),b.h("o<0>"))}, az9:function(a,b){return J.ZA(H.b(a,b.h("o<0>")))}, ZA:function(a){a.fixed$length=Array return a}, aos:function(a){a.fixed$length=Array a.immutable$list=Array return a}, aza:function(a,b){return J.dJ(a,b)}, aot:function(a){if(a<256)switch(a){case 9:case 10:case 11:case 12:case 13:case 32:case 133:case 160:return!0 default:return!1}switch(a){case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8232:case 8233:case 8239:case 8287:case 12288:case 65279:return!0 default:return!1}}, ajK:function(a,b){var s,r for(s=a.length;b0;b=s){s=b-1 r=C.c.al(a,s) if(r!==32&&r!==13&&!J.aot(r))break}return b}, jn:function(a){if(typeof a=="number"){if(Math.floor(a)==a)return J.q4.prototype return J.wo.prototype}if(typeof a=="string")return J.jK.prototype if(a==null)return J.q5.prototype if(typeof a=="boolean")return J.wn.prototype if(a.constructor==Array)return J.o.prototype if(typeof a!="object"){if(typeof a=="function")return J.iK.prototype return a}if(a instanceof P.z)return a return J.RZ(a)}, aFq:function(a){if(typeof a=="number")return J.lh.prototype if(typeof a=="string")return J.jK.prototype if(a==null)return a if(a.constructor==Array)return J.o.prototype if(typeof a!="object"){if(typeof a=="function")return J.iK.prototype return a}if(a instanceof P.z)return a return J.RZ(a)}, ag:function(a){if(typeof a=="string")return J.jK.prototype if(a==null)return a if(a.constructor==Array)return J.o.prototype if(typeof a!="object"){if(typeof a=="function")return J.iK.prototype return a}if(a instanceof P.z)return a return J.RZ(a)}, bP:function(a){if(a==null)return a if(a.constructor==Array)return J.o.prototype if(typeof a!="object"){if(typeof a=="function")return J.iK.prototype return a}if(a instanceof P.z)return a return J.RZ(a)}, aFr:function(a){if(typeof a=="number"){if(Math.floor(a)==a)return J.q4.prototype return J.wo.prototype}if(a==null)return a if(!(a instanceof P.z))return J.j6.prototype return a}, oZ:function(a){if(typeof a=="number")return J.lh.prototype if(a==null)return a if(!(a instanceof P.z))return J.j6.prototype return a}, asf:function(a){if(typeof a=="number")return J.lh.prototype if(typeof a=="string")return J.jK.prototype if(a==null)return a if(!(a instanceof P.z))return J.j6.prototype return a}, cj:function(a){if(typeof a=="string")return J.jK.prototype if(a==null)return a if(!(a instanceof P.z))return J.j6.prototype return a}, k:function(a){if(a==null)return a if(typeof a!="object"){if(typeof a=="function")return J.iK.prototype return a}if(a instanceof P.z)return a return J.RZ(a)}, mg:function(a){if(a==null)return a if(!(a instanceof P.z))return J.j6.prototype return a}, mk:function(a,b){if(typeof a=="number"&&typeof b=="number")return a+b return J.aFq(a).U(a,b)}, d:function(a,b){if(a==null)return b==null if(typeof a!="object")return b!=null&&a===b return J.jn(a).k(a,b)}, aux:function(a,b){if(typeof a=="number"&&typeof b=="number")return a*b return J.asf(a).a4(a,b)}, aiI:function(a,b){if(typeof a=="number"&&typeof b=="number")return a-b return J.oZ(a).a5(a,b)}, auy:function(a,b,c){return J.k(a).VF(a,b,c)}, auz:function(a){return J.k(a).VY(a)}, auA:function(a,b){return J.k(a).VZ(a,b)}, aGp:function(a,b,c){return J.k(a).W_(a,b,c)}, auB:function(a,b,c,d){return J.k(a).W0(a,b,c,d)}, auC:function(a,b){return J.k(a).W1(a,b)}, auD:function(a,b,c){return J.k(a).W2(a,b,c)}, auE:function(a,b){return J.k(a).W3(a,b)}, auF:function(a,b,c,d){return J.k(a).W4(a,b,c,d)}, auG:function(a,b,c,d,e,f){return J.k(a).W5(a,b,c,d,e,f)}, auH:function(a,b,c,d,e){return J.k(a).W6(a,b,c,d,e)}, auI:function(a,b){return J.k(a).W7(a,b)}, am9:function(a,b){return J.k(a).W8(a,b)}, auJ:function(a,b){return J.k(a).Ws(a,b)}, ama:function(a){return J.k(a).WB(a)}, auK:function(a,b){return J.k(a).X1(a,b)}, aS:function(a,b){if(typeof b==="number")if(a.constructor==Array||typeof a=="string"||H.asn(a,a[v.dispatchPropertyName]))if(b>>>0===b&&b>>0===b&&b0?1:a<0?-1:a return J.aFr(a).gwq(a)}, amU:function(a){return J.mg(a).gwt(a)}, Sv:function(a){return J.k(a).gb9(a)}, aiR:function(a){return J.k(a).gj7(a)}, awj:function(a){return J.k(a).gnO(a)}, aiS:function(a){return J.k(a).gm(a)}, amV:function(a){return J.k(a).gaZ(a)}, awk:function(a){return J.k(a).PB(a)}, aiT:function(a){return J.k(a).dt(a)}, aiU:function(a){return J.k(a).PD(a)}, awl:function(a){return J.k(a).PG(a)}, awm:function(a){return J.k(a).PL(a)}, awn:function(a,b,c,d){return J.k(a).PM(a,b,c,d)}, amW:function(a,b){return J.k(a).PN(a,b)}, awo:function(a,b,c){return J.k(a).PO(a,b,c)}, awp:function(a){return J.k(a).PP(a)}, awq:function(a){return J.k(a).PR(a)}, awr:function(a){return J.k(a).PS(a)}, aws:function(a){return J.k(a).PT(a)}, awt:function(a){return J.k(a).PU(a)}, awu:function(a){return J.k(a).PV(a)}, awv:function(a){return J.k(a).r_(a)}, aww:function(a,b,c){return J.bP(a).r3(a,b,c)}, awx:function(a){return J.k(a).Q2(a)}, awy:function(a,b,c,d,e){return J.k(a).Q3(a,b,c,d,e)}, awz:function(a){return J.k(a).Q4(a)}, awA:function(a){return J.k(a).r6(a)}, awB:function(a,b){return J.k(a).fw(a,b)}, awC:function(a,b){return J.k(a).kG(a,b)}, amX:function(a){return J.k(a).Bp(a)}, awD:function(a,b){return J.ag(a).eF(a,b)}, awE:function(a,b){return J.k(a).abr(a,b)}, amY:function(a){return J.k(a).abt(a)}, awF:function(a){return J.mg(a).q6(a)}, amZ:function(a,b){return J.bP(a).bI(a,b)}, awG:function(a,b){return J.k(a).ei(a,b)}, awH:function(a,b,c){return J.k(a).cG(a,b,c)}, awI:function(a){return J.mg(a).abQ(a)}, uo:function(a,b){return J.bP(a).fp(a,b)}, mn:function(a,b,c){return J.bP(a).dn(a,b,c)}, awJ:function(a,b,c,d){return J.bP(a).ic(a,b,c,d)}, an_:function(a,b,c){return J.cj(a).kn(a,b,c)}, awK:function(a,b,c){return J.k(a).e5(a,b,c)}, awL:function(a,b){return J.jn(a).vs(a,b)}, awM:function(a,b,c,d){return J.k(a).Oe(a,b,c,d)}, awN:function(a){return J.k(a).dr(a)}, awO:function(a,b,c,d){return J.k(a).adf(a,b,c,d)}, awP:function(a,b,c,d){return J.k(a).qz(a,b,c,d)}, an0:function(a,b){return J.k(a).kx(a,b)}, CZ:function(a,b,c){return J.k(a).bX(a,b,c)}, awQ:function(a,b,c,d,e){return J.k(a).adh(a,b,c,d,e)}, awR:function(a,b,c){return J.k(a).nH(a,b,c)}, an1:function(a,b,c){return J.k(a).adv(a,b,c)}, c9:function(a){return J.bP(a).c4(a)}, p5:function(a,b){return J.bP(a).u(a,b)}, an2:function(a,b,c){return J.k(a).vG(a,b,c)}, awS:function(a,b,c,d){return J.k(a).OJ(a,b,c,d)}, awT:function(a){return J.bP(a).em(a)}, an3:function(a,b,c){return J.bP(a).fu(a,b,c)}, awU:function(a,b,c,d){return J.ag(a).ky(a,b,c,d)}, awV:function(a,b,c,d){return J.k(a).j5(a,b,c,d)}, awW:function(a,b){return J.k(a).adM(a,b)}, awX:function(a){return J.k(a).e7(a)}, an4:function(a){return J.k(a).bj(a)}, an5:function(a,b){return J.k(a).lL(a,b)}, an6:function(a,b,c,d){return J.k(a).adY(a,b,c,d)}, an7:function(a){return J.k(a).bu(a)}, an8:function(a,b,c,d,e){return J.k(a).Qc(a,b,c,d,e)}, an9:function(a,b,c){return J.k(a).d_(a,b,c)}, awY:function(a){return J.k(a).Qk(a)}, awZ:function(a,b){return J.k(a).eo(a,b)}, ax_:function(a,b){return J.k(a).sai(a,b)}, ax0:function(a,b){return J.ag(a).sl(a,b)}, ax1:function(a,b){return J.k(a).say(a,b)}, ax2:function(a,b){return J.k(a).wf(a,b)}, ax3:function(a,b){return J.k(a).Dz(a,b)}, ax4:function(a,b){return J.k(a).DD(a,b)}, aiV:function(a,b){return J.k(a).wg(a,b)}, aiW:function(a,b){return J.k(a).Qu(a,b)}, Sw:function(a,b){return J.k(a).Qx(a,b)}, ax5:function(a,b){return J.k(a).DG(a,b)}, ax6:function(a,b){return J.k(a).DM(a,b)}, ax7:function(a,b,c,d,e){return J.bP(a).b3(a,b,c,d,e)}, ax8:function(a,b){return J.k(a).QF(a,b)}, ana:function(a,b){return J.k(a).DP(a,b)}, ax9:function(a,b){return J.k(a).DQ(a,b)}, axa:function(a,b){return J.k(a).DR(a,b)}, axb:function(a,b){return J.k(a).DS(a,b)}, up:function(a,b){return J.bP(a).fb(a,b)}, aiX:function(a,b){return J.bP(a).d5(a,b)}, axc:function(a,b){return J.cj(a).rm(a,b)}, p6:function(a,b){return J.cj(a).bv(a,b)}, D_:function(a,b,c){return J.cj(a).dv(a,b,c)}, axd:function(a){return J.mg(a).E5(a)}, uq:function(a,b){return J.cj(a).bw(a,b)}, e7:function(a,b,c){return J.cj(a).V(a,b,c)}, anb:function(a,b){return J.bP(a).hF(a,b)}, axe:function(a){return J.k(a).d4(a)}, axf:function(a,b){return J.k(a).Cu(a,b)}, ur:function(a,b,c){return J.k(a).bN(a,b,c)}, axg:function(a,b,c,d){return J.k(a).f6(a,b,c,d)}, axh:function(a){return J.k(a).ae2(a)}, aiY:function(a){return J.oZ(a).cU(a)}, axi:function(a){return J.bP(a).f7(a)}, axj:function(a){return J.cj(a).P9(a)}, anc:function(a,b){return J.oZ(a).j9(a,b)}, and:function(a){return J.bP(a).h7(a)}, bB:function(a){return J.jn(a).j(a)}, aU:function(a,b){return J.oZ(a).ba(a,b)}, aGr:function(a){return J.k(a).ae8(a)}, axk:function(a,b,c,d,e,f,g,h,i,j){return J.k(a).aec(a,b,c,d,e,f,g,h,i,j)}, ane:function(a,b,c){return J.k(a).af(a,b,c)}, fY:function(a){return J.cj(a).cY(a)}, axl:function(a){return J.cj(a).aeg(a)}, axm:function(a){return J.cj(a).CH(a)}, axn:function(a){return J.k(a).aeh(a)}, axo:function(a,b){return J.bP(a).nT(a,b)}, anf:function(a){return J.k(a).CU(a)}, i:function i(){}, wn:function wn(){}, q5:function q5(){}, P:function P(){}, HH:function HH(){}, j6:function j6(){}, iK:function iK(){}, o:function o(a){this.$ti=a}, ZE:function ZE(a){this.$ti=a}, dA:function dA(a,b,c){var _=this _.a=a _.b=b _.c=0 _.d=null _.$ti=c}, lh:function lh(){}, q4:function q4(){}, wo:function wo(){}, jK:function jK(){}},P={ aBM:function(){var s,r,q={} if(self.scheduleImmediate!=null)return P.aEC() if(self.MutationObserver!=null&&self.document!=null){s=self.document.createElement("div") r=self.document.createElement("span") q.a=null new self.MutationObserver(H.fh(new P.a8A(q),1)).observe(s,{childList:true}) return new P.a8z(q,s,r)}else if(self.setImmediate!=null)return P.aED() return P.aEE()}, aBN:function(a){self.scheduleImmediate(H.fh(new P.a8B(a),0))}, aBO:function(a){self.setImmediate(H.fh(new P.a8C(a),0))}, aBP:function(a){P.aky(C.G,a)}, aky:function(a,b){var s=C.f.cr(a.a,1000) return P.aCs(s<0?0:s,b)}, apT:function(a,b){var s=C.f.cr(a.a,1000) return P.aCt(s<0?0:s,b)}, aCs:function(a,b){var s=new P.BR(!0) s.Xf(a,b) return s}, aCt:function(a,b){var s=new P.BR(!1) s.Xg(a,b) return s}, af:function(a){return new P.L8(new P.a1($.R,a.h("a1<0>")),a.h("L8<0>"))}, ae:function(a,b){a.$2(0,null) b.b=!0 return b.a}, ak:function(a,b){P.ar3(a,b)}, ad:function(a,b){b.ci(0,a)}, ac:function(a,b){b.le(H.U(a),H.aB(a))}, ar3:function(a,b){var s,r,q=new P.agj(b),p=new P.agk(b) if(a instanceof P.a1)a.JT(q,p,t.z) else{s=t.z if(t.L0.b(a))a.f6(0,q,p,s) else{r=new P.a1($.R,t.LR) r.a=4 r.c=a r.JT(q,p,s)}}}, a9:function(a){var s=function(b,c){return function(d,e){while(true)try{b(d,e) break}catch(r){e=r d=c}}}(a,1) return $.R.vF(new P.ahm(s),t.H,t.S,t.z)}, bo:function(a,b,c){var s,r,q if(b===0){s=c.c if(s!=null)s.mf(null) else c.giJ(c).aT(0) return}else if(b===1){s=c.c if(s!=null)s.es(H.U(a),H.aB(a)) else{s=H.U(a) r=H.aB(a) c.giJ(c).zN(s,r) c.giJ(c).aT(0)}return}if(a instanceof P.m_){if(c.c!=null){b.$2(2,null) return}s=a.b if(s===0){s=a.a c.giJ(c).B(0,s) P.eV(new P.agh(c,b)) return}else if(s===1){q=a.a c.giJ(c).tW(0,q,!1).Cu(0,new P.agi(c,b)) return}}P.ar3(a,b)}, CD:function(a){var s=a.giJ(a) return s.gwx(s)}, aBQ:function(a,b){var s=new P.La(b.h("La<0>")) s.Xb(a,b) return s}, CC:function(a,b){return P.aBQ(a,b)}, Nk:function(a){return new P.m_(a,1)}, d5:function(){return C.Hd}, dy:function(a){return new P.m_(a,0)}, d6:function(a){return new P.m_(a,3)}, d9:function(a,b){return new P.BH(a,b.h("BH<0>"))}, SS:function(a,b){var s=H.e3(a,"error",t.K) return new P.mu(s,b==null?P.pe(a):b)}, pe:function(a){var s if(t.Lt.b(a)){s=a.go8() if(s!=null)return s}return C.oF}, ayT:function(a,b){var s=new P.a1($.R,b.h("a1<0>")) P.ci(C.G,new P.XH(s,a)) return s}, dD:function(a,b){var s=new P.a1($.R,b.h("a1<0>")) s.fE(a) return s}, aoc:function(a,b,c){var s,r H.e3(a,"error",t.K) s=$.R if(s!==C.F){r=s.k9(a,b) if(r!=null){a=r.a b=r.b}}if(b==null)b=P.pe(a) s=new P.a1($.R,c.h("a1<0>")) s.rD(a,b) return s}, ajF:function(a,b,c){var s b==null s=new P.a1($.R,c.h("a1<0>")) P.ci(a,new P.XG(b,s,c)) return s}, pS:function(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g={},f=null,e=!1,d=new P.a1($.R,b.h("a1>")) g.a=null g.b=0 g.c=$ s=new P.XI(g) r=new P.XJ(g) g.d=$ q=new P.XK(g) p=new P.XL(g) o=new P.XN(g,f,e,d,r,p,s,q) try{for(j=J.as(a),i=t.P;j.q();){n=j.gw(j) m=g.b J.axg(n,new P.XM(g,m,d,f,e,s,q,b),o,i);++g.b}j=g.b if(j===0){j=d j.mf(H.b([],b.h("o<0>"))) return j}g.a=P.b6(j,null,!1,b.h("0?"))}catch(h){l=H.U(h) k=H.aB(h) if(g.b===0||e)return P.aoc(l,k,b.h("v<0>")) else{r.$1(l) p.$1(k)}}return d}, ay8:function(a){return new P.aH(new P.a1($.R,a.h("a1<0>")),a.h("aH<0>"))}, al1:function(a,b,c){var s=$.R.k9(b,c) if(s!=null){b=s.a c=s.b}else if(c==null)c=P.pe(b) a.es(b,c)}, aaC:function(a,b){var s,r for(;s=a.a,s===2;)a=a.c if(s>=4){r=b.tA() b.a=a.a b.c=a.c P.tv(b,r)}else{r=b.c b.a=2 b.c=a a.Ir(r)}}, tv:function(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g,f={},e=f.a=a for(s=t.L0;!0;){r={} q=e.a===8 if(b==null){if(q){s=e.c e.b.kf(s.a,s.b)}return}r.a=b p=b.a for(e=b;p!=null;e=p,p=o){e.a=null P.tv(f.a,e) r.a=p o=p.a}n=f.a m=n.c r.b=q r.c=m l=!q if(l){k=e.c k=(k&1)!==0||(k&15)===8}else k=!0 if(k){j=e.b.b if(q){e=n.b e=!(e===j||e.gli()===j.gli())}else e=!1 if(e){e=f.a s=e.c e.b.kf(s.a,s.b) return}i=$.R if(i!==j)$.R=j else i=null e=r.a.c if((e&15)===8)new P.aaK(r,f,q).$0() else if(l){if((e&1)!==0)new P.aaJ(r,m).$0()}else if((e&2)!==0)new P.aaI(f,r).$0() if(i!=null)$.R=i e=r.c if(s.b(e)){n=r.a.$ti n=n.h("ax<2>").b(e)||!n.Q[1].b(e)}else n=!1 if(n){h=r.a.b if(e instanceof P.a1)if(e.a>=4){g=h.c h.c=null b=h.tB(g) h.a=e.a h.c=e.c f.a=e continue}else P.aaC(e,h) else h.xf(e) return}}h=r.a.b g=h.c h.c=null b=h.tB(g) e=r.b n=r.c if(!e){h.a=4 h.c=n}else{h.a=8 h.c=n}f.a=h e=h}}, arG:function(a,b){if(t.Hg.b(a))return b.vF(a,t.z,t.K,t.Km) if(t.N2.b(a))return b.lI(a,t.z,t.K) throw H.a(P.eq(a,"onError","Error handler must accept one Object or one Object and a StackTrace as arguments, and return a valid result"))}, aE0:function(){var s,r for(s=$.uf;s!=null;s=$.uf){$.CB=null r=s.b $.uf=r if(r==null)$.CA=null s.a.$0()}}, aEk:function(){$.ale=!0 try{P.aE0()}finally{$.CB=null $.ale=!1 if($.uf!=null)$.alR().$1(P.arU())}}, arN:function(a){var s=new P.L9(a),r=$.CA if(r==null){$.uf=$.CA=s if(!$.ale)$.alR().$1(P.arU())}else $.CA=r.b=s}, aEi:function(a){var s,r,q,p=$.uf if(p==null){P.arN(a) $.CB=$.CA return}s=new P.L9(a) r=$.CB if(r==null){s.b=p $.uf=$.CB=s}else{q=r.b s.b=q $.CB=r.b=s if(q==null)$.CA=s}}, eV:function(a){var s,r=null,q=$.R if(C.F===q){P.ahj(r,r,C.F,a) return}if(C.F===q.gz4().a)s=C.F.gli()===q.gli() else s=!1 if(s){P.ahj(r,r,q,q.j2(a,t.H)) return}s=$.R s.jh(s.u3(a))}, akp:function(a,b){return new P.Ag(new P.a6n(a,b),b.h("Ag<0>"))}, aHA:function(a,b){H.e3(a,"stream",t.K) return new P.PS(b.h("PS<0>"))}, aBc:function(a,b,c,d,e){return d?new P.m8(b,null,c,a,e.h("m8<0>")):new P.t4(b,null,c,a,e.h("t4<0>"))}, od:function(a){return new P.zz(null,null,a.h("zz<0>"))}, RU:function(a){var s,r,q if(a==null)return try{a.$0()}catch(q){s=H.U(q) r=H.aB(q) $.R.kf(s,r)}}, aBX:function(a,b,c,d,e,f){var s=$.R,r=e?1:0,q=P.Lk(s,b,f),p=P.a8V(s,c),o=d==null?P.ahr():d return new P.lW(a,q,p,s.j2(o,t.H),s,r,f.h("lW<0>"))}, aBK:function(a,b,c,d){var s=$.R,r=a.gx9(a),q=a.grA() return new P.t2(new P.a1(s,t.LR),b.cX(r,!1,a.gxl(),q),d.h("t2<0>"))}, aBL:function(a){return new P.a8h(a)}, aq8:function(a,b,c,d,e){var s=$.R,r=d?1:0,q=P.Lk(s,a,e),p=P.a8V(s,b),o=c==null?P.ahr():c return new P.d_(q,p,s.j2(o,t.H),s,r,e.h("d_<0>"))}, Lk:function(a,b,c){var s=b==null?P.aEF():b return a.lI(s,t.H,c)}, a8V:function(a,b){if(b==null)b=P.aEG() if(t.hK.b(b))return a.vF(b,t.z,t.K,t.Km) if(t.mX.b(b))return a.lI(b,t.z,t.K) throw H.a(P.bc("handleError callback must take either an Object (the error), or both an Object (the error) and a StackTrace."))}, aE5:function(a){}, aE7:function(a,b){$.R.kf(a,b)}, aE6:function(){}, aEg:function(a,b,c){var s,r,q,p,o,n try{b.$1(a.$0())}catch(n){s=H.U(n) r=H.aB(n) q=$.R.k9(s,r) if(q==null)c.$2(s,r) else{p=q.a o=q.b c.$2(p,o)}}}, aD_:function(a,b,c,d){var s=a.aH(0) if(s!=null&&s!==$.mj())s.f9(new P.agn(b,c,d)) else b.es(c,d)}, aD0:function(a,b){return new P.agm(a,b)}, aD1:function(a,b,c){var s=a.aH(0) if(s!=null&&s!==$.mj())s.f9(new P.ago(b,c)) else b.kS(c)}, ci:function(a,b){var s=$.R if(s===C.F)return s.At(a,b) return s.At(a,s.u3(b))}, a7l:function(a,b){var s,r=$.R if(r===C.F)return r.Ar(a,b) s=r.A5(b,t.Ce) return $.R.Ar(a,s)}, aBJ:function(a,b){var s=b==null?a.a:b return new P.oQ(s,a.b,a.c,a.d,a.e,a.f,a.r,a.x,a.y,a.z,a.Q,a.ch,a.cx)}, RT:function(a,b,c,d,e){P.aEi(new P.ahf(d,e))}, ahg:function(a,b,c,d){var s,r=$.R if(r===c)return d.$0() if(!(c instanceof P.oP))throw H.a(P.eq(c,"zone","Can only run in platform zones")) $.R=c s=r try{r=d.$0() return r}finally{$.R=s}}, ahi:function(a,b,c,d,e){var s,r=$.R if(r===c)return d.$1(e) if(!(c instanceof P.oP))throw H.a(P.eq(c,"zone","Can only run in platform zones")) $.R=c s=r try{r=d.$1(e) return r}finally{$.R=s}}, ahh:function(a,b,c,d,e,f){var s,r=$.R if(r===c)return d.$2(e,f) if(!(c instanceof P.oP))throw H.a(P.eq(c,"zone","Can only run in platform zones")) $.R=c s=r try{r=d.$2(e,f) return r}finally{$.R=s}}, arJ:function(a,b,c,d){return d}, arK:function(a,b,c,d){return d}, arI:function(a,b,c,d){return d}, aEd:function(a,b,c,d,e){return null}, ahj:function(a,b,c,d){var s,r if(C.F!==c){s=C.F.gli() r=c.gli() d=s!==r?c.u3(d):c.A4(d,t.H)}P.arN(d)}, aEc:function(a,b,c,d,e){e=c.A4(e,t.H) return P.aky(d,e)}, aEb:function(a,b,c,d,e){e=c.a7m(e,t.H,t.Ce) return P.apT(d,e)}, aEe:function(a,b,c,d){H.aie(d)}, aEa:function(a){$.R.Oq(0,a)}, arH:function(a,b,c,d,e){var s,r,q $.alG=P.aEH() if(d==null)d=C.HS s=c.gHP() r=new P.LY(c.gIX(),c.gIZ(),c.gIY(),c.gIC(),c.gID(),c.gIB(),c.gGv(),c.gz4(),c.gG2(),c.gG0(),c.gIs(),c.gGI(),c.gyt(),c,s) q=d.a if(q!=null)r.cx=new P.dH(r,q,t.sL) return r}, aG1:function(a,b,c){H.e3(a,"body",c.h("0()")) if(!t.hK.b(b))if(t.mX.b(b))b=new P.aii(b) else throw H.a(P.eq(b,"onError","Must be Function(Object) or Function(Object, StackTrace)")) return P.aG2(a,b,null,null,c)}, aG2:function(a,b,c,d,e){var s,r,q,p,o,n=null c=c H.e3(a,"body",e.h("0()")) H.e3(b,"onError",t.hK) q=new P.aih($.R,b) if(c==null)c=new P.oQ(q,n,n,n,n,n,n,n,n,n,n,n,n) else c=P.aBJ(c,q) try{p=P.aEh(a,d,c,e) return p}catch(o){s=H.U(o) r=H.aB(o) b.$2(s,r)}return n}, aEh:function(a,b,c,d){return $.R.uW(c,b).lM(a,d)}, a8A:function a8A(a){this.a=a}, a8z:function a8z(a,b,c){this.a=a this.b=b this.c=c}, a8B:function a8B(a){this.a=a}, a8C:function a8C(a){this.a=a}, BR:function BR(a){this.a=a this.b=null this.c=0}, afa:function afa(a,b){this.a=a this.b=b}, af9:function af9(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, L8:function L8(a,b){this.a=a this.b=!1 this.$ti=b}, agj:function agj(a){this.a=a}, agk:function agk(a){this.a=a}, ahm:function ahm(a){this.a=a}, agh:function agh(a,b){this.a=a this.b=b}, agi:function agi(a,b){this.a=a this.b=b}, La:function La(a){var _=this _.a=$ _.b=!1 _.c=null _.$ti=a}, a8E:function a8E(a){this.a=a}, a8F:function a8F(a){this.a=a}, a8H:function a8H(a){this.a=a}, a8I:function a8I(a,b){this.a=a this.b=b}, a8G:function a8G(a,b){this.a=a this.b=b}, a8D:function a8D(a){this.a=a}, m_:function m_(a,b){this.a=a this.b=b}, d8:function d8(a,b){var _=this _.a=a _.d=_.c=_.b=null _.$ti=b}, BH:function BH(a,b){this.a=a this.$ti=b}, mu:function mu(a,b){this.a=a this.b=b}, ko:function ko(a,b){this.a=a this.$ti=b}, ox:function ox(a,b,c,d,e,f,g){var _=this _.dx=0 _.fr=_.dy=null _.x=a _.a=b _.b=c _.c=d _.d=e _.e=f _.r=_.f=null _.$ti=g}, lU:function lU(){}, BG:function BG(a,b,c){var _=this _.a=a _.b=b _.c=0 _.r=_.f=_.e=_.d=null _.$ti=c}, aeG:function aeG(a,b){this.a=a this.b=b}, aeI:function aeI(a,b,c){this.a=a this.b=b this.c=c}, aeH:function aeH(a){this.a=a}, zz:function zz(a,b,c){var _=this _.a=a _.b=b _.c=0 _.r=_.f=_.e=_.d=null _.$ti=c}, XH:function XH(a,b){this.a=a this.b=b}, XG:function XG(a,b,c){this.a=a this.b=b this.c=c}, XJ:function XJ(a){this.a=a}, XL:function XL(a){this.a=a}, XI:function XI(a){this.a=a}, XK:function XK(a){this.a=a}, XN:function XN(a,b,c,d,e,f,g,h){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h}, XM:function XM(a,b,c,d,e,f,g,h){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h}, zL:function zL(){}, aH:function aH(a,b){this.a=a this.$ti=b}, jd:function jd(a,b,c,d,e){var _=this _.a=null _.b=a _.c=b _.d=c _.e=d _.$ti=e}, a1:function a1(a,b){var _=this _.a=0 _.b=a _.c=null _.$ti=b}, aaz:function aaz(a,b){this.a=a this.b=b}, aaH:function aaH(a,b){this.a=a this.b=b}, aaD:function aaD(a){this.a=a}, aaE:function aaE(a){this.a=a}, aaF:function aaF(a,b,c){this.a=a this.b=b this.c=c}, aaB:function aaB(a,b){this.a=a this.b=b}, aaG:function aaG(a,b){this.a=a this.b=b}, aaA:function aaA(a,b,c){this.a=a this.b=b this.c=c}, aaK:function aaK(a,b,c){this.a=a this.b=b this.c=c}, aaL:function aaL(a){this.a=a}, aaJ:function aaJ(a,b){this.a=a this.b=b}, aaI:function aaI(a,b){this.a=a this.b=b}, L9:function L9(a){this.a=a this.b=null}, bg:function bg(){}, a6n:function a6n(a,b){this.a=a this.b=b}, a6p:function a6p(a,b,c){this.a=a this.b=b this.c=c}, a6o:function a6o(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, a6u:function a6u(a){this.a=a}, a6v:function a6v(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, a6s:function a6s(a,b){this.a=a this.b=b}, a6t:function a6t(){}, a6w:function a6w(a,b){this.a=a this.b=b}, a6x:function a6x(a,b){this.a=a this.b=b}, a6q:function a6q(a){this.a=a}, a6r:function a6r(a,b,c){this.a=a this.b=b this.c=c}, eg:function eg(){}, yJ:function yJ(){}, JO:function JO(){}, u4:function u4(){}, aeA:function aeA(a){this.a=a}, aez:function aez(a){this.a=a}, Q4:function Q4(){}, Lb:function Lb(){}, t4:function t4(a,b,c,d,e){var _=this _.a=null _.b=0 _.c=null _.d=a _.e=b _.f=c _.r=d _.$ti=e}, m8:function m8(a,b,c,d,e){var _=this _.a=null _.b=0 _.c=null _.d=a _.e=b _.f=c _.r=d _.$ti=e}, lV:function lV(a,b){this.a=a this.$ti=b}, lW:function lW(a,b,c,d,e,f,g){var _=this _.x=a _.a=b _.b=c _.c=d _.d=e _.e=f _.r=_.f=null _.$ti=g}, t2:function t2(a,b,c){this.a=a this.b=b this.$ti=c}, a8h:function a8h(a){this.a=a}, a8g:function a8g(a){this.a=a}, BE:function BE(a,b,c,d){var _=this _.c=a _.a=b _.b=c _.$ti=d}, d_:function d_(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.r=_.f=null _.$ti=f}, a8X:function a8X(a,b,c){this.a=a this.b=b this.c=c}, a8W:function a8W(a){this.a=a}, oO:function oO(){}, Ag:function Ag(a,b){this.a=a this.b=!1 this.$ti=b}, Ax:function Ax(a,b){this.b=a this.a=0 this.$ti=b}, M7:function M7(){}, ja:function ja(a,b){this.b=a this.a=null this.$ti=b}, te:function te(a,b){this.b=a this.c=b this.a=null}, aa2:function aa2(){}, Od:function Od(){}, ad1:function ad1(a,b){this.a=a this.b=b}, m7:function m7(a){var _=this _.c=_.b=null _.a=0 _.$ti=a}, th:function th(a,b,c){var _=this _.a=a _.b=0 _.c=b _.$ti=c}, PS:function PS(a){this.$ti=a}, agn:function agn(a,b,c){this.a=a this.b=b this.c=c}, agm:function agm(a,b){this.a=a this.b=b}, ago:function ago(a,b){this.a=a this.b=b}, Af:function Af(){}, tt:function tt(a,b,c,d,e,f,g){var _=this _.x=a _.y=null _.a=b _.b=c _.c=d _.d=e _.e=f _.r=_.f=null _.$ti=g}, oG:function oG(a,b,c){this.b=a this.a=b this.$ti=c}, dH:function dH(a,b,c){this.a=a this.b=b this.$ti=c}, adR:function adR(a,b){this.a=a this.b=b}, adS:function adS(a,b){this.a=a this.b=b}, adQ:function adQ(a,b){this.a=a this.b=b}, adp:function adp(a,b){this.a=a this.b=b}, adq:function adq(a,b){this.a=a this.b=b}, ado:function ado(a,b){this.a=a this.b=b}, oQ:function oQ(a,b,c,d,e,f,g,h,i,j,k,l,m){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m}, ub:function ub(a){this.a=a}, oP:function oP(){}, LY:function LY(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=null _.db=n _.dx=o}, a9N:function a9N(a,b,c){this.a=a this.b=b this.c=c}, a9P:function a9P(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, a9M:function a9M(a,b){this.a=a this.b=b}, a9O:function a9O(a,b,c){this.a=a this.b=b this.c=c}, ahf:function ahf(a,b){this.a=a this.b=b}, Pg:function Pg(){}, adI:function adI(a,b,c){this.a=a this.b=b this.c=c}, adH:function adH(a,b){this.a=a this.b=b}, adJ:function adJ(a,b,c){this.a=a this.b=b this.c=c}, aii:function aii(a){this.a=a}, aih:function aih(a,b){this.a=a this.b=b}, fr:function(a,b,c,d,e){if(c==null)if(b==null){if(a==null)return new P.ks(d.h("@<0>").a3(e).h("ks<1,2>")) b=P.alu()}else{if(P.arZ()===b&&P.arY()===a)return new P.oE(d.h("@<0>").a3(e).h("oE<1,2>")) if(a==null)a=P.alt()}else{if(b==null)b=P.alu() if(a==null)a=P.alt()}return P.aBY(a,b,c,d,e)}, akF:function(a,b){var s=a[b] return s===a?null:s}, akH:function(a,b,c){if(c==null)a[b]=a else a[b]=c}, akG:function(){var s=Object.create(null) P.akH(s,"",s) delete s[""] return s}, aBY:function(a,b,c,d,e){var s=c!=null?c:new P.a9L(d) return new P.zW(a,b,s,d.h("@<0>").a3(e).h("zW<1,2>"))}, a_h:function(a,b,c,d){if(b==null){if(a==null)return new H.cU(c.h("@<0>").a3(d).h("cU<1,2>")) b=P.alu()}else{if(P.arZ()===b&&P.arY()===a)return P.aqo(c,d) if(a==null)a=P.alt()}return P.aCa(a,b,null,c,d)}, aj:function(a,b,c){return H.asa(a,new H.cU(b.h("@<0>").a3(c).h("cU<1,2>")))}, y:function(a,b){return new H.cU(a.h("@<0>").a3(b).h("cU<1,2>"))}, aqo:function(a,b){return new P.AF(a.h("@<0>").a3(b).h("AF<1,2>"))}, aCa:function(a,b,c,d,e){return new P.tG(a,b,new P.abq(d),d.h("@<0>").a3(e).h("tG<1,2>"))}, be:function(a){return new P.lY(a.h("lY<0>"))}, akI:function(){var s=Object.create(null) s[""]=s delete s[""] return s}, jP:function(a){return new P.hs(a.h("hs<0>"))}, aZ:function(a){return new P.hs(a.h("hs<0>"))}, dd:function(a,b){return H.aFj(a,new P.hs(b.h("hs<0>")))}, akJ:function(){var s=Object.create(null) s[""]=s delete s[""] return s}, cq:function(a,b,c){var s=new P.fd(a,b,c.h("fd<0>")) s.c=a.e return s}, aDg:function(a,b){return J.d(a,b)}, aDh:function(a){return J.a3(a)}, ayW:function(a,b,c){var s=P.fr(null,null,null,b,c) a.K(0,new P.Y9(s,b,c)) return s}, aof:function(a,b){var s,r=P.be(b) for(s=P.cq(a,a.r,H.u(a).c);s.q();)r.B(0,b.a(s.d)) return r}, ajI:function(a,b,c){var s,r if(P.alf(a)){if(b==="("&&c===")")return"(...)" return b+"..."+c}s=H.b([],t.s) $.oX.push(a) try{P.aDT(a,s)}finally{$.oX.pop()}r=P.JP(b,s,", ")+c return r.charCodeAt(0)==0?r:r}, wj:function(a,b,c){var s,r if(P.alf(a))return b+"..."+c s=new P.c6(b) $.oX.push(a) try{r=s r.a=P.JP(r.a,a,", ")}finally{$.oX.pop()}s.a+=c r=s.a return r.charCodeAt(0)==0?r:r}, alf:function(a){var s,r for(s=$.oX.length,r=0;r100){while(!0){if(!(k>75&&j>3))break k-=b.pop().length+2;--j}b.push("...") return}}q=H.c(p) r=H.c(o) k+=r.length+q.length+4}}if(j>b.length+2){k+=5 m="..."}else m=null while(!0){if(!(k>80&&b.length>3))break k-=b.pop().length+2 if(m==null){k+=5 m="..."}}if(m!=null)b.push(m) b.push(q) b.push(r)}, qb:function(a,b,c){var s=P.a_h(null,null,b,c) J.fi(a,new P.a_i(s,b,c)) return s}, iM:function(a,b){var s,r=P.jP(b) for(s=J.as(a);s.q();)r.B(0,b.a(s.gw(s))) return r}, Gp:function(a,b){var s=P.jP(b) s.J(0,a) return s}, aCb:function(a,b){return new P.tH(a,a.a,a.c,b.h("tH<0>"))}, azl:function(a,b){var s=t.b8 return J.dJ(s.a(a),s.a(b))}, Gw:function(a){var s,r={} if(P.alf(a))return"{...}" s=new P.c6("") try{$.oX.push(a) s.a+="{" r.a=!0 J.fi(a,new P.a_p(r,s)) s.a+="}"}finally{$.oX.pop()}r=s.a return r.charCodeAt(0)==0?r:r}, jQ:function(a,b){return new P.wC(P.b6(P.azm(a),null,!1,b.h("0?")),b.h("wC<0>"))}, azm:function(a){if(a==null||a<8)return 8 else if((a&a-1)>>>0!==0)return P.aoA(a) return a}, aoA:function(a){var s a=(a<<1>>>0)-1 for(;!0;a=s){s=(a&a-1)>>>0 if(s===0)return a}}, aqK:function(){throw H.a(P.F("Cannot change an unmodifiable set"))}, aDk:function(a,b){return J.dJ(a,b)}, aDf:function(a){if(a.h("p(0,0)").b(P.arX()))return P.arX() return P.aF_()}, akn:function(a,b){var s=P.aDf(a) return new P.yD(s,new P.a69(a),a.h("@<0>").a3(b).h("yD<1,2>"))}, a6a:function(a,b,c){var s=b==null?new P.a6c(c):b return new P.ry(a,s,c.h("ry<0>"))}, ks:function ks(a){var _=this _.a=0 _.e=_.d=_.c=_.b=null _.$ti=a}, aaP:function aaP(a){this.a=a}, oE:function oE(a){var _=this _.a=0 _.e=_.d=_.c=_.b=null _.$ti=a}, zW:function zW(a,b,c,d){var _=this _.f=a _.r=b _.x=c _.a=0 _.e=_.d=_.c=_.b=null _.$ti=d}, a9L:function a9L(a){this.a=a}, kt:function kt(a,b){this.a=a this.$ti=b}, N5:function N5(a,b,c){var _=this _.a=a _.b=b _.c=0 _.d=null _.$ti=c}, AF:function AF(a){var _=this _.a=0 _.f=_.e=_.d=_.c=_.b=null _.r=0 _.$ti=a}, tG:function tG(a,b,c,d){var _=this _.x=a _.y=b _.z=c _.a=0 _.f=_.e=_.d=_.c=_.b=null _.r=0 _.$ti=d}, abq:function abq(a){this.a=a}, lY:function lY(a){var _=this _.a=0 _.e=_.d=_.c=_.b=null _.$ti=a}, hr:function hr(a,b,c){var _=this _.a=a _.b=b _.c=0 _.d=null _.$ti=c}, hs:function hs(a){var _=this _.a=0 _.f=_.e=_.d=_.c=_.b=null _.r=0 _.$ti=a}, abr:function abr(a){this.a=a this.c=this.b=null}, fd:function fd(a,b,c){var _=this _.a=a _.b=b _.d=_.c=null _.$ti=c}, Y9:function Y9(a,b,c){this.a=a this.b=b this.c=c}, wl:function wl(){}, wi:function wi(){}, a_i:function a_i(a,b,c){this.a=a this.b=b this.c=c}, a7:function a7(a){var _=this _.b=_.a=0 _.c=null _.$ti=a}, tH:function tH(a,b,c,d){var _=this _.a=a _.b=b _.c=null _.d=c _.e=!1 _.$ti=d}, nm:function nm(){}, wB:function wB(){}, J:function J(){}, wJ:function wJ(){}, a_p:function a_p(a,b){this.a=a this.b=b}, aC:function aC(){}, a_q:function a_q(a){this.a=a}, AJ:function AJ(a,b){this.a=a this.$ti=b}, Ny:function Ny(a,b,c){var _=this _.a=a _.b=b _.c=null _.$ti=c}, BY:function BY(){}, qg:function qg(){}, kl:function kl(a,b){this.a=a this.$ti=b}, ih:function ih(){}, f0:function f0(){}, kr:function kr(){}, zZ:function zZ(a,b,c){var _=this _.f=a _.c=b _.b=_.a=null _.$ti=c}, oB:function oB(a,b,c){var _=this _.f=a _.c=b _.b=_.a=null _.$ti=c}, vD:function vD(a){this.a=$ this.b=0 this.$ti=a}, Mk:function Mk(a,b,c){var _=this _.a=a _.b=b _.c=null _.$ti=c}, wC:function wC(a,b){var _=this _.a=a _.d=_.c=_.b=0 _.$ti=b}, Nt:function Nt(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.e=null _.$ti=e}, cQ:function cQ(){}, oL:function oL(){}, QU:function QU(){}, fg:function fg(a,b){this.a=a this.$ti=b}, PM:function PM(){}, c7:function c7(a,b){var _=this _.a=a _.c=_.b=null _.$ti=b}, e1:function e1(a,b,c){var _=this _.d=a _.a=b _.c=_.b=null _.$ti=c}, PL:function PL(){}, yD:function yD(a,b,c){var _=this _.d=null _.e=a _.f=b _.c=_.b=_.a=0 _.$ti=c}, a69:function a69(a){this.a=a}, u3:function u3(){}, ky:function ky(a,b){this.a=a this.$ti=b}, oN:function oN(a,b){this.a=a this.$ti=b}, Bw:function Bw(a,b){this.a=a this.$ti=b}, cE:function cE(a,b,c,d){var _=this _.a=a _.b=b _.c=null _.d=c _.$ti=d}, BA:function BA(a,b,c,d){var _=this _.a=a _.b=b _.c=null _.d=c _.$ti=d}, oM:function oM(a,b,c,d){var _=this _.a=a _.b=b _.c=null _.d=c _.$ti=d}, ry:function ry(a,b,c){var _=this _.d=null _.e=a _.f=b _.c=_.b=_.a=0 _.$ti=c}, a6c:function a6c(a){this.a=a}, a6b:function a6b(a,b){this.a=a this.b=b}, AG:function AG(){}, Bx:function Bx(){}, By:function By(){}, Bz:function Bz(){}, BZ:function BZ(){}, Co:function Co(){}, Cs:function Cs(){}, arB:function(a,b){var s,r,q,p if(typeof a!="string")throw H.a(H.bZ(a)) s=null try{s=JSON.parse(a)}catch(q){r=H.U(q) p=P.bx(String(r),null,null) throw H.a(p)}p=P.agv(s) return p}, agv:function(a){var s if(a==null)return null if(typeof a!="object")return a if(Object.getPrototypeOf(a)!==Array.prototype)return new P.Nl(a,Object.create(null)) for(s=0;s=0)return null return r}return null}, aBD:function(a,b,c,d){var s=a?$.atv():$.atu() if(s==null)return null if(0===c&&d===b.length)return P.aq0(s,b) return P.aq0(s,b.subarray(c,P.dF(c,d,b.length)))}, aq0:function(a,b){var s,r try{s=a.decode(b) return s}catch(r){H.U(r)}return null}, anm:function(a,b,c,d,e,f){if(C.f.ea(f,4)!==0)throw H.a(P.bx("Invalid base64 padding, padded length must be multiple of four, is "+f,a,c)) if(d+e!==f)throw H.a(P.bx("Invalid base64 padding, '=' not at the end",a,b)) if(e>2)throw H.a(P.bx("Invalid base64 padding, more than two '=' characters",a,b))}, aBS:function(a,b,c,d,e,f,g,h){var s,r,q,p,o,n=h>>>2,m=3-(h&3) for(s=c,r=0;s>>18&63) g=p+1 f[p]=C.c.W(a,n>>>12&63) p=g+1 f[g]=C.c.W(a,n>>>6&63) g=p+1 f[p]=C.c.W(a,n&63) n=0 m=3}}if(r>=0&&r<=255){if(m<3){p=g+1 o=p+1 if(3-m===1){f[g]=C.c.W(a,n>>>2&63) f[p]=C.c.W(a,n<<4&63) f[o]=61 f[o+1]=61}else{f[g]=C.c.W(a,n>>>10&63) f[p]=C.c.W(a,n>>>4&63) f[o]=C.c.W(a,n<<2&63) f[o+1]=61}return 0}return(n<<2|3-m)>>>0}for(s=c;s255)break;++s}throw H.a(P.eq(b,"Not a byte value at index "+s+": 0x"+C.f.j9(b[s],16),null))}, ao0:function(a){if(a==null)return null return $.ayz.i(0,a.toLowerCase())}, aox:function(a,b,c){return new P.wq(a,b)}, aDi:function(a){return a.dS()}, aqm:function(a,b){var s=b==null?P.aF7():b return new P.abj(a,[],s)}, aqn:function(a,b,c){var s,r=new P.c6(""),q=P.aqm(r,b) q.qR(a) s=r.a return s.charCodeAt(0)==0?s:s}, ajR:function(a){return P.d9(function(){var s=a var r=0,q=1,p,o,n,m,l,k,j return function $async$ajR(b,c){if(b===1){p=c r=q}while(true)switch(r){case 0:j=P.dF(0,null,s.length) if(j==null)throw H.a(P.cN("Invalid range")) o=J.cj(s),n=0,m=0,l=0 case 2:if(!(l>>0!==0?255:q}return o}, Nl:function Nl(a,b){this.a=a this.b=b this.c=null}, abi:function abi(a){this.a=a}, Nm:function Nm(a){this.a=a}, a7M:function a7M(){}, a7L:function a7L(){}, Dd:function Dd(){}, afq:function afq(){}, SM:function SM(a){this.a=a}, afp:function afp(){}, SL:function SL(a,b){this.a=a this.b=b}, T_:function T_(){}, T0:function T0(){}, a8P:function a8P(a){this.a=0 this.b=a}, TC:function TC(){}, TD:function TD(){}, Lo:function Lo(a,b){this.a=a this.b=b this.c=0}, DL:function DL(){}, Eo:function Eo(){}, Et:function Et(){}, mP:function mP(){}, wq:function wq(a,b){this.a=a this.b=b}, Gc:function Gc(a,b){this.a=a this.b=b}, ZL:function ZL(){}, ZN:function ZN(a){this.b=a}, ZM:function ZM(a){this.a=a}, abk:function abk(){}, abl:function abl(a,b){this.a=a this.b=b}, abj:function abj(a,b,c){this.c=a this.a=b this.b=c}, Gf:function Gf(){}, a_9:function a_9(a){this.a=a}, a_8:function a_8(a,b){this.a=a this.b=b}, Kx:function Kx(){}, a7N:function a7N(){}, afV:function afV(a){this.b=0 this.c=a}, Ky:function Ky(a){this.a=a}, afU:function afU(a){this.a=a this.b=16 this.c=0}, aFx:function(a){return H.CM(a)}, aob:function(a,b){return H.aA0(a,b,null)}, e5:function(a,b){var s=H.apc(a,b) if(s!=null)return s throw H.a(P.bx(a,null,null))}, as8:function(a){var s=H.apb(a) if(s!=null)return s throw H.a(P.bx("Invalid double",a,null))}, ayE:function(a){if(a instanceof H.e9)return a.j(0) return"Instance of '"+H.c(H.a1B(a))+"'"}, anN:function(a,b){var s if(Math.abs(a)<=864e13)s=!1 else s=!0 if(s)H.e(P.bc("DateTime is outside valid range: "+a)) H.e3(b,"isUtc",t.y) return new P.er(a,b)}, b6:function(a,b,c,d){var s,r=c?J.wm(a,d):J.G8(a,d) if(a!==0&&b!=null)for(s=0;s")) for(s=J.as(a);s.q();)r.push(s.gw(s)) if(b)return r return J.ZA(r)}, an:function(a,b,c){var s if(b)return P.aoB(a,c) s=J.ZA(P.aoB(a,c)) return s}, aoB:function(a,b){var s,r if(Array.isArray(a))return H.b(a.slice(0),b.h("o<0>")) s=H.b([],b.h("o<0>")) for(r=J.as(a);r.q();)s.push(r.gw(r)) return s}, aoC:function(a,b){return J.aos(P.bk(a,!1,b))}, kf:function(a,b,c){var s,r if(Array.isArray(a)){s=a r=s.length c=P.dF(b,c,r) return H.ape(b>0||c=1000)return""+a if(s>=100)return r+"0"+s if(s>=10)return r+"00"+s return r+"000"+s}, ayh:function(a){if(a>=100)return""+a if(a>=10)return"0"+a return"00"+a}, EE:function(a){if(a>=10)return""+a return"0"+a}, cJ:function(a,b){return new P.aK(1000*b+a)}, mS:function(a){if(typeof a=="number"||H.ip(a)||null==a)return J.bB(a) if(typeof a=="string")return JSON.stringify(a) return P.ayE(a)}, pc:function(a){return new P.mt(a)}, bc:function(a){return new P.hx(!1,null,null,a)}, eq:function(a,b,c){return new P.hx(!0,a,b,c)}, cN:function(a){var s=null return new P.qF(s,s,!1,s,s,a)}, qG:function(a,b,c){return new P.qF(null,null,!0,a,b,c==null?"Value not in range":c)}, bz:function(a,b,c,d,e){return new P.qF(b,c,!0,a,d,"Invalid value")}, apg:function(a,b,c,d){if(ac)throw H.a(P.bz(a,b,c,d,null)) return a}, aAf:function(a,b,c,d){if(d==null)d=b.gl(b) if(0>a||a>=d)throw H.a(P.bY(a,b,c==null?"index":c,null,d)) return a}, dF:function(a,b,c){if(0>a||a>c)throw H.a(P.bz(a,0,c,"start",null)) if(b!=null){if(a>b||b>c)throw H.a(P.bz(b,a,c,"end",null)) return b}return c}, cV:function(a,b){if(a<0)throw H.a(P.bz(a,0,null,b,null)) return a}, bY:function(a,b,c,d,e){var s=e==null?J.bQ(b):e return new P.G_(s,!0,a,c,"Index out of range")}, F:function(a){return new P.Ku(a)}, ce:function(a){return new P.Kq(a)}, a4:function(a){return new P.hg(a)}, bp:function(a){return new P.Er(a)}, cF:function(a){return new P.Mt(a)}, bx:function(a,b,c){return new P.h6(a,b,c)}, ajT:function(a,b,c,d,e){return new H.mD(a,b.h("@<0>").a3(c).a3(d).a3(e).h("mD<1,2,3,4>"))}, uk:function(a){var s=J.bB(a),r=$.alG if(r==null)H.aie(s) else r.$1(s)}, aBb:function(){$.aiC() return new P.JN()}, ar8:function(a,b){return 65536+((a&1023)<<10)+(b&1023)}, os:function(a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3=null,a4=a5.length if(a4>=5){s=((J.aiK(a5,4)^58)*3|C.c.W(a5,0)^100|C.c.W(a5,1)^97|C.c.W(a5,2)^116|C.c.W(a5,3)^97)>>>0 if(s===0)return P.apY(a4=14)r[7]=a4 q=r[1] if(q>=0)if(P.arM(a5,0,q,20,r)===20)r[7]=q p=r[2]+1 o=r[3] n=r[4] m=r[5] l=r[6] if(lq+3){j=a3 k=!1}else{i=o>0 if(i&&o+1===n){j=a3 k=!1}else{if(!(mn+2&&J.D_(a5,"/..",m-3) else h=!0 if(h){j=a3 k=!1}else{if(q===4)if(J.D_(a5,"file",0)){if(p<=0){if(!C.c.dv(a5,"/",n)){g="file:///" s=3}else{g="file://" s=2}a5=g+C.c.V(a5,n,a4) q-=0 i=s-0 m+=i l+=i a4=a5.length p=7 o=7 n=7}else if(n===m){++l f=m+1 a5=C.c.ky(a5,n,m,"/");++a4 m=f}j="file"}else if(C.c.dv(a5,"http",0)){if(i&&o+3===n&&C.c.dv(a5,"80",o+1)){l-=3 e=n-3 m-=3 a5=C.c.ky(a5,o,n,"") a4-=3 n=e}j="http"}else j=a3 else if(q===5&&J.D_(a5,"https",0)){if(i&&o+4===n&&J.D_(a5,"443",o+1)){l-=4 e=n-4 m-=4 a5=J.awU(a5,o,n,"") a4-=3 n=e}j="https"}else j=a3 k=!0}}}else j=a3 if(k){i=a5.length if(a40)j=P.aCL(a5,0,q) else{if(q===0){P.ua(a5,0,"Invalid empty scheme") H.j(u.V)}j=""}if(p>0){d=q+3 c=d9)k.$2("invalid character",s)}else{if(q===3)k.$2(m,s) o=P.e5(C.c.V(a,r,s),null) if(o>255)k.$2(l,r) n=q+1 j[q]=o r=s+1 q=n}}if(q!==3)k.$2(m,c) o=P.e5(C.c.V(a,r,c),null) if(o>255)k.$2(l,r) j[q]=o return j}, apZ:function(a,b,c){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e=new P.a7F(a),d=new P.a7G(e,a) if(a.length<2)e.$1("address is too short") s=H.b([],t._) for(r=b,q=r,p=!1,o=!1;r>>0) s.push((k[2]<<8|k[3])>>>0)}if(p){if(s.length>7)e.$1("an address with a wildcard must have less than 7 parts")}else if(s.length!==8)e.$1("an address without a wildcard must contain exactly 8 parts") j=new Uint8Array(16) for(l=s.length,i=9-l,r=0,h=0;r?\\\\|]',!0) r.toString if(H.aio(r,q,0)){s=P.F("Illegal character in path: "+r) throw H.a(s)}}}, aCH:function(a,b){var s if(!(65<=a&&a<=90))s=97<=a&&a<=122 else s=!0 if(s)return s=P.F("Illegal drive letter "+P.aBd(a)) throw H.a(s)}, akU:function(a,b){if(a!=null&&a===P.aqN(b))return null return a}, aqR:function(a,b,c,d){var s,r,q,p,o,n if(a==null)return null if(b===c)return"" if(C.c.al(a,b)===91){s=c-1 if(C.c.al(a,s)!==93){P.ua(a,b,"Missing end `]` to match `[` in host") H.j(u.V)}r=b+1 q=P.aCI(a,r,s) if(q=b&&q=b&&s>>4]&1<<(p&15))!==0){if(q&&65<=p&&90>=p){if(i==null)i=new P.c6("") if(r>>4]&1<<(o&15))!==0){if(p&&65<=o&&90>=o){if(q==null)q=new P.c6("") if(r>>4]&1<<(o&15))!==0){P.ua(a,s,"Invalid character") H.j(u.V)}else{if((o&64512)===55296&&s+1>>4]&1<<(q&15))!==0)){P.ua(a,s,"Illegal scheme character") H.j(p)}if(65<=q&&q<=90)r=!0}a=C.c.V(a,b,c) return P.aCF(r?a.toLowerCase():a)}, aCF:function(a){if(a==="http")return"http" if(a==="file")return"file" if(a==="https")return"https" if(a==="package")return"package" return a}, aqU:function(a,b,c){if(a==null)return"" return P.C0(a,b,c,C.tt,!1)}, aqS:function(a,b,c,d,e,f){var s,r=e==="file",q=r||f if(a==null)return r?"/":"" else s=P.C0(a,b,c,C.kp,!0) if(s.length===0){if(r)return"/"}else if(q&&!C.c.bv(s,"/"))s="/"+s return P.aCM(s,e,f)}, aCM:function(a,b,c){var s=b.length===0 if(s&&!c&&!C.c.bv(a,"/"))return P.akW(a,!s||c) return P.kA(a)}, aqT:function(a,b,c,d){var s,r={} if(a!=null){if(d!=null)throw H.a(P.bc("Both query and queryParameters specified")) return P.C0(a,b,c,C.eo,!0)}if(d==null)return null s=new P.c6("") r.a="" d.K(0,new P.afR(new P.afS(r,s))) r=s.a return r.charCodeAt(0)==0?r:r}, aqQ:function(a,b,c){if(a==null)return null return P.C0(a,b,c,C.eo,!0)}, akV:function(a,b,c){var s,r,q,p,o,n=b+2 if(n>=a.length)return"%" s=C.c.al(a,b+1) r=C.c.al(a,n) q=H.ahO(s) p=H.ahO(r) if(q<0||p<0)return"%" o=q*16+p if(o<127&&(C.ep[C.f.ew(o,4)]&1<<(o&15))!==0)return H.bH(c&&65<=o&&90>=o?(o|32)>>>0:o) if(s>=97||r>=97)return C.c.V(a,b,b+3).toUpperCase() return null}, akT:function(a){var s,r,q,p,o,n="0123456789ABCDEF" if(a<128){s=new Uint8Array(3) s[0]=37 s[1]=C.c.W(n,a>>>4) s[2]=C.c.W(n,a&15)}else{if(a>2047)if(a>65535){r=240 q=4}else{r=224 q=3}else{r=192 q=2}s=new Uint8Array(3*q) for(p=0;--q,q>=0;r=128){o=C.f.a5f(a,6*q)&63|r s[p]=37 s[p+1]=C.c.W(n,o>>>4) s[p+2]=C.c.W(n,o&15) p+=3}}return P.kf(s,0,null)}, C0:function(a,b,c,d,e){var s=P.aqW(a,b,c,d,e) return s==null?C.c.V(a,b,c):s}, aqW:function(a,b,c,d,e){var s,r,q,p,o,n,m,l,k,j,i=null for(s=!e,r=J.cj(a),q=b,p=q,o=i;q>>4]&1<<(n&15))!==0)++q else{if(n===37){m=P.akV(a,q,!1) if(m==null){q+=3 continue}if("%"===m){m="%25" l=1}else l=3}else if(s&&n<=93&&(C.ke[n>>>4]&1<<(n&15))!==0){P.ua(a,q,"Invalid character") H.j(u.V) l=i m=l}else{if((n&64512)===55296){k=q+1 if(k=2&&P.aqP(J.aiK(a,0)))for(s=1;s127||(C.kg[r>>>4]&1<<(r&15))===0)break}return a}, aCO:function(a,b){if(a.abA("package")&&a.c==null)return P.arO(b,0,b.length) return-1}, aqY:function(a){var s,r,q,p=a.gku(),o=J.ag(p) if(o.gl(p)>0&&J.bQ(o.i(p,0))===2&&J.CU(o.i(p,0),1)===58){P.aCH(J.CU(o.i(p,0),0),!1) P.aqM(p,!1,1) s=!0}else{P.aqM(p,!1,0) s=!1}r=a.gv6()&&!s?"\\":"" if(a.gq2()){q=a.ghy(a) if(q.length!==0)r=r+"\\"+q+"\\"}r=P.JP(r,p,"\\") o=s&&o.gl(p)===1?r+"\\":r return o.charCodeAt(0)==0?o:o}, aCK:function(a,b){var s,r,q for(s=0,r=0;r<2;++r){q=C.c.W(a,b+r) if(48<=q&&q<=57)s=s*16+q-48 else{q|=32 if(97<=q&&q<=102)s=s*16+q-87 else throw H.a(P.bc("Invalid URL encoding"))}}return s}, afT:function(a,b,c,d,e){var s,r,q,p,o=J.cj(a),n=b while(!0){if(!(n127)throw H.a(P.bc("Illegal percent encoding in URI")) if(r===37){if(n+3>a.length)throw H.a(P.bc("Truncated URI")) p.push(P.aCK(a,n+1)) n+=2}else p.push(r)}}return d.c7(0,p)}, aqP:function(a){var s=a|32 return 97<=s&&s<=122}, apY:function(a,b,c){var s,r,q,p,o,n,m,l,k="Invalid MIME type",j=H.b([b-1],t._) for(s=a.length,r=b,q=-1,p=null;rb)throw H.a(P.bx(k,a,r)) for(;p!==44;){j.push(r);++r for(o=-1;r=0)j.push(o) else{n=C.b.gL(j) if(p!==44||r!==n+7||!C.c.dv(a,"base64",n+1))throw H.a(P.bx("Expecting '='",a,r)) break}}j.push(r) m=r+1 if((j.length&1)===1)a=C.jd.acj(0,a,m,s) else{l=P.aqW(a,m,s,C.eo,!0) if(l!=null)a=C.c.ky(a,m,s,l)}return new P.a7D(a,j,c)}, aDd:function(){var s,r,q,p,o,n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~!$&'()*+,;=",m=".",l=":",k="/",j="?",i="#",h=J.aor(22,t.H3) for(s=0;s<22;++s)h[s]=new Uint8Array(96) r=new P.agz(h) q=new P.agA() p=new P.agB() o=r.$2(0,225) q.$3(o,n,1) q.$3(o,m,14) q.$3(o,l,34) q.$3(o,k,3) q.$3(o,j,172) q.$3(o,i,205) o=r.$2(14,225) q.$3(o,n,1) q.$3(o,m,15) q.$3(o,l,34) q.$3(o,k,234) q.$3(o,j,172) q.$3(o,i,205) o=r.$2(15,225) q.$3(o,n,1) q.$3(o,"%",225) q.$3(o,l,34) q.$3(o,k,9) q.$3(o,j,172) q.$3(o,i,205) o=r.$2(1,225) q.$3(o,n,1) q.$3(o,l,34) q.$3(o,k,10) q.$3(o,j,172) q.$3(o,i,205) o=r.$2(2,235) q.$3(o,n,139) q.$3(o,k,131) q.$3(o,m,146) q.$3(o,j,172) q.$3(o,i,205) o=r.$2(3,235) q.$3(o,n,11) q.$3(o,k,68) q.$3(o,m,18) q.$3(o,j,172) q.$3(o,i,205) o=r.$2(4,229) q.$3(o,n,5) p.$3(o,"AZ",229) q.$3(o,l,102) q.$3(o,"@",68) q.$3(o,"[",232) q.$3(o,k,138) q.$3(o,j,172) q.$3(o,i,205) o=r.$2(5,229) q.$3(o,n,5) p.$3(o,"AZ",229) q.$3(o,l,102) q.$3(o,"@",68) q.$3(o,k,138) q.$3(o,j,172) q.$3(o,i,205) o=r.$2(6,231) p.$3(o,"19",7) q.$3(o,"@",68) q.$3(o,k,138) q.$3(o,j,172) q.$3(o,i,205) o=r.$2(7,231) p.$3(o,"09",7) q.$3(o,"@",68) q.$3(o,k,138) q.$3(o,j,172) q.$3(o,i,205) q.$3(r.$2(8,8),"]",5) o=r.$2(9,235) q.$3(o,n,11) q.$3(o,m,16) q.$3(o,k,234) q.$3(o,j,172) q.$3(o,i,205) o=r.$2(16,235) q.$3(o,n,11) q.$3(o,m,17) q.$3(o,k,234) q.$3(o,j,172) q.$3(o,i,205) o=r.$2(17,235) q.$3(o,n,11) q.$3(o,k,9) q.$3(o,j,172) q.$3(o,i,205) o=r.$2(10,235) q.$3(o,n,11) q.$3(o,m,18) q.$3(o,k,234) q.$3(o,j,172) q.$3(o,i,205) o=r.$2(18,235) q.$3(o,n,11) q.$3(o,m,19) q.$3(o,k,234) q.$3(o,j,172) q.$3(o,i,205) o=r.$2(19,235) q.$3(o,n,11) q.$3(o,k,234) q.$3(o,j,172) q.$3(o,i,205) o=r.$2(11,235) q.$3(o,n,11) q.$3(o,k,10) q.$3(o,j,172) q.$3(o,i,205) o=r.$2(12,236) q.$3(o,n,12) q.$3(o,j,12) q.$3(o,i,205) o=r.$2(13,237) q.$3(o,n,13) q.$3(o,j,13) p.$3(r.$2(20,245),"az",21) o=r.$2(21,245) p.$3(o,"az",21) p.$3(o,"09",21) q.$3(o,"+-.",21) return h}, arM:function(a,b,c,d,e){var s,r,q,p,o,n=$.au5() for(s=J.cj(a),r=b;r95?31:p] d=o&31 e[o>>>5]=r}return d}, aqB:function(a){if(a.b===7&&C.c.bv(a.a,"package")&&a.c<=0)return P.arO(a.a,a.e,a.f) return-1}, arO:function(a,b,c){var s,r,q for(s=b,r=0;sc)throw H.a(P.bz(a,0,c,s,s)) if(bc)throw H.a(P.bz(b,a,c,s,s))}, aD2:function(a){return a}, al5:function(a,b,c){var s try{if(Object.isExtensible(a)&&!Object.prototype.hasOwnProperty.call(a,b)){Object.defineProperty(a,b,{value:c}) return!0}}catch(s){H.U(s)}return!1}, arr:function(a,b){if(Object.prototype.hasOwnProperty.call(a,b))return a[b] return null}, RM:function(a){if(a==null||typeof a=="string"||typeof a=="number"||H.ip(a))return a if(a instanceof P.jL)return a.a if(H.asl(a))return a if(t.e2.b(a))return a if(a instanceof P.er)return H.f6(a) if(t._8.b(a))return P.arq(a,"$dart_jsFunction",new P.agx()) return P.arq(a,"_$dart_jsObject",new P.agy($.alX()))}, arq:function(a,b,c){var s=P.arr(a,b) if(s==null){s=c.$1(a) P.al5(a,b,s)}return s}, al2:function(a){if(a==null||typeof a=="string"||typeof a=="number"||typeof a=="boolean")return a else if(a instanceof Object&&H.asl(a))return a else if(a instanceof Object&&t.e2.b(a))return a else if(a instanceof Date)return P.anN(a.getTime(),!1) else if(a.constructor===$.alX())return a.o else return P.ahn(a)}, ahn:function(a){if(typeof a=="function")return P.al8(a,$.S8(),new P.aho()) if(a instanceof Array)return P.al8(a,$.alT(),new P.ahp()) return P.al8(a,$.alT(),new P.ahq())}, al8:function(a,b,c){var s=P.arr(a,b) if(s==null||!(a instanceof Object)){s=c.$1(a) P.al5(a,b,s)}return s}, aDa:function(a){var s,r=a.$dart_jsFunction if(r!=null)return r s=function(b,c){return function(){return b(c,Array.prototype.slice.apply(arguments))}}(P.aCZ,a) s[$.S8()]=a a.$dart_jsFunction=s return s}, aCZ:function(a,b){return P.aob(a,b)}, mf:function(a){if(typeof a=="function")return a else return P.aDa(a)}, ZJ:function ZJ(a){this.a=a}, agx:function agx(){}, agy:function agy(a){this.a=a}, aho:function aho(){}, ahp:function ahp(){}, ahq:function ahq(){}, jL:function jL(a){this.a=a}, wp:function wp(a){this.a=a}, nh:function nh(a,b){this.a=a this.$ti=b}, tE:function tE(){}, alw:function(a,b){return b in a}, alr:function(a,b,c){return a[b].apply(a,c)}, hw:function(a,b){var s=new P.a1($.R,b.h("a1<0>")),r=new P.aH(s,b.h("aH<0>")) a.then(H.fh(new P.aif(r),1),H.fh(new P.aig(r),1)) return s}, GU:function GU(a){this.a=a}, aif:function aif(a){this.a=a}, aig:function aig(a){this.a=a}, asp:function(a,b){return Math.max(H.B(a),H.B(b))}, S1:function(a){return Math.log(a)}, aFY:function(a,b){H.B(b) return Math.pow(a,b)}, fC:function fC(a,b,c){this.a=a this.b=b this.$ti=c}, hT:function hT(){}, Gl:function Gl(){}, i_:function i_(){}, GX:function GX(){}, a1l:function a1l(){}, a23:function a23(){}, qW:function qW(){}, JR:function JR(){}, am:function am(){}, i9:function i9(){}, Kj:function Kj(){}, Np:function Np(){}, Nq:function Nq(){}, O7:function O7(){}, O8:function O8(){}, PV:function PV(){}, PW:function PW(){}, QC:function QC(){}, QD:function QD(){}, F9:function F9(){}, ap3:function(){var s=H.aF() if(s)return new H.E3() else return new H.Fc()}, anB:function(a,b){var s='"recorder" must not already be associated with another Canvas.',r=H.aF() if(r){if(a.gND())H.e(P.bc(s)) if(b==null)b=C.eE return new H.TQ(t.wW.a(a).lc(0,b))}else{t.X8.a(a) if(a.c)H.e(P.bc(s)) return new H.a6B(a.lc(0,b==null?C.eE:b))}}, aAF:function(){var s,r,q=H.aF() if(q){q=new H.IE(H.b([],t.k5),C.Z) s=new H.a_a(q) s.b=q return s}else{q=H.b([],t.wc) s=$.a6D r=H.b([],t.g) s=s!=null&&s.c===C.ai?s:null s=new H.fp(s,t.Nh) $.io.push(s) s=new H.xt(r,s,C.aT) s.f=H.dt() q.push(s) return new H.a6C(q)}}, a0D:function(a,b,c){if(b==null)if(a==null)return null else return a.a4(0,1-c) else if(a==null)return b.a4(0,c) else return new P.m(P.kE(a.a,b.a,c),P.kE(a.b,b.b,c))}, aAV:function(a,b,c){if(b==null)if(a==null)return null else return a.a4(0,1-c) else if(a==null)return b.a4(0,c) else return new P.Q(P.kE(a.a,b.a,c),P.kE(a.b,b.b,c))}, k6:function(a,b){var s=a.a,r=b*2/2,q=a.b return new P.x(s-r,q-r,s+r,q+r)}, aAk:function(a,b,c){var s=a.a,r=c/2,q=a.b,p=b/2 return new P.x(s-r,q-p,s+r,q+p)}, akj:function(a,b){var s=a.a,r=b.a,q=Math.min(H.B(s),H.B(r)),p=a.b,o=b.b return new P.x(q,Math.min(H.B(p),H.B(o)),Math.max(H.B(s),H.B(r)),Math.max(H.B(p),H.B(o)))}, aph:function(a,b,c){var s,r,q,p,o if(b==null)if(a==null)return null else{s=1-c return new P.x(a.a*s,a.b*s,a.c*s,a.d*s)}else{r=b.a q=b.b p=b.c o=b.d if(a==null)return new P.x(r*c,q*c,p*c,o*c) else return new P.x(P.kE(a.a,r,c),P.kE(a.b,q,c),P.kE(a.c,p,c),P.kE(a.d,o,c))}}, xG:function(a,b,c){var s,r,q if(b==null)if(a==null)return null else{s=1-c return new P.c2(a.a*s,a.b*s)}else{r=b.a q=b.b if(a==null)return new P.c2(r*c,q*c) else return new P.c2(P.kE(a.a,r,c),P.kE(a.b,q,c))}}, xE:function(a,b){var s=b.a,r=b.b,q=a.d,p=a.a,o=a.c return new P.hc(p,a.b,o,q,s,r,s,r,s,r,s,r,s===r)}, a1I:function(a,b,c,d,e){var s=b.a,r=b.b,q=a.d,p=c.a,o=c.b,n=a.a,m=a.c,l=d.a,k=d.b,j=a.b,i=e.a,h=e.b return new P.hc(n,j,m,q,l,k,i,h,p,o,s,r,l===k&&l===i&&l===h&&l===s&&l===r&&l===p&&l===o)}, dn:function(a,b){a=a+J.a3(b)&536870911 a=a+((a&524287)<<10)&536870911 return a^a>>>6}, aql:function(a){a=a+((a&67108863)<<3)&536870911 a^=a>>>11 return a+((a&16383)<<15)&536870911}, a5:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,a0,a1){var s=P.dn(P.dn(0,a),b) if(!J.d(c,C.a)){s=P.dn(s,c) if(!J.d(d,C.a)){s=P.dn(s,d) if(!J.d(e,C.a)){s=P.dn(s,e) if(!J.d(f,C.a)){s=P.dn(s,f) if(!J.d(g,C.a)){s=P.dn(s,g) if(!J.d(h,C.a)){s=P.dn(s,h) if(!J.d(i,C.a)){s=P.dn(s,i) if(!J.d(j,C.a)){s=P.dn(s,j) if(!J.d(k,C.a)){s=P.dn(s,k) if(!J.d(l,C.a)){s=P.dn(s,l) if(!J.d(m,C.a)){s=P.dn(s,m) if(!J.d(n,C.a)){s=P.dn(s,n) if(!J.d(o,C.a)){s=P.dn(s,o) if(!J.d(p,C.a)){s=P.dn(s,p) if(!J.d(q,C.a)){s=P.dn(s,q) if(!J.d(r,C.a)){s=P.dn(s,r) if(!J.d(a0,C.a)){s=P.dn(s,a0) if(!J.d(a1,C.a))s=P.dn(s,a1)}}}}}}}}}}}}}}}}}return P.aql(s)}, em:function(a){var s,r,q if(a!=null)for(s=a.length,r=0,q=0;q>>24&255)*b),0,255),a.gm(a)>>>16&255,a.gm(a)>>>8&255,a.gm(a)&255)}, aI:function(a,b,c,d){return new P.C(((a&255)<<24|(b&255)<<16|(c&255)<<8|d&255)>>>0)}, aja:function(a){if(a<=0.03928)return a/12.92 return Math.pow((a+0.055)/1.055,2.4)}, K:function(a,b,c){if(b==null)if(a==null)return null else return P.arL(a,1-c) else if(a==null)return P.arL(b,c) else return P.aI(H.uh(C.d.cU(P.agY(a.gm(a)>>>24&255,b.gm(b)>>>24&255,c)),0,255),H.uh(C.d.cU(P.agY(a.gm(a)>>>16&255,b.gm(b)>>>16&255,c)),0,255),H.uh(C.d.cU(P.agY(a.gm(a)>>>8&255,b.gm(b)>>>8&255,c)),0,255),H.uh(C.d.cU(P.agY(a.gm(a)&255,b.gm(b)&255,c)),0,255))}, ajb:function(a,b){var s,r,q,p=a.gm(a)>>>24&255 if(p===0)return b s=255-p r=b.gm(b)>>>24&255 if(r===255)return P.aI(255,C.f.cr(p*(a.gm(a)>>>16&255)+s*(b.gm(b)>>>16&255),255),C.f.cr(p*(a.gm(a)>>>8&255)+s*(b.gm(b)>>>8&255),255),C.f.cr(p*(a.gm(a)&255)+s*(b.gm(b)&255),255)) else{r=C.f.cr(r*s,255) q=p+r return P.aI(q,C.f.hM((a.gm(a)>>>16&255)*p+(b.gm(b)>>>16&255)*r,q),C.f.hM((a.gm(a)>>>8&255)*p+(b.gm(b)>>>8&255)*r,q),C.f.hM((a.gm(a)&255)*p+(b.gm(b)&255)*r,q))}}, aoe:function(a,b,c,d,e){var s=H.aF() if(s){s=new H.E0(a,b,c,d,e) s.iy(null)}else s=new H.FP(a,b,c,d,e,null) return s}, alz:function(a,b,c,d){var s=0,r=P.af(t.hP),q,p var $async$alz=P.a9(function(e,f){if(e===1)return P.ac(f,r) while(true)switch(s){case 0:p=H.aF() if(p){p=new H.DM("encoded image bytes",a) p.iy(null) q=p s=1 break}else{q=new H.FT((self.URL||self.webkitURL).createObjectURL(W.aj3([a.buffer]))) s=1 break}case 1:return P.ad(q,r)}}) return P.ae($async$alz,r)}, dh:function(){var s=H.aF() if(s){s=new H.pm(C.bp) s.iy(null) return s}else return H.akq()}, azM:function(a,b,c,d,e,f,g){return new P.HI(a,!1,f,e,g,d,c)}, aq3:function(){return new P.KC()}, ap6:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7,a8){return new P.qz(a8,b,f,a4,c,n,k,l,i,j,a,!1,a6,o,q,p,d,e,a5,r,a1,a0,s,h,a7,m,a2,a3)}, ajD:function(a,b,c){var s,r=a==null if(r&&b==null)return null r=r?null:a.a if(r==null)r=3 s=b==null?null:b.a r=P.aa(r,s==null?3:s,c) r.toString return C.ru[H.uh(C.d.aO(r),0,8)]}, aku:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,a0,a1){var s=H.aF() if(s){s=t.yf return H.aj9(s.a(a),b,c,d,e,f,g,h,i,j,k,l,s.a(m),n,p,q,r,a0,a1)}else return H.ajj(a,b,c,d,e,f,g,h,i,j,k,l,m,n,p,q,r,a0,a1)}, a0X:function(a,b,c,d,e,f,g,h,i,j,k,l){var s,r,q,p,o=null,n=H.aF() if(n){s=H.aAX(o) if(j!=null)s.textAlign=$.aub()[j.a] n=k==null if(!n)s.textDirection=$.aue()[k.a] if(h!=null)s.maxLines=h if(f!=null)s.heightMultiplier=f if(l!=null)s.textHeightBehavior=l.aeF() if(a!=null)s.ellipsis=a if(i!=null){r=H.aAY(o) r.fontFamilies=H.al9(i.a,i.b) q=i.c if(q!=null)r.fontSize=q q=i.d if(q!=null)r.heightMultiplier=q q=i.f if(q!=null||!1)r.fontStyle=H.alN(q,i.r) r.forceStrutHeight=!0 r.strutEnabled=!0 s.strutStyle=r}p=H.apC(o) if(e!=null||!1)p.fontStyle=H.alN(e,d) if(c!=null)p.fontSize=c p.fontFamilies=H.al9(b,o) s.textStyle=p q=$.c8 q=J.auJ(q===$?H.e(H.t("canvasKit")):q,s) return new H.E2(q,n?C.m:k,b,c,e,d)}else return new H.vM(j,k,e,d,h,b,c,f,l,i,a,g)}, a0W:function(a){var s,r,q,p,o,n=H.aF() if(n)return H.anE(a) else{n=t.IH s=t.up if($.a7T.b){n.a(a) return new H.TT(new P.c6(""),a,H.b([],t.zY),H.b([],t.PL),new H.IF(a),H.b([],s))}else{n.a(a) n=t.C.a($.bD().iK(0,"p")) s=H.b([],s) r=a.z if(r!=null){q=H.b([],t._m) p=r.a if(p!=null)q.push(p) r=r.b if(r!=null)C.b.J(q,r)}o=n.style r=a.a if(r!=null){p=a.b r=H.aip(r,p==null?C.m:p) o.textAlign=r}if(a.gmt(a)!=null){r=H.c(a.gmt(a)) o.lineHeight=r}r=a.b if(r!=null){r=H.all(r) o.toString o.direction=r==null?"":r}r=a.r if(r!=null){r=""+C.d.dC(r)+"px" o.fontSize=r}r=a.c if(r!=null){r=H.ahJ(r) o.toString o.fontWeight=r==null?"":r}r=H.oY(a.goA()) o.toString o.fontFamily=r==null?"":r return new H.VC(n,a,[],s)}}}, azO:function(a){throw H.a(P.ce(null))}, azN:function(a){throw H.a(P.ce(null))}, aFt:function(a,b){var s,r,q=C.bx.fV(a) switch(q.a){case"create":P.aDc(q,b) return case"dispose":s=q.b r=$.aiG().b r.i(0,s) r.u(0,s) b.$1(C.bx.pG(null)) return}b.$1(null)}, aDc:function(a,b){var s,r=a.b,q=J.ag(r) q.i(r,"id") s=q.i(r,"viewType") $.aiG().a.i(0,s) b.$1(C.bx.a9t("Unregistered factory","No factory registered for viewtype '"+H.c(s)+"'")) return}, Ed:function Ed(a,b){this.a=a this.b=b}, Ht:function Ht(a,b){this.a=a this.b=b}, BD:function BD(a,b,c){this.a=a this.b=b this.c=c}, oz:function oz(a,b){this.a=a this.b=!0 this.c=b}, U2:function U2(a){this.a=a}, U3:function U3(){}, H_:function H_(){}, m:function m(a,b){this.a=a this.b=b}, Q:function Q(a,b){this.a=a this.b=b}, x:function x(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, c2:function c2(a,b){this.a=a this.b=b}, hc:function hc(a,b,c,d,e,f,g,h,i,j,k,l,m){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m}, aaO:function aaO(){}, ais:function ais(){}, ws:function ws(a){this.b=a}, iL:function iL(a,b,c,d){var _=this _.b=a _.c=b _.d=c _.e=d}, C:function C(a){this.a=a}, yK:function yK(a,b){this.a=a this.b=b}, yL:function yL(a,b){this.a=a this.b=b}, Hp:function Hp(a,b){this.a=a this.b=b}, c_:function c_(a,b){this.a=a this.b=b}, po:function po(a){this.b=a}, Ti:function Ti(a,b){this.a=a this.b=b}, qi:function qi(a,b){this.a=a this.b=b}, pO:function pO(a,b){this.a=a this.b=b}, Z1:function Z1(a){this.b=a}, J8:function J8(){}, a1g:function a1g(){}, HI:function HI(a,b,c,d,e,f,g){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g}, KC:function KC(){}, jH:function jH(a){this.a=a}, pb:function pb(a){this.b=a}, jS:function jS(a,b){this.a=a this.c=b}, k_:function k_(a){this.b=a}, lt:function lt(a){this.b=a}, xy:function xy(a){this.b=a}, qz:function qz(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7,a8){var _=this _.b=a _.c=b _.d=c _.e=d _.f=e _.r=f _.x=g _.y=h _.z=i _.Q=j _.ch=k _.cx=l _.cy=m _.db=n _.dx=o _.dy=p _.fr=q _.fx=r _.fy=s _.go=a0 _.id=a1 _.k1=a2 _.k2=a3 _.k3=a4 _.k4=a5 _.r1=a6 _.r2=a7 _.rx=a8}, qA:function qA(a){this.a=a}, cv:function cv(a){this.a=a}, cp:function cp(a){this.a=a}, a4F:function a4F(a){this.a=a}, ls:function ls(a){this.b=a}, h5:function h5(a){this.a=a}, kg:function kg(a,b){this.a=a this.b=b}, yV:function yV(a,b){this.a=a this.b=b}, yY:function yY(a){this.a=a}, oi:function oi(a,b){this.a=a this.b=b}, oj:function oj(a,b){this.a=a this.b=b}, f8:function f8(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e}, yU:function yU(a){this.b=a}, aV:function aV(a,b){this.a=a this.b=b}, eM:function eM(a,b){this.a=a this.b=b}, iT:function iT(a){this.a=a}, Dx:function Dx(a,b){this.a=a this.b=b}, Tn:function Tn(){}, rV:function rV(a,b){this.a=a this.b=b}, Xg:function Xg(){}, mX:function mX(){}, Jd:function Jd(){}, D1:function D1(){}, DA:function DA(a){this.b=a}, TI:function TI(a){this.a=a}, a1j:function a1j(a,b){this.a=a this.b=b}, ST:function ST(){}, Dg:function Dg(){}, Dh:function Dh(){}, SU:function SU(a){this.a=a}, SV:function SV(a){this.a=a}, SW:function SW(){}, Do:function Do(){}, a0B:function a0B(){}, Ld:function Ld(){}, SF:function SF(){}, JK:function JK(){}, PO:function PO(){}, PP:function PP(){}},W={ ait:function(){return window}, as7:function(){return document}, aj3:function(a){var s=new self.Blob(a) return s}, v5:function(a,b){var s=document.createElement("canvas") if(b!=null)s.width=b if(a!=null)s.height=a return s}, aBV:function(a,b){var s for(s=J.as(b);s.q();)a.appendChild(s.gw(s))}, aq9:function(a,b){if(t.h.b(b))if(b.parentNode===a){a.removeChild(b) return!0}return!1}, aBW:function(a){var s=a.firstElementChild if(s==null)throw H.a(P.a4("No elements")) return s}, vH:function(a,b,c){var s,r=document.body r.toString s=C.j6.i0(r,a,b,c) s.toString r=new H.aO(new W.dx(s),new W.Wd(),t.A3.h("aO")) return t.h.a(r.gc5(r))}, vI:function(a){var s,r,q="element tag unavailable" try{s=J.k(a) if(typeof s.gP2(a)=="string")q=s.gP2(a)}catch(r){H.U(r)}return q}, eR:function(a,b){return document.createElement(a)}, ayP:function(a,b,c){var s=new FontFace(a,b,P.aht(c)) return s}, az_:function(a,b){var s,r=new P.a1($.R,t._T),q=new P.aH(r,t.rj),p=new XMLHttpRequest() C.jY.Oe(p,"GET",a,!0) p.responseType=b s=t.Ip W.bN(p,"load",new W.YR(p,q),!1,s) W.bN(p,"error",q.gLu(),!1,s) p.send() return r}, aoj:function(){var s=document.createElement("img") return s}, Zr:function(){var s,r=null,q=document.createElement("input"),p=t.Zb.a(q) if(r!=null)try{p.type=r}catch(s){H.U(s)}return p}, abh:function(a,b){a=a+b&536870911 a=a+((a&524287)<<10)&536870911 return a^a>>>6}, aqk:function(a,b,c,d){var s=W.abh(W.abh(W.abh(W.abh(0,a),b),c),d),r=s+((s&67108863)<<3)&536870911 r^=r>>>11 return r+((r&16383)<<15)&536870911}, bN:function(a,b,c,d,e){var s=c==null?null:W.aln(new W.aak(c),t.I3) s=new W.tp(a,b,s,!1,e.h("tp<0>")) s.zs() return s}, aqj:function(a){var s=document.createElement("a"),r=new W.adT(s,window.location) r=new W.tA(r) r.Xc(a) return r}, aC6:function(a,b,c,d){return!0}, aC7:function(a,b,c,d){var s,r=d.a,q=r.a q.href=c s=q.hostname r=r.b if(!(s==r.hostname&&q.port==r.port&&q.protocol==r.protocol))if(s==="")if(q.port===""){r=q.protocol r=r===":"||r===""}else r=!1 else r=!1 else r=!0 return r}, aqE:function(){var s=t.N,r=P.iM(C.kq,s),q=H.b(["TEMPLATE"],t.s) s=new W.Qe(r,P.jP(s),P.jP(s),P.jP(s),null) s.Xe(null,new H.Z(C.kq,new W.aeT(),t.IK),q,null) return s}, agw:function(a){var s if("postMessage" in a){s=W.aBZ(a) return s}else return a}, arb:function(a){if(t.VF.b(a))return a return new P.fQ([],[]).hr(a,!0)}, aBZ:function(a){if(a===window)return a else return new W.a9Q(a)}, aln:function(a,b){var s=$.R if(s===C.F)return a return s.A5(a,b)}, ab:function ab(){}, SB:function SB(){}, p7:function p7(){}, Dc:function Dc(){}, Dm:function Dm(){}, kP:function kP(){}, ph:function ph(){}, kR:function kR(){}, uR:function uR(){}, mv:function mv(){}, To:function To(){}, DB:function DB(){}, kX:function kX(){}, DG:function DG(){}, iA:function iA(){}, vm:function vm(){}, UR:function UR(){}, px:function px(){}, US:function US(){}, vn:function vn(){}, cb:function cb(){}, py:function py(){}, UT:function UT(){}, pz:function pz(){}, l2:function l2(){}, jx:function jx(){}, UU:function UU(){}, UV:function UV(){}, V5:function V5(){}, EL:function EL(){}, EX:function EX(){}, vz:function vz(){}, jA:function jA(){}, VB:function VB(){}, pF:function pF(){}, vB:function vB(){}, vC:function vC(){}, F4:function F4(){}, VN:function VN(){}, Lw:function Lw(a,b){this.a=a this.b=b}, oD:function oD(a,b){this.a=a this.$ti=b}, aE:function aE(){}, Wd:function Wd(){}, F7:function F7(){}, vN:function vN(){}, WG:function WG(a){this.a=a}, WH:function WH(a){this.a=a}, ah:function ah(){}, WJ:function WJ(){}, ai:function ai(){}, ec:function ec(){}, WP:function WP(){}, Fq:function Fq(){}, et:function et(){}, pN:function pN(){}, Fs:function Fs(){}, WQ:function WQ(){}, WR:function WR(){}, n1:function n1(){}, Xp:function Xp(){}, jF:function jF(){}, fq:function fq(){}, YI:function YI(){}, n9:function n9(){}, iG:function iG(){}, YR:function YR(a,b){this.a=a this.b=b}, wb:function wb(){}, FV:function FV(){}, Z0:function Z0(){}, wd:function wd(){}, nc:function nc(){}, nf:function nf(){}, jN:function jN(){}, wu:function wu(){}, wz:function wz(){}, a_k:function a_k(){}, Gx:function Gx(){}, nt:function nt(){}, a_A:function a_A(){}, a_B:function a_B(){}, GD:function GD(){}, ql:function ql(){}, a_C:function a_C(){}, wV:function wV(){}, lo:function lo(){}, GF:function GF(){}, a_J:function a_J(a){this.a=a}, a_K:function a_K(a){this.a=a}, GG:function GG(){}, a_L:function a_L(a){this.a=a}, a_M:function a_M(a){this.a=a}, wW:function wW(){}, fw:function fw(){}, GH:function GH(){}, eC:function eC(){}, a0k:function a0k(){}, dx:function dx(a){this.a=a}, a8:function a8(){}, qp:function qp(){}, a0r:function a0r(){}, GY:function GY(){}, GZ:function GZ(){}, H5:function H5(){}, a0G:function a0G(){}, xm:function xm(){}, Hq:function Hq(){}, a1_:function a1_(){}, iW:function iW(){}, a13:function a13(){}, a14:function a14(){}, fB:function fB(){}, HJ:function HJ(){}, k1:function k1(){}, HL:function HL(){}, a1x:function a1x(){}, f7:function f7(){}, a1H:function a1H(){}, a27:function a27(){}, IL:function IL(){}, y7:function y7(){}, IM:function IM(){}, a3E:function a3E(a){this.a=a}, a3F:function a3F(a){this.a=a}, a3Y:function a3Y(){}, yc:function yc(){}, J0:function J0(){}, a4G:function a4G(){}, J9:function J9(){}, Jv:function Jv(){}, fI:function fI(){}, JB:function JB(){}, rx:function rx(){}, fJ:function fJ(){}, JH:function JH(){}, fK:function fK(){}, JI:function JI(){}, a67:function a67(){}, a68:function a68(){}, yI:function yI(){}, a6l:function a6l(a){this.a=a}, a6m:function a6m(a){this.a=a}, yM:function yM(){}, eI:function eI(){}, yT:function yT(){}, JZ:function JZ(){}, K_:function K_(){}, rJ:function rJ(){}, rK:function rK(){}, fM:function fM(){}, eN:function eN(){}, K9:function K9(){}, Ka:function Ka(){}, a7k:function a7k(){}, fN:function fN(){}, lP:function lP(){}, zg:function zg(){}, a7r:function a7r(){}, kj:function kj(){}, a7H:function a7H(){}, KB:function KB(){}, a7P:function a7P(){}, KF:function KF(){}, a7R:function a7R(){}, a7U:function a7U(){}, ou:function ou(){}, ov:function ov(){}, j9:function j9(){}, t5:function t5(){}, LM:function LM(){}, zY:function zY(){}, N_:function N_(){}, AU:function AU(){}, PK:function PK(){}, Q_:function Q_(){}, Lc:function Lc(){}, A6:function A6(a){this.a=a}, ajk:function ajk(a,b){this.a=a this.$ti=b}, jc:function jc(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.$ti=d}, ii:function ii(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.$ti=d}, tp:function tp(a,b,c,d,e){var _=this _.a=0 _.b=a _.c=b _.d=c _.e=d _.$ti=e}, aak:function aak(a){this.a=a}, aal:function aal(a){this.a=a}, tA:function tA(a){this.a=a}, az:function az(){}, xb:function xb(a){this.a=a}, a0p:function a0p(a){this.a=a}, a0o:function a0o(a,b,c){this.a=a this.b=b this.c=c}, Bt:function Bt(){}, aet:function aet(){}, aeu:function aeu(){}, Qe:function Qe(a,b,c,d,e){var _=this _.e=a _.a=b _.b=c _.c=d _.d=e}, aeT:function aeT(){}, Q0:function Q0(){}, pP:function pP(a,b,c){var _=this _.a=a _.b=b _.c=-1 _.d=null _.$ti=c}, Es:function Es(){}, a9Q:function a9Q(a){this.a=a}, adT:function adT(a,b){this.a=a this.b=b}, QW:function QW(a){this.a=a this.b=0}, afW:function afW(a){this.a=a}, LN:function LN(){}, Mg:function Mg(){}, Mh:function Mh(){}, Mi:function Mi(){}, Mj:function Mj(){}, MK:function MK(){}, ML:function ML(){}, N7:function N7(){}, N8:function N8(){}, NF:function NF(){}, NG:function NG(){}, NH:function NH(){}, NI:function NI(){}, O0:function O0(){}, O1:function O1(){}, Oi:function Oi(){}, Oj:function Oj(){}, Ph:function Ph(){}, Bu:function Bu(){}, Bv:function Bv(){}, PI:function PI(){}, PJ:function PJ(){}, PR:function PR(){}, Qo:function Qo(){}, Qp:function Qp(){}, BO:function BO(){}, BP:function BP(){}, Qw:function Qw(){}, Qx:function Qx(){}, R5:function R5(){}, R6:function R6(){}, Ra:function Ra(){}, Rb:function Rb(){}, Rh:function Rh(){}, Ri:function Ri(){}, Rr:function Rr(){}, Rs:function Rs(){}, Rt:function Rt(){}, Ru:function Ru(){}},Y={bJ:function bJ(){},Tg:function Tg(a){this.a=a},Tf:function Tf(a,b){this.a=a this.b=b},Th:function Th(a){this.a=a},FR:function FR(a,b,c){var _=this _.a=a _.b=b _.d=_.c=0 _.$ti=c}, aFe:function(a,b){var s,r,q,p,o,n,m if(a===b)return!0 s=a.length if(s!==b.length)return!1 for(r=t.rD,q=t.bO,p=0;p>>0}return(o.a^s.gl(b))>>>0}a=o.a=a+J.a3(b)&536870911 a=o.a=a+((a&524287)<<10)&536870911 return(a^a>>>6)>>>0}, aFS:function(a,b){var s=a.j(0),r=new H.Z(b,new Y.aib(),H.Y(b).h("Z<1,f*>")) return s+r.j(0)}, agr:function agr(a){this.a=a}, aib:function aib(){}, IK:function IK(a){this.b=a}, SJ:function SJ(a,b){this.a=a this.b=b}, IJ:function IJ(a,b){this.a=a this.b=b}, qU:function qU(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d _.e=null}, a3q:function a3q(a){this.a=a this.b=!1}, a3r:function a3r(){}, ayl:function(a,b,c){var s=null return Y.pE("",s,b,C.bc,a,!1,s,s,C.aQ,s,!1,!1,!0,c,s,t.H)}, pE:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){var s if(h==null)s=k?"MISSING":null else s=h return new Y.es(e,!1,c,s,g,o,k,b,d,i,a,m,l,j,n,p.h("es<0>"))}, ajf:function(a,b,c){return new Y.EV(c,a,!0,!0,null,b)}, cf:function(a){var s=J.a3(a) s.toString return C.c.qp(C.f.j9(s&1048575,16),5,"0")}, as6:function(a){var s=J.bB(a) return C.c.bw(s,J.awD(s,".")+1)}, pC:function pC(a,b){this.a=a this.b=b}, jz:function jz(a){this.b=a}, acX:function acX(){}, cz:function cz(){}, es:function es(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){var _=this _.f=a _.r=b _.x=c _.z=d _.Q=e _.ch=f _.cx=g _.cy=h _.db=!0 _.dx=null _.dy=i _.fr=j _.a=k _.b=l _.c=m _.d=n _.e=o _.$ti=p}, mI:function mI(){}, EV:function EV(a,b,c,d,e,f){var _=this _.f=a _.r=null _.a=b _.b=c _.c=d _.d=e _.e=f}, aw:function aw(){}, EU:function EU(){}, iD:function iD(){}, M9:function M9(){}, vy:function vy(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e}, Ma:function Ma(){}, lg:function lg(a,b,c,d,e,f,g,h,i,j){var _=this _.z=a _.Q=b _.ch=c _.cx=d _.cy=e _.db=f _.dy=_.dx=$ _.fr=!0 _.e=g _.a=h _.b=i _.c=j _.d=!1}, hA:function(a,b){var s=a.c,r=s===C.a8&&a.b===0,q=b.c===C.a8&&b.b===0 if(r&&q)return C.q if(r)return b if(q)return a return new Y.dL(a.a,a.b+b.b,s)}, jr:function(a,b){var s,r=a.c if(!(r===C.a8&&a.b===0))s=b.c===C.a8&&b.b===0 else s=!0 if(s)return!0 return r===b.c&&J.d(a.a,b.a)}, bd:function(a,b,c){var s,r,q,p,o,n=u.I if(c===0)return a if(c===1)return b s=P.aa(a.b,b.b,c) s.toString if(s<0)return C.q r=a.c q=b.c if(r===q){q=P.K(a.a,b.a,c) q.toString return new Y.dL(q,s,r)}switch(r){case C.a_:p=a.a break case C.a8:r=a.a p=P.aI(0,r.gm(r)>>>16&255,r.gm(r)>>>8&255,r.gm(r)&255) break default:throw H.a(H.j(n))}switch(q){case C.a_:o=b.a break case C.a8:r=b.a o=P.aI(0,r.gm(r)>>>16&255,r.gm(r)>>>8&255,r.gm(r)&255) break default:throw H.a(H.j(n))}r=P.K(p,o,c) r.toString return new Y.dL(r,s,C.a_)}, hf:function(a,b,c){var s,r=b!=null?b.dO(a,c):null if(r==null&&a!=null)r=a.dP(b,c) if(r==null)s=c<0.5?a:b else s=r return s}, aqa:function(a,b,c){var s,r,q,p,o,n=a instanceof Y.hp?a.a:H.b([a],t.Fi),m=b instanceof Y.hp?b.a:H.b([b],t.Fi),l=H.b([],t.N_),k=Math.max(n.length,m.length) for(s=0;s*") if(s.b(a.gE()))a.ip(new Y.a1G(r,b)) else r.a=b.h("oF<0*>*").a(a.kD(s)) r=r.a if(r==null)throw H.a(new Y.xB(H.bO(b.h("0*")),J.N(a.gE()))) return r}, we:function we(a,b,c,d,e){var _=this _.e=a _.f=b _.c=c _.a=d _.$ti=e}, Aq:function Aq(a,b,c,d,e,f){var _=this _.eY$=a _.dx=null _.dy=!1 _.a=null _.b=b _.c=null _.d=$ _.e=c _.f=null _.r=d _.x=e _.z=_.y=null _.Q=!1 _.ch=!0 _.db=_.cy=_.cx=!1 _.$ti=f}, e0:function e0(a,b,c,d){var _=this _.f=a _.b=b _.a=c _.$ti=d}, oA:function oA(a,b){var _=this _.b=_.a=!1 _.c=a _.$ti=b}, oF:function oF(a,b,c,d,e,f){var _=this _.cl=_.c_=!1 _.cw=_.aK=!0 _.cE=_.e3=!1 _.d3=null _.aY=a _.dx=null _.dy=!1 _.a=null _.b=b _.c=null _.d=$ _.e=c _.f=null _.r=d _.x=e _.z=_.y=null _.Q=!1 _.ch=!0 _.db=_.cy=_.cx=!1 _.$ti=f}, ab8:function ab8(a){this.a=a}, M8:function M8(){}, ig:function ig(){}, ta:function ta(a,b,c,d,e,f,g){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.$ti=g}, zR:function zR(a){var _=this _.b=null _.c=!1 _.a=_.e=_.d=null _.$ti=a}, GL:function GL(){}, a1G:function a1G(a,b){this.a=a this.b=b}, xB:function xB(a,b){this.a=a this.b=b}, ajA:function(a,b){if(b<0)H.e(P.cN("Offset may not be negative, was "+b+".")) else if(b>a.c.length)H.e(P.cN("Offset "+b+u.D+a.gl(a)+".")) return new Y.Fr(a,b)}, a64:function a64(a,b,c){var _=this _.a=a _.b=b _.c=c _.d=null}, Fr:function Fr(a,b){this.a=a this.b=b}, A8:function A8(a,b,c){this.a=a this.b=b this.c=c}, rw:function rw(){}, lS:function lS(){}, zp:function zp(){}, zo:function zo(a,b){this.a=a this.b=b}, n8:function n8(a){this.a=a}, Al:function Al(a,b){var _=this _.d=!1 _.e=!0 _.f=null _.r=0 _.y=_.x=null _.cc$=a _.a=null _.b=b _.c=null}, aaZ:function aaZ(){}, aaY:function aaY(a){this.a=a}, ab0:function ab0(a){this.a=a}, ab_:function ab_(a){this.a=a}, ab3:function ab3(a){this.a=a}, ab2:function ab2(a){this.a=a}, ab1:function ab1(a,b){this.a=a this.b=b}, Ci:function Ci(){}, aFs:function(a,b,c,d){var s,r,q,p,o,n=P.y(d,c.h("v<0>")) for(s=c.h("o<0>"),r=0;r<1;++r){q=a[r] p=b.$1(q) o=n.i(0,p) if(o==null){o=H.b([],s) n.n(0,p,o) p=o}else p=o p.push(q)}return n}},F={Tb:function Tb(){},Qi:function Qi(a,b){this.b=a this.a=b},V0:function V0(){},f3:function f3(){},wy:function wy(a){this.b=a}, ake:function(a,b){var s,r,q if(a==null)return b s=b.a r=b.b q=new E.hm(new Float64Array(3)) q.m3(s,r,0) s=a.vy(q).a return new P.m(s[0],s[1])}, akd:function(a,b,c,d){if(a==null)return c if(b==null)b=F.ake(a,d) return b.a5(0,F.ake(a,d.a5(0,c)))}, akc:function(a){var s,r,q=new Float64Array(4),p=new E.ic(q) p.rl(0,0,1,0) a.toString s=new Float64Array(16) r=new E.b8(s) r.bC(a) s[11]=q[3] s[10]=q[2] s[9]=q[1] s[8]=q[0] r.wl(2,p) return r}, azP:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){return new F.nH(d,n,0,e,a,h,C.i,0,!1,!1,0,j,i,b,c,0,0,0,l,k,g,m,0,!1,null,null)}, azV:function(a,b,c,d,e,f,g,h,i,j,k){return new F.nK(c,k,0,d,a,f,C.i,0,!1,!1,0,h,g,0,b,0,0,0,j,i,0,0,0,!1,null,null)}, azT:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0){return new F.k2(f,a0,0,g,c,j,b,a,!1,!1,0,l,k,d,e,q,m,p,o,n,i,s,0,r,null,null)}, azR:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2){return new F.lu(g,a2,k,h,c,l,b,a,f,!1,0,n,m,d,e,s,o,r,q,p,j,a1,0,a0,null,null)}, azS:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2){return new F.lv(g,a2,k,h,c,l,b,a,f,!1,0,n,m,d,e,s,o,r,q,p,j,a1,0,a0,null,null)}, azQ:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){return new F.k0(d,s,h,e,b,i,C.i,a,!0,!1,j,l,k,0,c,q,m,p,o,n,g,r,0,!1,null,null)}, azU:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2){return new F.nJ(e,a2,j,f,c,k,b,a,!0,!1,l,n,m,0,d,s,o,r,q,p,h,a1,i,a0,null,null)}, azX:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0){return new F.nM(e,a0,i,f,b,j,C.i,a,!1,!1,k,m,l,c,d,r,n,q,p,o,h,s,0,!1,null,null)}, azW:function(a,b,c,d,e,f){return new F.nL(e,b,f,0,c,a,d,C.i,0,!1,!1,1,1,1,0,0,0,0,0,0,0,0,0,0,!1,null,null)}, ap5:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){return new F.nI(e,s,i,f,b,j,C.i,a,!1,!1,0,l,k,c,d,q,m,p,o,n,h,r,0,!1,null,null)}, CF:function(a){switch(a){case C.ap:return 1 case C.aJ:case C.bq:case C.aU:case C.an:return 18 default:throw H.a(H.j(u.I))}}, aF3:function(a){switch(a){case C.ap:return 2 case C.aJ:case C.bq:case C.aU:case C.an:return 36 default:throw H.a(H.j(u.I))}}, br:function br(){}, fR:function fR(){}, KP:function KP(){}, QI:function QI(){}, LB:function LB(){}, nH:function nH(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q _.fr=r _.fx=s _.fy=a0 _.go=a1 _.id=a2 _.k1=a3 _.k2=a4 _.k3=a5 _.k4=a6}, QE:function QE(a,b){var _=this _.c=a _.d=b _.b=_.a=$}, LI:function LI(){}, nK:function nK(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q _.fr=r _.fx=s _.fy=a0 _.go=a1 _.id=a2 _.k1=a3 _.k2=a4 _.k3=a5 _.k4=a6}, QM:function QM(a,b){var _=this _.c=a _.d=b _.b=_.a=$}, LG:function LG(){}, k2:function k2(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q _.fr=r _.fx=s _.fy=a0 _.go=a1 _.id=a2 _.k1=a3 _.k2=a4 _.k3=a5 _.k4=a6}, QK:function QK(a,b){var _=this _.c=a _.d=b _.b=_.a=$}, LE:function LE(){}, lu:function lu(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q _.fr=r _.fx=s _.fy=a0 _.go=a1 _.id=a2 _.k1=a3 _.k2=a4 _.k3=a5 _.k4=a6}, QH:function QH(a,b){var _=this _.c=a _.d=b _.b=_.a=$}, LF:function LF(){}, lv:function lv(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q _.fr=r _.fx=s _.fy=a0 _.go=a1 _.id=a2 _.k1=a3 _.k2=a4 _.k3=a5 _.k4=a6}, QJ:function QJ(a,b){var _=this _.c=a _.d=b _.b=_.a=$}, LD:function LD(){}, k0:function k0(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q _.fr=r _.fx=s _.fy=a0 _.go=a1 _.id=a2 _.k1=a3 _.k2=a4 _.k3=a5 _.k4=a6}, QG:function QG(a,b){var _=this _.c=a _.d=b _.b=_.a=$}, LH:function LH(){}, nJ:function nJ(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q _.fr=r _.fx=s _.fy=a0 _.go=a1 _.id=a2 _.k1=a3 _.k2=a4 _.k3=a5 _.k4=a6}, QL:function QL(a,b){var _=this _.c=a _.d=b _.b=_.a=$}, LK:function LK(){}, nM:function nM(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q _.fr=r _.fx=s _.fy=a0 _.go=a1 _.id=a2 _.k1=a3 _.k2=a4 _.k3=a5 _.k4=a6}, QO:function QO(a,b){var _=this _.c=a _.d=b _.b=_.a=$}, iX:function iX(){}, LJ:function LJ(){}, nL:function nL(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7){var _=this _.N=a _.a=b _.b=c _.c=d _.d=e _.e=f _.f=g _.r=h _.x=i _.y=j _.z=k _.Q=l _.ch=m _.cx=n _.cy=o _.db=p _.dx=q _.dy=r _.fr=s _.fx=a0 _.fy=a1 _.go=a2 _.id=a3 _.k1=a4 _.k2=a5 _.k3=a6 _.k4=a7}, QN:function QN(a,b){var _=this _.c=a _.d=b _.b=_.a=$}, LC:function LC(){}, nI:function nI(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q _.fr=r _.fx=s _.fy=a0 _.go=a1 _.id=a2 _.k1=a3 _.k2=a4 _.k3=a5 _.k4=a6}, QF:function QF(a,b){var _=this _.c=a _.d=b _.b=_.a=$}, Ok:function Ok(){}, Ol:function Ol(){}, Om:function Om(){}, On:function On(){}, Oo:function Oo(){}, Op:function Op(){}, Oq:function Oq(){}, Or:function Or(){}, Os:function Os(){}, Ot:function Ot(){}, Ou:function Ou(){}, Ov:function Ov(){}, Ow:function Ow(){}, Ox:function Ox(){}, Oy:function Oy(){}, Oz:function Oz(){}, OA:function OA(){}, OB:function OB(){}, OC:function OC(){}, OD:function OD(){}, OE:function OE(){}, Rw:function Rw(){}, Rx:function Rx(){}, Ry:function Ry(){}, Rz:function Rz(){}, RA:function RA(){}, RB:function RB(){}, RC:function RC(){}, RD:function RD(){}, RE:function RE(){}, RF:function RF(){}, RG:function RG(){}, RH:function RH(){}, LL:function LL(){this.a=!1}, u6:function u6(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=!1}, hJ:function hJ(a,b,c,d){var _=this _.x=_.r=_.f=_.e=_.d=null _.y=a _.a=b _.b=c _.c=d}, aj8:function(a,b,c,d,e){if(a==null&&b==null)return null return new F.AA(a,b,c,d,e.h("AA<0>"))}, axS:function(a,b,c){if(a==null&&b==null)return null a.toString b.toString return Y.bd(a,b,c)}, v9:function v9(a,b,c,d,e,f,g,h,i){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i}, AA:function AA(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.$ti=e}, Lv:function Lv(){}, hS:function hS(){}, kk:function kk(a,b){this.b=a this.a=b}, a_w:function a_w(){}, Qh:function Qh(a,b){this.b=a this.a=b}, zd:function zd(){}, a7o:function a7o(a,b){this.a=a this.b=b}, a7p:function a7p(a){this.a=a}, a7m:function a7m(a,b){this.a=a this.b=b}, a7n:function a7n(a,b){this.a=a this.b=b}, zc:function zc(){}, anu:function(a,b,c){var s,r,q=t.Vx if(q.b(a)&&q.b(b))return F.aj5(a,b,c) q=t.sa if(q.b(a)&&q.b(b))return F.aj4(a,b,c) if(b instanceof F.da&&a instanceof F.e8){c=1-c s=b b=a a=s}if(a instanceof F.da&&b instanceof F.e8){q=b.b if(J.d(q,C.q)&&J.d(b.c,C.q))return new F.da(Y.bd(a.a,b.a,c),Y.bd(a.b,C.q,c),Y.bd(a.c,b.d,c),Y.bd(a.d,C.q,c)) r=a.d if(J.d(r,C.q)&&J.d(a.b,C.q))return new F.e8(Y.bd(a.a,b.a,c),Y.bd(C.q,q,c),Y.bd(C.q,b.c,c),Y.bd(a.c,b.d,c)) if(c<0.5){q=c*2 return new F.da(Y.bd(a.a,b.a,c),Y.bd(a.b,C.q,q),Y.bd(a.c,b.d,c),Y.bd(r,C.q,q))}r=(c-0.5)*2 return new F.e8(Y.bd(a.a,b.a,c),Y.bd(C.q,q,r),Y.bd(C.q,b.c,r),Y.bd(a.c,b.d,c))}throw H.a(U.Xb(H.b([U.vP("BoxBorder.lerp can only interpolate Border and BorderDirectional classes."),U.bE("BoxBorder.lerp() was called with two objects of type "+J.N(a).j(0)+" and "+J.N(b).j(0)+":\n "+H.c(a)+"\n "+H.c(b)+"\nHowever, only Border and BorderDirectional classes are supported by this method."),U.WI("For a more general interpolation method, consider using ShapeBorder.lerp instead.")],t.qe)))}, ans:function(a,b,c,d){var s,r,q=H.aF(),p=q?H.b_():new H.aR(new H.aT()) p.sap(0,c.a) s=d.h6(b) r=c.b if(r===0){p.sdf(0,C.ab) p.shL(0) a.ct(0,s,p)}else a.fW(0,s,s.hz(-r),p)}, anr:function(a,b,c){var s=c.b,r=c.lQ(),q=b.gkJ() a.eB(0,b.gbn(),(q-s)/2,r)}, ant:function(a,b,c){var s=c.b,r=c.lQ() a.ck(0,b.hz(-(s/2)),r)}, ano:function(a){var s=new Y.dL(a,1,C.a_) return new F.da(s,s,s,s)}, aj5:function(a,b,c){var s=a==null if(s&&b==null)return null if(s)return b.bp(0,c) if(b==null)return a.bp(0,1-c) return new F.da(Y.bd(a.a,b.a,c),Y.bd(a.b,b.b,c),Y.bd(a.c,b.c,c),Y.bd(a.d,b.d,c))}, aj4:function(a,b,c){var s,r,q=a==null if(q&&b==null)return null if(q)return b.bp(0,c) if(b==null)return a.bp(0,1-c) q=Y.bd(a.a,b.a,c) s=Y.bd(a.c,b.c,c) r=Y.bd(a.d,b.d,c) return new F.e8(q,Y.bd(a.b,b.b,c),s,r)}, Dz:function Dz(a){this.b=a}, Dw:function Dw(){}, da:function da(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, e8:function e8(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, arP:function(a,b,c){var s=u.I switch(a){case C.o:switch(b){case C.m:return!0 case C.p:return!1 case null:return null default:throw H.a(H.j(s))}case C.n:switch(c){case C.eN:return!0 case C.H_:return!1 case null:return null default:throw H.a(H.j(s))}default:throw H.a(H.j(s))}}, aAu:function(a,b,c,d,e,f,g,h,i){var s=null,r=new F.qM(d,e,f,c,h,i,g,b,P.b6(4,U.K7(s,s,s,s,s,C.ag,C.m,s,1,C.av),!1,t.mi),!0,0,s,s) r.gav() r.gaF() r.dy=!1 r.J(0,a) return r}, Fz:function Fz(a){this.b=a}, dB:function dB(a,b,c){var _=this _.f=_.e=null _.c9$=a _.an$=b _.a=c}, Gu:function Gu(a){this.b=a}, ll:function ll(a){this.b=a}, mF:function mF(a){this.b=a}, qM:function qM(a,b,c,d,e,f,g,h,i,j,k,l,m){var _=this _.F=a _.N=b _.S=c _.au=d _.aB=e _.ax=f _.aU=g _.b7=0 _.ae=h _.bf=null _.aa1$=i _.aa2$=j _.cI$=k _.a7$=l _.d9$=m _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, a2z:function a2z(a){this.a=a}, a2y:function a2y(a){this.a=a}, a2B:function a2B(a){this.a=a}, a2D:function a2D(a){this.a=a}, a2C:function a2C(a){this.a=a}, a2A:function a2A(a){this.a=a}, abp:function abp(a,b,c){this.a=a this.b=b this.c=c}, OV:function OV(){}, OW:function OW(){}, OX:function OX(){}, jM:function jM(){}, a32:function a32(){}, j3:function j3(a,b,c){var _=this _.b=null _.c=!1 _.pR$=a _.c9$=b _.an$=c _.a=null}, qN:function qN(){}, a3_:function a3_(a,b,c){this.a=a this.b=b this.c=c}, a31:function a31(a,b){this.a=a this.b=b}, a30:function a30(){}, Bg:function Bg(){}, P5:function P5(){}, P6:function P6(){}, PF:function PF(){}, PG:function PG(){}, SX:function SX(a,b,c){this.a=a this.b=b this.c=c}, a1h:function(a,b,c,d){return new F.xx(a,c,b,d)}, aoL:function(a){return new F.wX(a)}, hW:function hW(a,b){this.a=a this.b=b}, xx:function xx(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, wX:function wX(a){this.a=a}, aoJ:function(a,b,c,d,e,f){return new F.ln(b.a0(t.w).f.OK(c,!0,!0,f),a,null)}, fv:function(a){var s=a.a0(t.w) return s==null?null:s.f}, ajX:function(a){var s=F.fv(a) s=s==null?null:s.c return s==null?1:s}, H3:function H3(a){this.b=a}, nu:function nu(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o}, ln:function ln(a,b,c){this.f=a this.b=b this.a=c}, GR:function GR(a){this.b=a}, IV:function(a){return new F.qX(a,H.b([],t.ZP),new P.a7(t.V))}, qX:function qX(a,b,c){this.a=a this.d=b this.P$=c}, akm:function(a,b,c,d,e,f,g,h,i){return new F.yi(a,b,e,i,d,h,c,f,g,null)}, j1:function(a){var s=a.a0(t.jF) return s==null?null:s.f}, aAI:function(a){var s=a.kD(t.jF) s=s==null?null:s.gE() t.zr.a(s) if(s==null)return!1 s=s.r return s.b.OC(s.dy.geJ()+s.x,s.k_(),a)}, apy:function(a,b,c){var s,r,q,p,o,n=H.b([],t.mo),m=F.j1(a) for(s=t.jF,r=null;m!=null;){q=m.d q.toString p=a.gD() p.toString n.push(q.a9C(p,b,c,C.ax,C.G,r)) if(r==null)r=a.gD() a=m.c o=a.a0(s) m=o==null?null:o.f}n.length!==0 s=P.dD(null,t.H) return s}, adZ:function adZ(){}, yi:function yi(a,b,c,d,e,f,g,h,i,j){var _=this _.c=a _.d=b _.e=c _.f=d _.x=e _.y=f _.z=g _.Q=h _.ch=i _.a=j}, u1:function u1(a,b,c,d){var _=this _.f=a _.r=b _.b=c _.a=d}, yj:function yj(a,b,c,d,e,f,g,h,i,j,k,l){var _=this _.d=null _.e=a _.f=$ _.x=_.r=null _.y=b _.z=c _.Q=d _.ch=e _.cx=!1 _.dy=_.dx=_.db=_.cy=null _.ae$=f _.bf$=g _.bE$=h _.bx$=i _.aS$=j _.by$=k _.a=null _.b=l _.c=null}, a47:function a47(){}, a48:function a48(a){this.a=a}, a49:function a49(){}, a4a:function a4a(a){this.a=a}, a46:function a46(a,b){this.a=a this.b=b}, Po:function Po(a,b,c,d,e){var _=this _.e=a _.f=b _.r=c _.c=d _.a=e}, P3:function P3(a,b,c,d){var _=this _.G=a _.a8=b _.aJ=c _.br=null _.v$=d _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, IW:function IW(a){this.b=a}, i5:function i5(a,b){this.a=a this.b=b}, IS:function IS(a){this.a=a}, Pa:function Pa(a){var _=this _.e=null _.a=!1 _.c=_.b=null _.P$=a}, Bp:function Bp(){}, Bq:function Bq(){}, z4:function z4(a){this.b=a}, Qj:function Qj(a){this.b=a}, a7b:function a7b(){}, K8:function K8(a,b,c,d,e,f,g,h,i,j,k,l){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=$ _.cx=l _.db=_.cy=null _.dx=!1}, a7e:function a7e(a){this.a=a}, a7f:function a7f(a){this.a=a}, a7d:function a7d(a,b){this.a=a this.b=b}, BM:function BM(a,b,c,d,e,f,g,h,i,j){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.x=f _.y=g _.z=h _.Q=i _.a=j}, BN:function BN(a,b){var _=this _.e=_.d=$ _.cc$=a _.a=null _.b=b _.c=null}, z3:function z3(){}, z2:function z2(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.x=f _.y=g _.z=h _.Q=i _.ch=j _.cx=k _.cy=l _.db=m _.dx=n _.dy=o _.fr=p _.a=q}, BL:function BL(a){var _=this _.e=_.d=null _.f=!1 _.a=_.y=_.x=_.r=null _.b=a _.c=null}, af1:function af1(a){this.a=a}, af2:function af2(a){this.a=a}, af3:function af3(a){this.a=a}, af4:function af4(a){this.a=a}, af5:function af5(a){this.a=a}, af6:function af6(a){this.a=a}, af7:function af7(a){this.a=a}, af8:function af8(a){this.a=a}, jk:function jk(a,b,c,d,e,f,g,h){var _=this _.F=_.bl=_.aY=_.cv=_.bi=_.aA=_.bT=_.aE=_.A=_.v=_.aR=null _.k3=_.k2=!1 _.r1=_.k4=null _.z=a _.ch=b _.cx=c _.db=_.cy=null _.dx=!1 _.dy=null _.d=d _.e=e _.a=f _.b=g _.c=h}, Cq:function Cq(){}, zs:function zs(a,b,c){this.c=a this.d=b this.a=c}, R1:function R1(a){var _=this _.a=_.d=null _.b=a _.c=null}, a7K:function a7K(a,b,c,d){var _=this _.d=a _.e=b _.f=c _.r=d}, a_H:function a_H(){}, ai6:function(){var s=0,r=P.af(t.z),q=1,p,o=[] var $async$ai6=P.a9(function(a,b){if(a===1){p=b s=q}while(true)switch(s){case 0:if($.D==null)N.aq6() $.D.toString q=2 s=5 return P.ak(X.ahP(),$async$ai6) case 5:o.push(4) s=3 break case 2:o=[1] case 3:q=1 P.aG1(new F.ai8(),new F.ai9(),t.P) s=o.pop() break case 4:return P.ad(null,r) case 1:return P.ac(p,r)}}) return P.ae($async$ai6,r)}, ai8:function ai8(){}, ai9:function ai9(){}, GM:function GM(a){this.a=a}, a06:function a06(){}, a07:function a07(){}, a08:function a08(){}, a09:function a09(){}, ut:function ut(a){this.a=a}, KS:function KS(a,b,c,d){var _=this _.d=a _.e=b _.f=c _.a=_.r=null _.b=d _.c=null}, a8i:function a8i(){}, a8j:function a8j(){}, a8l:function a8l(a){this.a=a}, a8k:function a8k(a,b){this.a=a this.b=b}, ai7:function(){var s=0,r=P.af(t.H),q,p var $async$ai7=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:p=$.auv() p.toString q=new B.FF() q.vd() new A.lp("PonnamKarthik/fluttertoast",C.cf,p).rj(q.gaaG()) E.aAP(new V.a4L()) $.asw=p.gaaA() s=2 return P.ak(P.aGl(),$async$ai7) case 2:F.ai6() return P.ad(null,r)}}) return P.ae($async$ai7,r)}},X={ju:function ju(){},ep:function ep(a){this.b=a},ca:function ca(){}, axD:function(a,b,c){var s,r,q,p,o,n,m=null,l=a==null if(l&&b==null)return m s=l?m:a.a r=b==null s=P.K(s,r?m:b.a,c) q=l?m:a.b q=P.aa(q,r?m:b.b,c) p=l?m:a.c p=P.K(p,r?m:b.c,c) o=l?m:a.d o=P.aa(o,r?m:b.d,c) n=l?m:a.e n=Y.hf(n,r?m:b.e,c) if(c<0.5)l=l?m:a.f else l=r?m:b.f return new X.uV(s,q,p,o,n,l)}, uV:function uV(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f}, Lj:function Lj(){}, a4e:function(a,b,c,d,e){if(a==null&&b==null)return null return new X.AD(a,b,c,d,e.h("AD<0>"))}, yl:function yl(a,b,c,d,e,f,g,h,i,j,k){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k}, AD:function AD(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.$ti=e}, Pq:function Pq(){}, apS:function(d5,d6,d7){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,d0,d1,d2,d3,d4=null if(d5==null)s=d4 else s=d5 if(s==null)s=C.a3 r=s===C.a2 if(d7==null)d7=X.aq5() if(d6==null)if(r){q=C.aa.i(0,900) q.toString d6=q}else d6=C.bC p=X.a7g(d6) if(r){q=C.aa.i(0,500) q.toString o=q}else{q=C.aI.i(0,100) q.toString o=q}if(r)n=C.t else{q=C.aI.i(0,700) q.toString n=q}m=p===C.a2 if(r){q=C.dd.i(0,200) q.toString l=q}else{q=C.aI.i(0,600) q.toString l=q}if(r){q=C.dd.i(0,200) q.toString k=q}else{q=C.aI.i(0,500) q.toString k=q}j=X.a7g(k) i=j===C.a2 if(r){q=C.aa.i(0,850) q.toString h=q}else{q=C.aa.i(0,50) q.toString h=q}if(r){q=C.aa.i(0,800) q.toString g=q}else g=C.j if(r){q=C.aa.i(0,800) q.toString f=q}else f=C.j e=r?C.pN:C.aD d=X.a7g(C.bC)===C.a2 q=X.a7g(k) if(r){c=C.dd.i(0,700) c.toString}else{c=C.aI.i(0,700) c.toString}if(r){b=C.aa.i(0,700) b.toString}else{b=C.aI.i(0,200) b.toString}a=C.dc.i(0,700) a.toString a0=d?C.j:C.t q=q===C.a2?C.j:C.t a1=r?C.j:C.t a2=d?C.j:C.t a3=new A.pq(C.bC,n,k,c,f,b,a,a0,q,a1,a2,r?C.t:C.j,s) q=C.aa.i(0,100) q.toString a4=q a5=r?C.T:C.S if(r){q=C.aa.i(0,700) q.toString a6=q}else{q=C.aI.i(0,50) q.toString a6=q}if(r)a7=k else{q=C.aI.i(0,200) q.toString a7=q}if(r){q=C.dd.i(0,400) q.toString a8=q}else{q=C.aI.i(0,300) q.toString a8=q}if(r){q=C.aa.i(0,700) q.toString a9=q}else{q=C.aI.i(0,200) q.toString a9=q}if(r){q=C.aa.i(0,800) q.toString b0=q}else b0=C.j b1=k.k(0,d6)?C.j:k b2=r?C.oV:P.aI(153,0,0,0) q=C.dc.i(0,700) q.toString b3=q b4=m?C.fV:C.k2 b5=i?C.fV:C.k2 b6=r?C.fV:C.r2 b7=U.e4() b8=U.aBu(b7) b9=r?b8.b:b8.a c0=m?b8.b:b8.a c1=i?b8.b:b8.a c2=b9.bU(d4) c3=c0.bU(d4) c4=c1.bU(d4) switch(b7){case C.I:case C.M:case C.z:c5=C.es break case C.D:case C.C:case C.E:c5=C.hl break default:throw H.a(H.j(u.I))}if(r){q=C.aI.i(0,600) q.toString c6=q}else{q=C.aa.i(0,300) q.toString c6=q}c7=r?P.aI(31,255,255,255):P.aI(31,0,0,0) c8=r?P.aI(10,255,255,255):P.aI(10,0,0,0) c9=M.any(!1,c6,a3,d4,c7,36,d4,c8,C.nS,c5,88,d4,d4,d4,C.cc) d0=r?C.oR:C.oQ d1=r?C.jr:C.fz d2=r?C.jr:C.oS if(r){q=C.dd.i(0,200) q.toString}else q=d6 c=c2.y c.toString d3=K.axV(a3.cx,c,q) return X.akv(k,j,b5,c4,C.mY,!1,a9,C.x8,g,C.n7,C.n8,C.n9,C.nT,c6,c9,h,f,C.oJ,C.oK,d3,a3,d4,C.pe,C.pW,b0,C.q5,d0,e,C.q8,C.qs,b3,!1,C.qy,c7,d1,b2,c8,b6,b1,C.of,c5,C.xl,C.xI,C.or,b7,C.Be,d6,p,n,o,b4,c3,C.Bg,h,C.BF,a6,a4,C.t,C.C9,C.Ce,d2,C.oC,C.Cp,C.Cx,C.Cy,a7,a8,C.CG,c2,C.FH,C.FK,l,C.FN,b8,a5,!0,d7)}, akv:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,f0,f1,f2,f3,f4,f5,f6,f7){return new X.hk(f7,c7,c8,d0,c9,p,d8,a,b,d4,i,q,a8,b4,b7,b5,e1,e2,d7,f5,a7,o,f1,n,d6,e6,a3,e7,g,a5,b9,b6,b1,f2,e9,d2,d,c0,b8,d1,c,d9,e4,f3,r,a0,c5,c1,!1,c4,e,d5,j,a1,e0,a6,b3,c2,f4,a2,l,c6,h,a9,m,k,f0,e5,b0,c3,e8,a4,s,d3,e3,!1,!0)}, aBn:function(){return X.apS(C.a3,null,null)}, aBo:function(a,b){return $.ati().bX(0,new X.tB(a,b),new X.a7h(a,b))}, a7g:function(a){var s=0.2126*P.aja((a.gm(a)>>>16&255)/255)+0.7152*P.aja((a.gm(a)>>>8&255)/255)+0.0722*P.aja((a.gm(a)&255)/255)+0.05 if(s*s>0.15)return C.a3 return C.a2}, azq:function(a,b){return new X.Gz(a,b,C.iA,b.a,b.b,b.c,b.d,b.e,b.f)}, aq5:function(){switch(U.e4()){case C.I:case C.z:case C.M:break case C.D:case C.C:case C.E:return C.H0 default:throw H.a(H.j(u.I))}return C.mv}, GB:function GB(a){this.b=a}, hk:function hk(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,f0,f1,f2,f3,f4,f5,f6,f7){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q _.fr=r _.fx=s _.fy=a0 _.go=a1 _.id=a2 _.k1=a3 _.k2=a4 _.k3=a5 _.k4=a6 _.r1=a7 _.r2=a8 _.rx=a9 _.ry=b0 _.x1=b1 _.x2=b2 _.y1=b3 _.y2=b4 _.ac=b5 _.at=b6 _.aN=b7 _.aI=b8 _.b4=b9 _.P=c0 _.bD=c1 _.aR=c2 _.v=c3 _.A=c4 _.aE=c5 _.bT=c6 _.aA=c7 _.bi=c8 _.cv=c9 _.aY=d0 _.bl=d1 _.F=d2 _.N=d3 _.S=d4 _.au=d5 _.aB=d6 _.ax=d7 _.aU=d8 _.b7=d9 _.ae=e0 _.bf=e1 _.bE=e2 _.bx=e3 _.aS=e4 _.cD=e5 _.e2=e6 _.d2=e7 _.c_=e8 _.cl=e9 _.aK=f0 _.cw=f1 _.e3=f2 _.cE=f3 _.d3=f4 _.d8=f5 _.aq=f6 _.fl=f7}, a7h:function a7h(a,b){this.a=a this.b=b}, Gz:function Gz(a,b,c,d,e,f,g,h,i){var _=this _.cy=a _.db=b _.r=c _.a=d _.b=e _.c=f _.d=g _.e=h _.f=i}, tB:function tB(a,b){this.a=a this.b=b}, MJ:function MJ(a,b,c){this.a=a this.b=b this.$ti=c}, t0:function t0(a,b){this.a=a this.b=b}, Qr:function Qr(){}, QX:function QX(){}, eY:function eY(a){this.a=a}, ast:function(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a if(b1.gO(b1))return s=b1.a r=b1.c-s q=b1.b p=b1.d-q o=new P.Q(r,p) n=a8.gay(a8) n.toString m=a8.gai(a8) m.toString l=U.aEx(C.j9,new P.Q(n,m).hH(0,b3),o) k=l.a.a4(0,b3) j=l.b if(b2!==C.bV&&j.k(0,o))b2=C.bV i=H.aF() h=i?H.b_():new H.aR(new H.aT()) h.sni(!1) if(a3!=null)h.sLr(a3) h.suR(a5) h.sve(a9) i=j.a g=(r-i)/2 f=j.b e=(p-f)/2 p=a7?-a0.a:a0.a p=s+(g+p*g) q+=e+a0.b*e d=new P.x(p,q,p+i,q+f) c=b2!==C.bV||a7 if(c)a1.bu(0) q=b2===C.bV if(!q)a1.jV(0,b1) if(a7){b=-(s+r/2) a1.af(0,-b,0) a1.d_(0,-1,1) a1.af(0,b,0)}a=a0.abg(k,new P.x(0,0,n,m)) if(q)a1.i2(a8,a,d,h) else for(s=X.aro(b1,d,b2),s=new P.d8(s.a(),s.$ti.h("d8<1>"));s.q();)a1.i2(a8,a,s.gw(s),h) if(c)a1.bj(0)}, aro:function(a,b,c){return P.d9(function(){var s=a,r=b,q=c var p=0,o=1,n,m,l,k,j,i,h,g,f,e,d,a0,a1,a2 return function $async$aro(a3,a4){if(a3===1){n=a4 p=o}while(true)switch(p){case 0:g=r.c f=r.a e=g-f d=r.d a0=r.b a1=d-a0 a2=q!==C.r7 if(!a2||q===C.r8){m=C.d.dC((s.a-f)/e) l=C.d.ey((s.c-g)/e)}else{m=0 l=0}if(!a2||q===C.r9){k=C.d.dC((s.b-a0)/a1) j=C.d.ey((s.d-d)/a1)}else{k=0 j=0}i=m case 2:if(!(i<=l)){p=4 break}g=i*e,h=k case 5:if(!(h<=j)){p=7 break}p=8 return r.bJ(new P.m(g,h*a1)) case 8:case 6:++h p=5 break case 7:case 3:++i p=2 break case 4:return P.d5() case 1:return P.d6(n)}}},t.YT)}, pX:function pX(a){this.b=a}, EH:function EH(a,b){this.a=a this.b=b}, EI:function EI(a,b){var _=this _.a=a _.b=b _.d=_.c=null}, ef:function ef(a,b){this.b=a this.a=b}, eS:function eS(a,b,c){this.b=a this.c=b this.a=c}, a6K:function(a){var s=0,r=P.af(t.H) var $async$a6K=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)switch(s){case 0:s=2 return P.ak(C.bo.cF(u.F,P.aj(["label",a.a,"primaryColor",a.b],t.N,t.z),t.H),$async$a6K) case 2:return P.ad(null,r)}}) return P.ae($async$a6K,r)}, aBg:function(a){if($.rF!=null){$.rF=a return}if(a.k(0,$.aks))return $.rF=a P.eV(new X.a6L())}, SK:function SK(a,b){this.a=a this.b=b}, lK:function lK(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f}, a6L:function a6L(){}, cY:function(a,b,c,d){var s=b")) o.q() s=J.a3(o.d) if(p===1)return s o.q() r=J.a3(o.d) if(p===2)return s").a3(f).h("uP<1,2>"))}, Ta:function Ta(){}, uP:function uP(a,b,c,d,e,f,g){var _=this _.e=a _.f=b _.r=c _.x=d _.c=e _.a=f _.$ti=g}, hz:function hz(){}, zC:function zC(a,b){var _=this _.a=_.y=_.x=_.r=null _.b=a _.c=null _.$ti=b}, a8U:function a8U(a){this.a=a}, zD:function zD(){}, rA:function rA(a,b,c,d,e,f,g,h){var _=this _.x=a _.a=b _.b=c _.c=d _.d=e _.e=f _.f=g _.r=h}, Hr:function(a,b){var s,r,q,p,o,n=b.Q5(a) b.kl(a) if(n!=null)a=J.uq(a,n.length) s=t.s r=H.b([],s) q=H.b([],s) s=a.length if(s!==0&&b.iW(C.c.W(a,0))){q.push(a[0]) p=1}else{q.push("") p=0}for(o=p;o>")),i).bN(0,new L.ah0(k,h),t.e3)}, Gt:function(a){var s=a.a0(t.Gk) return s==null?null:s.r.f}, lk:function(a,b,c){var s=a.a0(t.Gk) return s==null?null:c.h("0?").a(J.aS(s.r.e,b))}, tU:function tU(a,b){this.a=a this.b=b}, agZ:function agZ(a){this.a=a}, ah_:function ah_(){}, ah0:function ah0(a,b){this.a=a this.b=b}, ey:function ey(){}, R0:function R0(){}, ET:function ET(){}, AH:function AH(a,b,c,d){var _=this _.r=a _.x=b _.b=c _.a=d}, wD:function wD(a,b,c,d){var _=this _.c=a _.d=b _.e=c _.a=d}, Nu:function Nu(a,b,c){var _=this _.d=a _.e=b _.a=_.f=null _.b=c _.c=null}, abu:function abu(a){this.a=a}, abv:function abv(a,b){this.a=a this.b=b}, abt:function abt(a,b,c){this.a=a this.b=b this.c=c}, aod:function(a,b,c){return new L.w5(a,c,b,null)}, aqg:function(a,b,c){var s,r=null,q=t.H7,p=new R.aM(0,0,q),o=new R.aM(0,0,q),n=new L.Ah(C.dH,p,o,0.5,0.5,b,a,new P.a7(t.V)),m=G.cl(r,r,0,r,1,r,c) m.dh(n.gYh()) if(n.b===$)n.b=m else H.e(H.lj("_glowController")) s=S.cy(C.jl,n.giB(),r) s.a.aQ(0,n.gcL()) t.m.a(s) if(n.r===$)n.r=new R.b3(s,p,q.h("b3")) else H.e(H.lj("_glowOpacity")) if(n.y===$)n.y=new R.b3(s,o,q.h("b3")) else H.e(H.lj("_glowSize")) q=c.ut(n.ga65()) if(n.z===$)n.z=q else H.e(H.lj("_displacementTicker")) return n}, w5:function w5(a,b,c,d){var _=this _.e=a _.f=b _.x=c _.a=d}, Ai:function Ai(a,b,c){var _=this _.r=_.f=_.e=_.d=null _.x=a _.by$=b _.a=null _.b=c _.c=null}, tx:function tx(a){this.b=a}, Ah:function Ah(a,b,c,d,e,f,g,h){var _=this _.a=a _.b=$ _.c=null _.e=_.d=0 _.f=b _.r=$ _.x=c _.z=_.y=$ _.Q=null _.ch=d _.cx=e _.cy=0 _.db=f _.dx=g _.P$=h}, aaN:function aaN(a){this.a=a}, N4:function N4(a,b,c,d){var _=this _.b=a _.c=b _.d=c _.a=d}, a0P:function a0P(a,b){this.a=a this.cb$=b}, tS:function tS(){}, Cg:function Cg(){}, Hv:function Hv(a,b,c,d){var _=this _.d=a _.f=b _.r=c _.a=d}, axE:function(a,b,c){var s,r if(a>0){s=a/c if(b0){n=-n l=2*l r=(n-Math.sqrt(j))/l q=(n+Math.sqrt(j))/l p=(c-r*b)/(q-r) return new M.acZ(r,q,b-p,p)}o=Math.sqrt(k-m)/(2*l) s=-(n/2*l) return new M.afo(o,s,b,(c-s*b)/o)}, a6d:function a6d(a,b,c){this.a=a this.b=b this.c=c}, yE:function yE(a){this.b=a}, JJ:function JJ(){}, nU:function nU(a,b,c){this.b=a this.c=b this.a=c}, a9y:function a9y(a,b,c){this.a=a this.b=b this.c=c}, acZ:function acZ(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, afo:function afo(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, akw:function(){var s=new M.oo(new P.aH(new P.a1($.R,t.U),t.gR)) s.JV() return s}, rU:function rU(a,b){var _=this _.a=null _.b=!1 _.c=null _.d=a _.e=null _.f=b _.r=$}, oo:function oo(a){this.a=a this.c=this.b=null}, a7j:function a7j(a){this.a=a}, z8:function z8(a){this.a=a}, anO:function(a,b,c){return new M.EF(b,c,a,null)}, ap:function(a,b,c,d,e,f,g,h,i){var s if(i!=null||f!=null){s=d==null?null:d.Cx(f,i) if(s==null)s=S.hB(f,i)}else s=d return new M.fl(b,a,h,c,e,s,g,null)}, EF:function EF(a,b,c,d){var _=this _.e=a _.f=b _.c=c _.a=d}, fl:function fl(a,b,c,d,e,f,g,h){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.y=f _.z=g _.a=h}, az2:function(a,b){var s,r={} if(J.d(a,b))return new M.DH(C.tm) s=H.b([],t.fJ) r.a=$ a.ip(new M.Zn(b,new M.Zm(r),P.aZ(t.n),s)) return new M.DH(s)}, ev:function ev(){}, Zm:function Zm(a){this.a=a}, Zn:function Zn(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, DH:function DH(a){this.a=a}, Ls:function Ls(a,b,c){this.c=a this.d=b this.a=c}, IT:function IT(){}, le:function le(a){this.a=a}, YJ:function YJ(a,b){this.b=a this.a=b}, a42:function a42(a,b,c,d,e,f,g,h){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h}, VU:function VU(a,b){this.b=a this.a=b}, Dn:function Dn(a){this.b=$ this.a=a}, F6:function F6(a){this.c=this.b=$ this.a=a}, IX:function IX(){}, X0:function X0(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e}, MN:function MN(){}, mL:function mL(){}, azz:function(a,b){return new M.GJ(b,a,null)}, GJ:function GJ(a,b,c){this.c=a this.d=b this.a=c}, arC:function(a){if(t.Jv.b(a))return a throw H.a(P.eq(a,"uri","Value must be a String or a Uri"))}, arS:function(a,b){var s,r,q,p,o,n,m,l for(s=b.length,r=1;r=1;s=q){q=s-1 if(b[q]!=null)break}p=new P.c6("") o=a+"(" p.a=o n=H.Y(b) m=n.h("fL<1>") l=new H.fL(b,0,s,m) l.rz(b,0,s,n.c) m=o+new H.Z(l,new M.ahl(),m.h("Z")).bI(0,", ") p.a=m p.a=m+("): part "+(r-1)+" was null, but part "+r+" was not.") throw H.a(P.bc(p.j(0)))}}, UN:function UN(a,b){this.a=a this.b=b}, UP:function UP(){}, UQ:function UQ(){}, ahl:function ahl(){}, my:function my(a,b){var _=this _.d=a _.e=null _.f=!1 _.a=null _.b=b _.c=!1}, aFp:function(){return""}, CJ:function(a){if(C.c.bv(a,"http"))return a return M.aFp()+a}, asC:function(a){var s=C.U.gfY().c6(a),r=$.aus().c6(s).a return C.jd.gfY().c6(r)}, as_:function(a){return new M.ahv(P.c3("^\\d+$",!0),a)}, ahv:function ahv(a,b){this.a=a this.b=b}, ajz:function(a){var s=0,r=P.af(t.H),q var $async$ajz=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)$async$outer:switch(s){case 0:a.gD().rh(C.m7) switch(K.aA(a).aA){case C.I:case C.M:q=V.JW(C.Ct) s=1 break $async$outer case C.z:case C.D:case C.C:case C.E:q=P.dD(null,t.H) s=1 break $async$outer default:throw H.a(H.j(u.I))}case 1:return P.ad(q,r)}}) return P.ae($async$ajz,r)}, ao4:function(a){a.gD().rh(C.wI) switch(K.aA(a).aA){case C.I:case C.M:return X.Y7() case C.z:case C.D:case C.C:case C.E:return P.dD(null,t.H) default:throw H.a(H.j(u.I))}}, a6M:function(){var s=0,r=P.af(t.H) var $async$a6M=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:s=2 return P.ak(C.bo.cF("SystemNavigator.pop",null,t.H),$async$a6M) case 2:return P.ad(null,r)}}) return P.ae($async$a6M,r)}},T={ aDH:function(a,b,c,d){var s,r,q,p,o=b.length if(o===0)return c s=d-o if(s=0}else p=!1 if(!p)break if(q>s)return-1 if(A.alA(a,c,d,q)&&A.alA(a,c,d,q+o))return q c=q+1}return-1}return T.aDx(a,b,c,d)}, aDx:function(a,b,c,d){var s,r,q,p=new A.iy(a,d,c,0) for(s=b.length;r=p.ih(),r>=0;){q=r+s if(q>d)break if(C.c.dv(a,b,r)&&A.alA(a,c,d,q))return r}return-1}, hh:function hh(a){this.a=a}, JQ:function JQ(a,b,c){var _=this _.a=a _.b=b _.c=c _.d=null}, Ew:function Ew(a,b,c){this.a=a this.b=b this.c=c}, LQ:function LQ(){}, dW:function dW(a){this.b=a}, ajS:function(a,b,c,d){var s=b==null?C.e1:b,r=t.S return new T.f4(s,d,C.b1,P.y(r,t.o),P.be(r),a,c,P.y(r,t.r))}, qf:function qf(a,b){this.a=a this.b=b}, wF:function wF(a,b,c){this.a=a this.b=b this.c=c}, qe:function qe(a,b){this.b=a this.c=b}, f4:function f4(a,b,c,d,e,f,g,h){var _=this _.k2=!1 _.aR=_.at=_.ac=_.y2=_.y1=_.x2=_.x1=_.ry=_.rx=_.r2=_.r1=_.k4=_.k3=null _.z=a _.ch=b _.cx=c _.db=_.cy=null _.dx=!1 _.dy=null _.d=d _.e=e _.a=f _.b=g _.c=h}, a_n:function a_n(a,b){this.a=a this.b=b}, a_m:function a_m(a,b){this.a=a this.b=b}, a_l:function a_l(a,b){this.a=a this.b=b}, ayy:function(a,b,c){var s=a==null if(s&&b==null)return null s=s?null:a.a return new T.vJ(A.aj7(s,b==null?null:b.a,c))}, vJ:function vJ(a){this.a=a}, Mr:function Mr(){}, apf:function(a,b,c,d,e){if(a==null&&b==null)return null return new T.Az(a,b,c,d,e.h("Az<0>"))}, xF:function xF(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f}, Az:function Az(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.$ti=e}, OK:function OK(){}, lR:function lR(a,b){this.a=a this.b=b}, QQ:function QQ(a,b){this.b=a this.a=b}, aBj:function(a,b,c){var s=a==null if(s&&b==null)return null s=s?null:a.a return new T.yW(A.aj7(s,b==null?null:b.a,c))}, yW:function yW(a){this.a=a}, Qf:function Qf(){}, aBs:function(a,b,c){var s,r,q,p,o,n,m,l,k=null,j=a==null if(j&&b==null)return k s=j?k:a.a r=b==null s=P.aa(s,r?k:b.a,c) q=j?k:a.b q=V.hL(q,r?k:b.b,c) p=j?k:a.c p=V.hL(p,r?k:b.c,c) o=j?k:a.d o=P.aa(o,r?k:b.d,c) n=c<0.5 if(n)m=j?k:a.e else m=r?k:b.e if(n)n=j?k:a.f else n=r?k:b.f l=j?k:a.r l=Z.Va(l,r?k:b.r,c) j=j?k:a.x return new T.zf(s,q,p,o,m,n,l,A.bu(j,r?k:b.x,c))}, zf:function zf(a,b,c,d,e,f,g,h){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h}, Qv:function Qv(){}, a4P:function a4P(){}, V7:function V7(){}, ap2:function(){return new T.xv(C.V)}, ao8:function(a){var s,r,q=new E.b8(new Float64Array(16)) q.du() for(s=a.length-1;s>0;--s){r=a[s] if(r!=null)r.la(a[s-1],q)}return q}, Xn:function(a,b,c,d){var s,r if(a==null||b==null)return null if(a===b)return a s=a.a r=b.a if(sr){s=t.Hb c.push(s.a(B.I.prototype.ga9.call(a,a))) return T.Xn(s.a(B.I.prototype.ga9.call(a,a)),b,c,d)}s=t.Hb c.push(s.a(B.I.prototype.ga9.call(a,a))) d.push(s.a(B.I.prototype.ga9.call(b,b))) return T.Xn(s.a(B.I.prototype.ga9.call(a,a)),s.a(B.I.prototype.ga9.call(b,b)),c,d)}, uF:function uF(a,b,c){this.a=a this.b=b this.$ti=c}, D8:function D8(a,b){this.a=a this.$ti=b}, wv:function wv(){}, HE:function HE(a){var _=this _.ch=a _.cx=null _.db=_.cy=!1 _.d=!0 _.x=_.r=_.f=_.e=null _.a=0 _.c=_.b=null}, Hw:function Hw(a,b,c,d,e){var _=this _.ch=a _.cx=b _.cy=c _.db=d _.dx=e _.d=!0 _.x=_.r=_.f=_.e=null _.a=0 _.c=_.b=null}, dP:function dP(){}, jV:function jV(a){var _=this _.id=a _.cx=_.ch=null _.d=!0 _.x=_.r=_.f=_.e=null _.a=0 _.c=_.b=null}, vg:function vg(a){var _=this _.id=null _.k1=a _.cx=_.ch=null _.d=!0 _.x=_.r=_.f=_.e=null _.a=0 _.c=_.b=null}, Eh:function Eh(a){var _=this _.id=null _.k1=a _.cx=_.ch=null _.d=!0 _.x=_.r=_.f=_.e=null _.a=0 _.c=_.b=null}, vf:function vf(a){var _=this _.id=null _.k1=a _.cx=_.ch=null _.d=!0 _.x=_.r=_.f=_.e=null _.a=0 _.c=_.b=null}, rW:function rW(a,b){var _=this _.y1=a _.ac=_.y2=null _.at=!0 _.id=b _.cx=_.ch=null _.d=!0 _.x=_.r=_.f=_.e=null _.a=0 _.c=_.b=null}, xg:function xg(a){var _=this _.id=null _.k1=a _.cx=_.ch=null _.d=!0 _.x=_.r=_.f=_.e=null _.a=0 _.c=_.b=null}, xv:function xv(a){var _=this _.id=null _.k1=a _.cx=_.ch=_.k4=_.k3=_.k2=null _.d=!0 _.x=_.r=_.f=_.e=null _.a=0 _.c=_.b=null}, ww:function ww(){this.b=this.a=null}, nl:function nl(a,b){var _=this _.id=a _.k1=b _.cx=_.ch=_.k2=null _.d=!0 _.x=_.r=_.f=_.e=null _.a=0 _.c=_.b=null}, w0:function w0(a,b,c,d){var _=this _.id=a _.k1=b _.k2=c _.k3=d _.r2=_.r1=_.k4=null _.rx=!0 _.cx=_.ch=null _.d=!0 _.x=_.r=_.f=_.e=null _.a=0 _.c=_.b=null}, uE:function uE(a,b,c,d){var _=this _.id=a _.k1=b _.k2=c _.cx=_.ch=null _.d=!0 _.x=_.r=_.f=_.e=null _.a=0 _.c=_.b=null _.$ti=d}, No:function No(){}, Iw:function Iw(){}, a2W:function a2W(a,b,c){this.a=a this.b=b this.c=c}, In:function In(a,b,c){var _=this _.G=null _.a8=a _.aJ=b _.v$=c _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, I2:function I2(){}, Is:function Is(a,b,c,d,e){var _=this _.bL=a _.bA=b _.G=null _.a8=c _.aJ=d _.v$=e _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, a4Q:function a4Q(){}, I9:function I9(a,b){var _=this _.G=a _.v$=b _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Be:function Be(){}, xW:function xW(){}, Iz:function Iz(a,b,c){var _=this _.aK=null _.cw=a _.e3=b _.v$=c _.e=_.d=_.k3=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, P4:function P4(){}, Em:function(a){var s=0,r=P.af(t.H) var $async$Em=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)switch(s){case 0:s=2 return P.ak(C.bo.cF("Clipboard.setData",P.aj(["text",a.a],t.N,t.z),t.H),$async$Em) case 2:return P.ad(null,r)}}) return P.ae($async$Em,r)}, Up:function(a){var s=0,r=P.af(t.Vz),q,p var $async$Up=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)switch(s){case 0:s=3 return P.ak(C.bo.cF("Clipboard.getData",a,t.b),$async$Up) case 3:p=c if(p==null){q=null s=1 break}q=new T.pp(H.ud(J.aS(p,"text"))) s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$Up,r)}, pp:function pp(a){this.a=a}, anQ:function(a,b){return new T.h2(b,a,null)}, dQ:function(a){var s=a.a0(t.I) return s==null?null:s.f}, a0E:function(a,b,c){return new T.H1(c,!1,b,null)}, l3:function(a,b,c,d,e){return new T.vu(d,b,e,a,c)}, ay1:function(a,b,c){return new T.Ee(c,b,a,null)}, Kh:function(a,b,c,d){return new T.zh(c,a,d,b,null)}, apU:function(a,b){return new T.zh(E.aoE(a),C.ar,!0,b,null)}, ay9:function(a,b,c,d){return new T.Eq(b,!1,c,a,null)}, aoa:function(a,b,c){return new T.FK(c,b,a,null)}, kZ:function(a,b,c){return new T.v8(C.ar,c,b,a,null)}, a_c:function(a,b){return new T.wx(b,a,new D.eQ(b,t.xc))}, r9:function(a,b,c){return new T.o0(c,b,a,null)}, azk:function(a,b,c){return new T.Gm(c,b,a,null)}, ase:function(a,b,c){var s,r switch(b){case C.o:s=a.a0(t.I) s.toString r=G.alL(s.f) return r case C.n:return C.y default:throw H.a(H.j(u.I))}}, yF:function(a,b,c,d,e){return new T.rz(a,e,c,b,d)}, a1u:function(a,b,c,d,e,f,g,h){return new T.nN(e,g,f,a,h,c,b,d)}, eF:function(a,b,c,d){return new T.fG(C.o,c,d,b,null,C.eN,null,a,null)}, d2:function(a,b,c,d){return new T.Ep(C.n,c,d,b,null,C.eN,null,a,null)}, WL:function(a,b){return new T.Fl(b,C.fP,a,null)}, apr:function(a,b,c,d,e,f,g,h,i,j,k){return new T.ID(f,g,h,d,c,j,b,a,e,k,i,T.aAz(f),null)}, aAz:function(a){var s,r={} r.a=0 s=H.b([],t.J) a.be(new T.a3n(r,s)) return s}, a_j:function(a,b,c,d,e,f){return new T.Gr(d,f,c,e,a,b,null)}, cu:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,a0,a1,a2,a3,a4,a5,a6,a7,a8){var s=null return new T.nV(new A.J6(e,s,a8,a4,a,s,i,s,s,s,s,g,h,s,s,s,s,a3,n,j,l,m,d,k,s,s,s,s,s,a7,a5,a6,a2,a0,s,s,s,s,s,s,o,p,a1,s,s,s,s,q,s,r,s),c,f,!1,b,s)}, axC:function(a){return new T.Ds(a,null)}, h2:function h2(a,b,c){this.f=a this.b=b this.a=c}, H1:function H1(a,b,c,d){var _=this _.e=a _.f=b _.c=c _.a=d}, vu:function vu(a,b,c,d,e){var _=this _.e=a _.f=b _.r=c _.c=d _.a=e}, Ei:function Ei(a,b){this.c=a this.a=b}, Ee:function Ee(a,b,c,d){var _=this _.e=a _.f=b _.c=c _.a=d}, HB:function HB(a,b,c,d,e,f,g,h){var _=this _.e=a _.f=b _.r=c _.x=d _.y=e _.z=f _.c=g _.a=h}, HC:function HC(a,b,c,d,e,f,g){var _=this _.e=a _.f=b _.r=c _.x=d _.y=e _.c=f _.a=g}, zh:function zh(a,b,c,d,e){var _=this _.e=a _.r=b _.x=c _.c=d _.a=e}, pr:function pr(a,b,c){this.e=a this.c=b this.a=c}, Eq:function Eq(a,b,c,d,e){var _=this _.e=a _.f=b _.y=c _.c=d _.a=e}, FK:function FK(a,b,c,d){var _=this _.e=a _.f=b _.c=c _.a=d}, ee:function ee(a,b,c){this.e=a this.c=b this.a=c}, mo:function mo(a,b,c,d,e){var _=this _.e=a _.f=b _.r=c _.c=d _.a=e}, v8:function v8(a,b,c,d,e){var _=this _.e=a _.f=b _.r=c _.c=d _.a=e}, l4:function l4(a,b,c){this.e=a this.c=b this.a=c}, wx:function wx(a,b,c){this.f=a this.b=b this.a=c}, mG:function mG(a,b,c){this.e=a this.c=b this.a=c}, o0:function o0(a,b,c,d){var _=this _.e=a _.f=b _.c=c _.a=d}, hF:function hF(a,b,c){this.e=a this.c=b this.a=c}, Gm:function Gm(a,b,c,d){var _=this _.e=a _.f=b _.c=c _.a=d}, qr:function qr(a,b,c){this.e=a this.c=b this.a=c}, O9:function O9(a,b,c,d){var _=this _.dx=_.y2=null _.dy=!1 _.a=_.fr=null _.b=a _.c=null _.d=$ _.e=b _.f=null _.r=c _.x=d _.z=_.y=null _.Q=!1 _.ch=!0 _.db=_.cy=_.cx=!1}, Jt:function Jt(a,b,c){this.e=a this.c=b this.a=c}, rz:function rz(a,b,c,d,e){var _=this _.e=a _.f=b _.r=c _.c=d _.a=e}, G1:function G1(a,b,c,d,e,f){var _=this _.ch=a _.e=b _.f=c _.r=d _.c=e _.a=f}, nN:function nN(a,b,c,d,e,f,g,h){var _=this _.f=a _.r=b _.x=c _.y=d _.z=e _.Q=f _.b=g _.a=h}, HM:function HM(a,b,c,d,e,f){var _=this _.c=a _.d=b _.f=c _.r=d _.y=e _.a=f}, vS:function vS(){}, fG:function fG(a,b,c,d,e,f,g,h,i){var _=this _.e=a _.f=b _.r=c _.x=d _.y=e _.z=f _.Q=g _.c=h _.a=i}, Ep:function Ep(a,b,c,d,e,f,g,h,i){var _=this _.e=a _.f=b _.r=c _.x=d _.y=e _.z=f _.Q=g _.c=h _.a=i}, FA:function FA(){}, Fl:function Fl(a,b,c,d){var _=this _.f=a _.r=b _.b=c _.a=d}, ID:function ID(a,b,c,d,e,f,g,h,i,j,k,l,m){var _=this _.e=a _.f=b _.r=c _.x=d _.y=e _.z=f _.Q=g _.ch=h _.cx=i _.cy=j _.db=k _.c=l _.a=m}, a3n:function a3n(a,b){this.a=a this.b=b}, HV:function HV(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){var _=this _.d=a _.e=b _.f=c _.r=d _.x=e _.y=f _.z=g _.Q=h _.ch=i _.cx=j _.cy=k _.db=l _.dx=m _.dy=n _.fr=o _.a=p}, Gr:function Gr(a,b,c,d,e,f,g){var _=this _.e=a _.r=b _.y=c _.z=d _.Q=e _.c=f _.a=g}, hY:function hY(a,b,c,d,e,f,g){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.x=f _.a=g}, AT:function AT(a){this.a=null this.b=a this.c=null}, OM:function OM(a,b,c){this.e=a this.c=b this.a=c}, he:function he(a,b){this.c=a this.a=b}, hP:function hP(a,b,c,d){var _=this _.e=a _.f=b _.c=c _.a=d}, D0:function D0(a,b,c){this.e=a this.c=b this.a=c}, nV:function nV(a,b,c,d,e,f){var _=this _.e=a _.f=b _.r=c _.x=d _.c=e _.a=f}, GE:function GE(a,b){this.c=a this.a=b}, Ds:function Ds(a,b){this.c=a this.a=b}, mT:function mT(a,b,c){this.e=a this.c=b this.a=c}, G0:function G0(a,b,c){this.e=a this.c=b this.a=c}, q8:function q8(a,b){this.c=a this.a=b}, kT:function kT(a,b){this.c=a this.a=b}, vh:function vh(a,b,c){this.e=a this.c=b this.a=c}, OR:function OR(a,b,c){var _=this _.bS=a _.G=b _.v$=c _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, aog:function(a,b,c){var s=P.y(t.K,t.U3) a.be(new T.Yj(c,new T.Yi(s,b))) return s}, aqh:function(a,b){var s,r=a.gD() r.toString t.x.a(r) s=r.de(0,b==null?null:b.gD()) r=r.r2 return T.ns(s,new P.x(0,0,0+r.a,0+r.b))}, pU:function pU(a){this.b=a}, n6:function n6(a,b,c){this.c=a this.e=b this.a=c}, Yi:function Yi(a,b){this.a=a this.b=b}, Yj:function Yj(a,b){this.a=a this.b=b}, ty:function ty(a,b){var _=this _.d=a _.e=null _.f=!0 _.a=null _.b=b _.c=null}, aaV:function aaV(a,b){this.a=a this.b=b}, aaU:function aaU(){}, aaR:function aaR(a,b,c,d,e,f,g,h,i,j,k){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.cy=_.cx=_.ch=$}, ku:function ku(a,b){var _=this _.a=a _.b=$ _.c=null _.d=b _.f=_.e=$ _.r=null _.y=_.x=!1}, aaS:function aaS(a){this.a=a}, aaT:function aaT(a,b){this.a=a this.b=b}, w8:function w8(a,b){this.b=a this.c=b this.a=null}, Yh:function Yh(){}, Yg:function Yg(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f}, ld:function(a,b,c){var s,r=null,q=a==null,p=q?r:a.a,o=b==null p=P.K(p,o?r:b.a,c) s=q?r:a.ge6(a) s=P.aa(s,o?r:b.ge6(b),c) q=q?r:a.c return new T.eu(p,s,P.aa(q,o?r:b.c,c))}, eu:function eu(a,b,c){this.a=a this.b=b this.c=c}, N9:function N9(){}, wZ:function(a,b){var s=a.a0(t.Fe),r=s==null?null:s.x return b.h("dE<0>?").a(r)}, qs:function qs(){}, d4:function d4(){}, a7t:function a7t(a,b,c){this.a=a this.b=b this.c=c}, a7u:function a7u(a,b,c){this.a=a this.b=b this.c=c}, a7v:function a7v(a,b,c){this.a=a this.b=b this.c=c}, a7s:function a7s(a,b){this.a=a this.b=b}, Gs:function Gs(){}, Mc:function Mc(a,b){this.c=a this.a=b}, AS:function AS(a,b,c,d,e){var _=this _.f=a _.r=b _.x=c _.b=d _.a=e}, tO:function tO(a,b,c){this.c=a this.a=b this.$ti=c}, kv:function kv(a,b,c,d){var _=this _.d=null _.e=$ _.f=a _.r=b _.a=null _.b=c _.c=null _.$ti=d}, acH:function acH(a){this.a=a}, acL:function acL(a){this.a=a}, acM:function acM(a){this.a=a}, acK:function acK(a){this.a=a}, acI:function acI(a){this.a=a}, acJ:function acJ(a){this.a=a}, dE:function dE(){}, a_T:function a_T(a,b){this.a=a this.b=b}, a_S:function a_S(){}, xA:function xA(){}, tN:function tN(){}, T4:function T4(){}, aon:function(){var s=H.cr($.R.i(0,C.Cq)) return s==null?$.aom:s}, aoo:function(a,b,c){var s,r,q if(a==null){if(T.aon()==null)$.aom="en_US" return T.aoo(T.aon(),b,c)}if(b.$1(a))return a for(s=[T.az7(a),T.az8(a),"fallback"],r=0;r<3;++r){q=s[r] if(b.$1(q))return q}return c.$1(a)}, az6:function(a){throw H.a(P.bc('Invalid locale "'+a+'"'))}, az8:function(a){if(a.length<2)return a return C.c.V(a,0,2).toLowerCase()}, az7:function(a){var s,r if(a==="C")return"en_ISO" if(a.length<5)return a s=a[2] if(s!=="-"&&s!=="_")return a r=C.c.bw(a,3) if(r.length<=3)r=r.toUpperCase() return a[0]+a[1]+"_"+r}, azG:function(a,b){var s,r=T.aoo(b,T.aFG(),T.aFF()),q=new T.a0x(r,new P.c6("")) r=q.k1=$.am7().i(0,r) s=C.c.W(r.e,0) q.r2=s q.rx=s-48 q.a=r.r s=r.dx q.k2=s q.a54(new T.a0y(a).$1(r)) return q}, azH:function(a){if(a==null)return!1 return $.am7().am(0,a)}, a0x:function a0x(a,b){var _=this _.a="-" _.d=_.c=_.b="" _.f=_.e=3 _.z=_.y=_.x=_.r=!1 _.ch=40 _.cx=1 _.cy=3 _.dx=_.db=0 _.fx=1 _.fy=0 _.go=null _.id=a _.k4=_.k3=_.k2=_.k1=null _.r1=b _.rx=_.r2=0}, a0y:function a0y(a){this.a=a}, acY:function acY(a,b,c){var _=this _.a=a _.b=b _.c=c _.e=!1 _.f=-1 _.y=_.x=_.r=0 _.z=-1}, aeC:function aeC(a){this.a=a}, PU:function PU(a){this.a=a this.b=0 this.c=null}, aFi:function(a){var s,r=J.ag(a) if(r.i(a,"admin")==null)r.n(a,"admin",P.y(t.X,t.z)) C.b.K(H.b(["compresses","caches","upstreams","locations","servers"],t.i),new T.ahA(a)) s=r.i(a,"locations") if(s!=null)J.fi(s,new T.ahB()) s=r.i(a,"upstreams") if(s!=null)J.fi(s,new T.ahC()) r=r.i(a,"servers") if(r!=null)J.fi(r,new T.ahD())}, axr:function(a){var s if(a==null)return null s=J.ag(a) return new T.us(s.i(a,"user"),s.i(a,"password"),s.i(a,"prefix"))}, aya:function(a){var s if(a==null)return null s=J.ag(a) return new T.dO(s.i(a,"name"),P.qb(s.i(a,"levels"),t.X,t.Em),s.i(a,"remark"))}, axQ:function(a){var s if(a==null)return null s=J.ag(a) return new T.dN(s.i(a,"name"),s.i(a,"size"),s.i(a,"hitForPass"),s.i(a,"store"),s.i(a,"remark"))}, aBz:function(a){var s if(a==null)return null s=J.ag(a) return new T.eP(s.i(a,"addr"),s.i(a,"backup"),s.i(a,"healthy"))}, aBy:function(a){var s,r,q,p,o,n,m if(a==null)return null s=J.ag(a) r=s.i(a,"name") q=s.i(a,"healthCheck") p=s.i(a,"policy") o=s.i(a,"enableH2C") n=s.i(a,"acceptEncoding") m=s.i(a,"servers") m=m==null?null:J.uo(m,new T.a7B()) return new T.dZ(r,q,p,o,n,P.bk(m,!0,t.hY),s.i(a,"remark"))}, azn:function(a){var s,r if(a==null)return null s=J.ag(a) r=t.X return new T.dS(s.i(a,"name"),s.i(a,"upstream"),P.bk(s.i(a,"prefixes"),!0,r),P.bk(s.i(a,"hosts"),!0,r),P.bk(s.i(a,"rewrites"),!0,r),P.bk(s.i(a,"queryStrings"),!0,r),P.bk(s.i(a,"respHeaders"),!0,r),P.bk(s.i(a,"reqHeaders"),!0,r),s.i(a,"proxyTimeout"),s.i(a,"remark"))}, aAK:function(a){var s if(a==null)return null s=J.ag(a) return new T.eG(s.i(a,"logFormat"),s.i(a,"addr"),P.bk(s.i(a,"locations"),!0,t.X),s.i(a,"cache"),s.i(a,"compress"),s.i(a,"compressMinLength"),s.i(a,"compressContentTypeFilter"),s.i(a,"remark"))}, anG:function(a){var s,r,q,p,o,n,m,l=null if(a==null)return l T.aFi(a) s=J.ag(a) r=s.i(a,"yaml") q=T.axr(s.i(a,"admin")) p=s.i(a,"compresses") p=p==null?l:J.uo(p,new T.Uv()) p=P.bk(p,!0,t.eR) o=s.i(a,"caches") o=o==null?l:J.uo(o,new T.Uw()) o=P.bk(o,!0,t.JF) n=s.i(a,"upstreams") n=n==null?l:J.uo(n,new T.Ux()) n=P.bk(n,!0,t.OB) m=s.i(a,"locations") m=m==null?l:J.uo(m,new T.Uy()) m=P.bk(m,!0,t.UZ) s=s.i(a,"servers") s=s==null?l:J.uo(s,new T.Uz()) return new T.pt(r,q,p,o,n,m,P.bk(s,!0,t.AQ))}, ahA:function ahA(a){this.a=a}, ahB:function ahB(){}, ahz:function ahz(a){this.a=a}, ahC:function ahC(){}, ahD:function ahD(){}, us:function us(a,b,c){this.a=a this.b=b this.c=c}, dO:function dO(a,b,c){this.a=a this.b=b this.c=c}, dN:function dN(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e}, eP:function eP(a,b,c){this.a=a this.b=b this.c=c}, dZ:function dZ(a,b,c,d,e,f,g){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g}, a7C:function a7C(){}, a7B:function a7B(){}, dS:function dS(a,b,c,d,e,f,g,h,i,j){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j}, eG:function eG(a,b,c,d,e,f,g,h){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h}, pt:function pt(a,b,c,d,e,f,g){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g}, UG:function UG(a,b){this.a=a this.b=b}, UH:function UH(a,b){this.a=a this.b=b}, UI:function UI(a,b){this.a=a this.b=b}, UJ:function UJ(a,b){this.a=a this.b=b}, UF:function UF(a,b){this.a=a this.b=b}, UA:function UA(){}, UB:function UB(){}, UC:function UC(){}, UD:function UD(){}, UE:function UE(){}, Uv:function Uv(){}, Uw:function Uw(){}, Ux:function Ux(){}, Uy:function Uy(){}, Uz:function Uz(){}, a3A:function a3A(a){this.a=a}, a3B:function a3B(a,b,c){this.a=a this.b=b this.c=c}, a3C:function a3C(){}, a3D:function a3D(){}, KM:function(a,b,c,d,e,f,g){return new T.KL(d,f,g,c,b,e,a,null)}, KL:function KL(a,b,c,d,e,f,g,h){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.x=f _.y=g _.a=h}, a85:function a85(a,b){this.a=a this.b=b}, a84:function a84(a,b){this.a=a this.b=b}, ayV:function(a,b,c){return null}, ajV:function(a){var s=a.a if(s[0]===1&&s[1]===0&&s[2]===0&&s[3]===0&&s[4]===0&&s[5]===1&&s[6]===0&&s[7]===0&&s[8]===0&&s[9]===0&&s[10]===1&&s[11]===0&&s[14]===0&&s[15]===1)return new P.m(s[12],s[13]) return null}, azw:function(a,b){var s,r,q if(a==b)return!0 if(a==null){b.toString return T.a_y(b)}if(b==null)return T.a_y(a) s=a.a r=s[0] q=b.a return r===q[0]&&s[1]===q[1]&&s[2]===q[2]&&s[3]===q[3]&&s[4]===q[4]&&s[5]===q[5]&&s[6]===q[6]&&s[7]===q[7]&&s[8]===q[8]&&s[9]===q[9]&&s[10]===q[10]&&s[11]===q[11]&&s[12]===q[12]&&s[13]===q[13]&&s[14]===q[14]&&s[15]===q[15]}, a_y:function(a){var s=a.a return s[0]===1&&s[1]===0&&s[2]===0&&s[3]===0&&s[4]===0&&s[5]===1&&s[6]===0&&s[7]===0&&s[8]===0&&s[9]===0&&s[10]===1&&s[11]===0&&s[12]===0&&s[13]===0&&s[14]===0&&s[15]===1}, fu:function(a,b){var s=a.a,r=b.a,q=b.b,p=s[0]*r+s[4]*q+s[12],o=s[1]*r+s[5]*q+s[13],n=s[3]*r+s[7]*q+s[15] if(n===1)return new P.m(p,o) else return new P.m(p/n,o/n)}, eA:function(){var s=$.aoF if(s===$){s=new Float64Array(4) $.aoF=s}return s}, a_x:function(a,b,c,d,e){var s,r=e?1:1/(a[3]*b+a[7]*c+a[15]),q=(a[0]*b+a[4]*c+a[12])*r,p=(a[1]*b+a[5]*c+a[13])*r if(d){s=T.eA() T.eA()[2]=q s[0]=q s=T.eA() T.eA()[3]=p s[1]=p}else{if(qT.eA()[2])T.eA()[2]=q if(p>T.eA()[3])T.eA()[3]=p}}, ns:function(b1,b2){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4=b1.a,a5=b2.a,a6=b2.b,a7=b2.c,a8=a7-a5,a9=b2.d,b0=a9-a6 if(!isFinite(a8)||!isFinite(b0)){s=a4[3]===0&&a4[7]===0&&a4[15]===1 T.a_x(a4,a5,a6,!0,s) T.a_x(a4,a7,a6,!1,s) T.a_x(a4,a5,a9,!1,s) T.a_x(a4,a7,a9,!1,s) return new P.x(T.eA()[0],T.eA()[1],T.eA()[2],T.eA()[3])}a7=a4[0] r=a7*a8 a9=a4[4] q=a9*b0 p=a7*a5+a9*a6+a4[12] a9=a4[1] o=a9*a8 a7=a4[5] n=a7*b0 m=a9*a5+a7*a6+a4[13] a7=a4[3] if(a7===0&&a4[7]===0&&a4[15]===1){l=p+r if(r<0)k=p else{k=l l=p}if(q<0)l+=q else k+=q j=m+o if(o<0)i=m else{i=j j=m}if(n<0)j+=n else i+=n return new P.x(l,j,k,i)}else{a9=a4[7] h=a9*b0 g=a7*a5+a9*a6+a4[15] f=p/g e=m/g a9=p+r a7=g+a7*a8 d=a9/a7 c=m+o b=c/a7 a=g+h a0=(p+q)/a a1=(m+n)/a a7+=h a2=(a9+q)/a7 a3=(c+n)/a7 return new P.x(T.aoH(f,d,a0,a2),T.aoH(e,b,a1,a3),T.aoG(f,d,a0,a2),T.aoG(e,b,a1,a3))}}, aoH:function(a,b,c,d){var s=ab?a:b,r=c>d?c:d return s>r?s:r}, aoI:function(a,b){var s if(T.a_y(a))return b s=new E.b8(new Float64Array(16)) s.bC(a) s.jZ(s) return T.ns(s,b)}, azv:function(a){var s,r=new E.b8(new Float64Array(16)) r.du() s=new E.ic(new Float64Array(4)) s.rl(0,0,0,a.a) r.wl(0,s) s=new E.ic(new Float64Array(4)) s.rl(0,0,0,a.b) r.wl(1,s) return r}},A={ ai5:function(a,b,c,d){if(d===208)return A.aFO(a,b,c) if(d===224){if(A.aFN(a,b,c)>=0)return 145 return 64}throw H.a(P.a4("Unexpected state: "+C.f.j9(d,16)))}, aFO:function(a,b,c){var s,r,q,p,o,n for(s=J.cj(a),r=c,q=0;p=r-2,p>=b;r=p){o=s.al(a,r-1) if((o&64512)!==56320)break n=C.c.al(a,p) if((n&64512)!==55296)break if(S.ui(n,o)!==6)break q^=1}if(q===0)return 193 else return 144}, aFN:function(a,b,c){var s,r,q,p,o,n for(s=J.cj(a),r=c;r>b;){--r q=s.al(a,r) if((q&64512)!==56320)p=S.CK(q) else{if(r>b){--r o=C.c.al(a,r) n=(o&64512)===55296}else{o=0 n=!1}if(n)p=S.ui(o,q) else break}if(p===7)return r if(p!==4)break}return-1}, alA:function(a,b,c,d){var s,r,q,p,o,n,m,l,k,j=u.q if(b=c)return!0 n=C.c.al(a,o) if((n&64512)!==56320)return!0 p=S.ui(s,n)}else return(q&64512)!==55296 if((q&64512)!==56320){m=S.CK(q) d=r}else{d-=2 if(b<=d){l=C.c.al(a,d) if((l&64512)!==55296)return!0 m=S.ui(l,q)}else return!0}k=C.c.W(j,C.c.W(j,p|176)&240|m) return((k>=208?A.ai5(a,b,d,k):k)&1)===0}return b!==c}, iy:function iy(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, SY:function SY(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, Y8:function Y8(){}, V2:function V2(){}, axM:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){return new A.DC(q,c,g,j,l,d,k,h,f,n,m,i,r,p,b,e,a,o)}, aj7:function(a2,a3,a4){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0=null,a1=a2==null if(a1&&a3==null)return a0 s=a1?a0:a2.a r=a3==null q=r?a0:a3.a q=A.kV(s,q,a4,A.aGd(),t.p8) s=a1?a0:a2.b p=r?a0:a3.b o=t.MH p=A.kV(s,p,a4,P.en(),o) s=a1?a0:a2.c s=A.kV(s,r?a0:a3.c,a4,P.en(),o) n=a1?a0:a2.d n=A.kV(n,r?a0:a3.d,a4,P.en(),o) m=a1?a0:a2.e o=A.kV(m,r?a0:a3.e,a4,P.en(),o) m=a1?a0:a2.f l=r?a0:a3.f l=A.kV(m,l,a4,P.asJ(),t.PM) m=a1?a0:a2.r k=r?a0:a3.r k=A.kV(m,k,a4,V.aFd(),t.pc) m=a1?a0:a2.x j=r?a0:a3.x i=t.tW j=A.kV(m,j,a4,P.asI(),i) m=a1?a0:a2.y m=A.kV(m,r?a0:a3.y,a4,P.asI(),i) i=a1?a0:a2.z i=A.axO(i,r?a0:a3.z,a4) h=a1?a0:a2.Q h=A.axN(h,r?a0:a3.Q,a4) g=a4<0.5 if(g)f=a1?a0:a2.ch else f=r?a0:a3.ch if(g)e=a1?a0:a2.cx else e=r?a0:a3.cx if(g)d=a1?a0:a2.cy else d=r?a0:a3.cy if(g)c=a1?a0:a2.db else c=r?a0:a3.db if(g)b=a1?a0:a2.dx else b=r?a0:a3.dx a=a1?a0:a2.dy a=K.axt(a,r?a0:a3.dy,a4) if(g)a1=a1?a0:a2.fr else a1=r?a0:a3.fr return A.axM(a,c,p,l,b,m,s,j,f,n,k,o,h,i,a1,d,q,e)}, kV:function(a,b,c,d,e){if(a==null&&b==null)return null return new A.AC(a,b,c,d,e.h("AC<0>"))}, axO:function(a,b,c){if(a==null&&b==null)return null return new A.Ns(a,b,c)}, axN:function(a,b,c){if(a==null&&b==null)return null return new A.Nr(a,b,c)}, DC:function DC(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q _.fr=r}, AC:function AC(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.$ti=e}, Ns:function Ns(a,b,c){this.a=a this.b=b this.c=c}, Nr:function Nr(a,b,c){this.a=a this.b=b this.c=c}, Lm:function Lm(){}, v6:function v6(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f}, Lt:function Lt(){}, pq:function pq(a,b,c,d,e,f,g,h,i,j,k,l,m){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m}, Ly:function Ly(){}, aq7:function(a,b,c,d,e){return new A.zx(c,d,a,b,new R.by(H.b([],t.e),t.l),new R.by(H.b([],t.u),t.wi),0,e.h("zx<0>"))}, X3:function X3(){}, a6f:function a6f(){}, WN:function WN(){}, WM:function WM(){}, aai:function aai(){}, X2:function X2(){}, adY:function adY(){}, zx:function zx(a,b,c,d,e,f,g,h){var _=this _.x=a _.y=b _.a=c _.b=d _.d=_.c=null _.bL$=e _.bq$=f _.bS$=g _.$ti=h}, R8:function R8(){}, R9:function R9(){}, za:function za(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q}, Qs:function Qs(){}, hj:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4){return new A.w(q,c,b,i,j,a1,l,n,m,s,a4,a3,p,r,a0,o,a,e,f,g,h,d,a2,k)}, bu:function(a6,a7,a8){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4=null,a5=a6==null if(a5&&a7==null)return a4 if(a5){a5=a7.a s=P.K(a4,a7.b,a8) r=P.K(a4,a7.c,a8) q=a8<0.5 p=q?a4:a7.d o=q?a4:a7.geE() n=q?a4:a7.r m=P.ajD(a4,a7.x,a8) l=q?a4:a7.y k=q?a4:a7.z j=q?a4:a7.Q i=q?a4:a7.ch h=q?a4:a7.cx g=q?a4:a7.cy f=q?a4:a7.db e=q?a4:a7.dx d=q?a4:a7.dy c=q?a4:a7.fr b=q?a4:a7.k1 a=q?a4:a7.k2 a0=P.K(a4,a7.fx,a8) a1=q?a4:a7.fy return A.hj(d,r,s,a4,c,a0,a1,q?a4:a7.go,p,o,a,n,l,m,e,h,a5,g,k,f,a4,b,i,j)}if(a7==null){a5=a6.a s=P.K(a6.b,a4,a8) r=P.K(a4,a6.c,a8) q=a8<0.5 p=q?a6.d:a4 o=q?a6.geE():a4 n=q?a6.r:a4 m=P.ajD(a6.x,a4,a8) l=q?a6.y:a4 k=q?a6.z:a4 j=q?a6.Q:a4 i=q?a6.ch:a4 h=q?a6.cx:a4 g=q?a6.cy:a4 f=q?a6.db:a4 e=q?a6.dx:a4 d=q?a6.dy:a4 c=q?a6.k1:a4 b=q?a6.k2:a4 a=q?a6.fr:a4 a0=P.K(a6.fx,a4,a8) a1=q?a6.fy:a4 return A.hj(d,r,s,a4,a,a0,a1,q?a6.go:a4,p,o,b,n,l,m,e,h,a5,g,k,f,a4,c,i,j)}a5=a7.a s=a6.dx r=s==null q=r&&a7.dx==null?P.K(a6.b,a7.b,a8):a4 p=a6.dy o=p==null n=o&&a7.dy==null?P.K(a6.c,a7.c,a8):a4 m=a8<0.5 l=m?a6.d:a7.d k=m?a6.geE():a7.geE() j=a6.r i=j==null?a7.r:j h=a7.r j=P.aa(i,h==null?j:h,a8) i=P.ajD(a6.x,a7.x,a8) h=m?a6.y:a7.y g=a6.z f=g==null?a7.z:g e=a7.z g=P.aa(f,e==null?g:e,a8) f=a6.Q e=f==null?a7.Q:f d=a7.Q f=P.aa(e,d==null?f:d,a8) e=m?a6.ch:a7.ch d=a6.cx c=d==null?a7.cx:d b=a7.cx d=P.aa(c,b==null?d:b,a8) c=m?a6.cy:a7.cy b=m?a6.db:a7.db if(!r||a7.dx!=null)if(m){if(r){s=H.aF() s=s?H.b_():new H.aR(new H.aT()) r=a6.b r.toString s.sap(0,r)}}else{s=a7.dx if(s==null){s=H.aF() s=s?H.b_():new H.aR(new H.aT()) r=a7.b r.toString s.sap(0,r)}}else s=a4 if(!o||a7.dy!=null)if(m)if(o){r=H.aF() r=r?H.b_():new H.aR(new H.aT()) p=a6.c p.toString r.sap(0,p)}else r=p else{r=a7.dy if(r==null){r=H.aF() r=r?H.b_():new H.aR(new H.aT()) p=a7.c p.toString r.sap(0,p)}}else r=a4 p=m?a6.k1:a7.k1 o=m?a6.k2:a7.k2 a=m?a6.fr:a7.fr a0=P.K(a6.fx,a7.fx,a8) m=m?a6.fy:a7.fy a1=a6.go a2=a1==null?a7.go:a1 a3=a7.go return A.hj(r,n,q,a4,a,a0,m,P.aa(a2,a3==null?a1:a3,a8),l,k,o,j,h,i,s,d,a5,c,g,b,a4,p,e,f)}, w:function w(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q _.fr=r _.fx=s _.fy=a0 _.go=a1 _.id=a2 _.k1=a3 _.k2=a4}, Ql:function Ql(){}, azy:function(a,b){var s if(a==null)return!0 s=a.b if(t.ks.b(b))return!1 return t.ge.b(s)||t.PB.b(b)||!s.gbB(s).k(0,b.gbB(b))}, azx:function(a4){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3=a4.d if(a3==null)a3=a4.c s=a4.a r=a4.b q=a3.gj8(a3) p=a3.gco() o=a3.gda(a3) n=a3.giN(a3) m=a3.gbB(a3) l=a3.gpt() k=a3.gdz(a3) a3.glA() j=a3.gvC() i=a3.gqw() h=a3.gdB() g=a3.gAP() f=a3.giu(a3) e=a3.gCn() d=a3.gCq() c=a3.gCp() b=a3.gCo() a=a3.gCb(a3) a0=a3.gCy() s.K(0,new A.a_W(r,F.azS(k,l,n,h,g,a3.guI(),0,o,!1,a,p,m,i,j,e,b,c,d,f,a3.goi(),a0,q).bO(a3.gc0(a3)),s)) q=r.gaj(r) a0=H.u(q).h("aO") a1=P.an(new H.aO(q,new A.a_X(s),a0),!0,a0.h("l.E")) a0=a3.gj8(a3) q=a3.gco() f=a3.gda(a3) d=a3.giN(a3) c=a3.gbB(a3) b=a3.gpt() e=a3.gdz(a3) a3.glA() j=a3.gvC() i=a3.gqw() m=a3.gdB() p=a3.gAP() a=a3.giu(a3) o=a3.gCn() g=a3.gCq() h=a3.gCp() n=a3.gCo() l=a3.gCb(a3) k=a3.gCy() a2=F.azR(e,b,d,m,p,a3.guI(),0,f,!1,l,q,c,i,j,o,n,h,g,a,a3.goi(),k,a0).bO(a3.gc0(a3)) for(q=H.Y(a1).h("bI<1>"),p=new H.bI(a1,q),q=new H.bj(p,p.gl(p),q.h("bj"));q.q();){p=q.d if(p.gCR()&&p.gC6(p)!=null){o=p.gC6(p) o.toString o.$1(a2.bO(r.i(0,p)))}}}, NM:function NM(a,b){this.a=a this.b=b}, NN:function NN(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, GI:function GI(a,b,c){var _=this _.a=a _.b=b _.c=!1 _.P$=c}, a_Y:function a_Y(){}, a00:function a00(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e}, a0_:function a0_(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e}, a_Z:function a_Z(a,b){this.a=a this.b=b}, a_W:function a_W(a,b,c){this.a=a this.b=b this.c=c}, a_X:function a_X(a){this.a=a}, Rg:function Rg(){}, a7Q:function a7Q(a,b){this.a=a this.b=b}, xY:function xY(a,b,c,d){var _=this _.k3=a _.k4=b _.r1=c _.rx=null _.v$=d _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, P9:function P9(){}, anL:function(a){var s=$.anJ.i(0,a) if(s==null){s=$.anK $.anK=s+1 $.anJ.n(0,a,s) $.anI.n(0,s,a)}return s}, aAJ:function(a,b){var s if(a.length!==b.length)return!1 for(s=0;s").a3(s.Q[1]).h("qh<1,2>"));s.q();){r=s.a if(!J.d(r,C.cT))return r}return null}, a_V:function a_V(a,b){this.a=a this.b=b}, x_:function x_(){}, eB:function eB(){}, M6:function M6(){}, Q6:function Q6(a,b){this.a=a this.b=b}, lJ:function lJ(a){this.a=a}, NL:function NL(){}, kQ:function kQ(a,b,c){this.a=a this.b=b this.$ti=c}, T5:function T5(a,b){this.a=a this.b=b}, lp:function lp(a,b,c){this.a=a this.b=b this.c=c}, a_I:function a_I(a,b){this.a=a this.b=b}, nC:function nC(a,b,c){this.a=a this.b=b this.c=c}, a1N:function a1N(a,b,c){this.a=a this.b=b this.c=c}, pQ:function(a,b){return new A.w1(a,C.dL,b)}, ajE:function(a){var s=a.a0(t.Jp) return s==null?null:s.f}, w1:function w1(a,b,c){this.c=a this.f=b this.a=c}, pR:function pR(a,b){var _=this _.d=0 _.e=!1 _.f=a _.a=null _.b=b _.c=null}, XA:function XA(){}, XB:function XB(a){this.a=a}, Ae:function Ae(a,b,c,d){var _=this _.f=a _.r=b _.b=c _.a=d}, jG:function jG(){}, fo:function fo(a,b){var _=this _.e=_.d=null _.f=!1 _.a=null _.b=a _.c=null _.$ti=b}, Xz:function Xz(a){this.a=a}, Xy:function Xy(a,b){this.a=a this.b=b}, uM:function uM(a){this.b=a}, are:function(a,b,c,d){var s=new U.bK(b,c,"widgets library",a,d,!1) U.dC(s) return s}, hG:function hG(){}, tF:function tF(a,b,c,d,e){var _=this _.dx=_.y2=null _.dy=!1 _.a=_.fr=null _.b=a _.c=null _.d=$ _.e=b _.f=null _.r=c _.x=d _.z=_.y=null _.Q=!1 _.ch=!0 _.db=_.cy=_.cx=!1 _.$ti=e}, abo:function abo(a,b){this.a=a this.b=b}, abm:function abm(a){this.a=a}, abn:function abn(a){this.a=a}, fE:function fE(){}, Gh:function Gh(a,b){this.c=a this.a=b}, OZ:function OZ(a,b,c,d){var _=this _.B2$=a _.uP$=b _.Mx$=c _.v$=d _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Rn:function Rn(){}, Ro:function Ro(){}, yg:function yg(a){this.b=a}, j_:function j_(){}, a43:function a43(a){this.a=a}, Pn:function Pn(){}, alx:function(a){var s=C.xk.lo(a,0,new A.ahN()),r=s+((s&67108863)<<3)&536870911 r^=r>>>11 return r+((r&16383)<<15)&536870911}, ahN:function ahN(){}, ms:function ms(){}, Db:function Db(){}},U={EO:function EO(a){this.$ti=a},wk:function wk(a,b){this.a=a this.$ti=b},qc:function qc(a,b){this.a=a this.$ti=b},u9:function u9(){},r3:function r3(a,b){this.a=a this.$ti=b},tJ:function tJ(a,b,c){this.a=a this.b=b this.c=c},wK:function wK(a,b,c){this.a=a this.b=b this.$ti=c},EM:function EM(){}, e4:function(){var s=$.auj() return s==null?$.atQ():s}, ahk:function ahk(){}, agl:function agl(){}, bE:function(a){var s=null,r=H.b([a],t.jl) return new U.pL(s,!1,!0,s,s,s,!1,r,s,C.aQ,s,!1,!1,s,C.fL)}, vP:function(a){var s=null,r=H.b([a],t.jl) return new U.vO(s,!1,!0,s,s,s,!1,r,s,C.q1,s,!1,!1,s,C.fL)}, WI:function(a){var s=null,r=H.b([a],t.jl) return new U.Fg(s,!1,!0,s,s,s,!1,r,s,C.q0,s,!1,!1,s,C.fL)}, ayD:function(){var s=null return new U.Fh("",!1,!0,s,s,s,!1,s,C.bc,C.aQ,"",!0,!1,s,C.dY)}, mW:function(a){var s=H.b(a.split("\n"),t.s),r=H.b([U.vP(C.b.gI(s))],t.qe),q=H.eJ(s,1,null,t.N) C.b.J(r,new H.Z(q,new U.Xd(),q.$ti.h("Z"))) return new U.mV(r)}, Xb:function(a){return new U.mV(a)}, ayJ:function(a){return $.ayM.$1(a)}, ayK:function(a){return a}, ao6:function(a,b){var s if(!!a.r&&!0)return if($.ajB===0||!1){s=a.b U.aFa(J.bB(a.a),100,s)}else D.alH().$1("Another exception was thrown: "+a.gR6().j(0)) $.ajB=$.ajB+1}, ayL:function(a){var s,r,q,p,o,n,m,l,k,j,i,h,g,f=P.aj(["dart:async-patch",0,"dart:async",0,"package:stack_trace",0,"class _AssertionError",0,"class _FakeAsync",0,"class _FrameCallbackEntry",0,"class _Timer",0,"class _RawReceivePortImpl",0],t.N,t.S),e=R.aB7(J.amZ(a,"\n")) for(s=0,r=0;q=e.length,r0)q.push(h.gdN(h))}C.b.ha(q) if(s===1)j.push("(elided one frame from "+H.c(C.b.gc5(q))+")") else if(s>1){l=q.length if(l>1)q[l-1]="and "+H.c(C.b.gL(q)) if(q.length>2)j.push("(elided "+s+" frames from "+C.b.bI(q,", ")+")") else j.push("(elided "+s+" frames from "+C.b.bI(q," ")+")")}return j}, dC:function(a){var s=$.l8 if(s!=null)s.$1(a)}, aFa:function(a,b,c){var s,r if(a!=null)D.alH().$1(a) s=H.b(C.c.CH(J.bB(c==null?P.ako():U.ayK(c))).split("\n"),t.s) r=s.length s=J.anb(r!==0?new H.yx(s,new U.ahw(),t.Ws):s,b) D.alH().$1(C.b.bI(U.ayL(s),"\n"))}, aC1:function(a,b,c){return new U.MP(c,a,!0,!0,null,b)}, lX:function lX(){}, pL:function pL(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var _=this _.f=a _.r=b _.x=c _.z=d _.Q=e _.ch=f _.cx=g _.cy=h _.db=!0 _.dx=null _.dy=i _.fr=j _.a=k _.b=l _.c=m _.d=n _.e=o}, vO:function vO(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var _=this _.f=a _.r=b _.x=c _.z=d _.Q=e _.ch=f _.cx=g _.cy=h _.db=!0 _.dx=null _.dy=i _.fr=j _.a=k _.b=l _.c=m _.d=n _.e=o}, Fg:function Fg(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var _=this _.f=a _.r=b _.x=c _.z=d _.Q=e _.ch=f _.cx=g _.cy=h _.db=!0 _.dx=null _.dy=i _.fr=j _.a=k _.b=l _.c=m _.d=n _.e=o}, Fh:function Fh(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var _=this _.f=a _.r=b _.x=c _.z=d _.Q=e _.ch=f _.cx=g _.cy=h _.db=!0 _.dx=null _.dy=i _.fr=j _.a=k _.b=l _.c=m _.d=n _.e=o}, bK:function bK(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.f=e _.r=f}, Xc:function Xc(a){this.a=a}, mV:function mV(a){this.a=a}, Xd:function Xd(){}, Xe:function Xe(){}, Xf:function Xf(){}, ahw:function ahw(){}, vx:function vx(){}, MP:function MP(a,b,c,d,e,f){var _=this _.f=a _.r=null _.a=b _.b=c _.c=d _.d=e _.e=f}, MR:function MR(){}, MQ:function MQ(){}, aDB:function(a,b,c){if(c!=null)return c if(b)return new U.agK(a) return null}, aDE:function(a,b,c,d){var s,r,q,p,o,n if(b){if(c!=null){s=c.$0() r=new P.Q(s.c-s.a,s.d-s.b)}else{s=a.r2 s.toString r=s}q=d.a5(0,C.i).gdB() p=d.a5(0,new P.m(0+r.a,0)).gdB() o=d.a5(0,new P.m(0,0+r.b)).gdB() n=d.a5(0,r.a7t(0,C.i)).gdB() return Math.ceil(Math.max(Math.max(q,p),Math.max(o,n)))}return 35}, agK:function agK(a){this.a=a}, abd:function abd(){}, wf:function wf(a,b,c,d,e,f,g,h,i,j,k){var _=this _.z=a _.Q=b _.ch=c _.cx=d _.cy=e _.db=f _.dx=g _.fx=_.fr=_.dy=$ _.fy=null _.e=h _.a=i _.b=j _.c=k _.d=!1}, NB:function NB(){}, EP:function EP(){}, azI:function(a,b,c){var s=a==null if(s&&b==null)return null s=s?null:a.a return new U.xh(A.aj7(s,b==null?null:b.a,c))}, xh:function xh(a){this.a=a}, Oa:function Oa(){}, yQ:function yQ(a,b,c,d,e,f,g){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g}, Q9:function Q9(){}, yR:function yR(a,b,c){var _=this _.a=a _.b=b _.e=_.d=_.c=0 _.P$=c}, a6N:function a6N(a){this.a=a}, aBu:function(a){return U.aBt(a,null,null,C.FA,C.Fw,C.Fz)}, aBt:function(a,b,c,d,e,f){switch(a){case C.z:b=C.Fy c=C.Fx break case C.I:case C.M:b=C.Ft c=C.Fv break case C.E:b=C.Fu c=C.FD break case C.C:b=C.Fr c=C.FB break case C.D:b=C.FC c=C.Fs break case null:break default:throw H.a(H.j(u.I))}b.toString c.toString return new U.zk(b,c,d,e,f)}, yb:function yb(a){this.b=a}, zk:function zk(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e}, QP:function QP(){}, aEx:function(a,b,c){var s,r,q,p,o,n,m=b.b if(m<=0||b.a<=0||c.b<=0||c.a<=0)return C.qw switch(a){case C.ng:s=c r=b break case C.nh:q=c.a p=c.b o=b.a s=q/p>o/m?new P.Q(o*p/m,p):new P.Q(q,m*q/o) r=b break case C.ni:q=c.a p=c.b o=b.a r=q/p>o/m?new P.Q(o,o*p/q):new P.Q(m*q/p,m) s=c break case C.nj:m=b.a q=c.b p=c.a q=m*q/p r=new P.Q(m,q) s=new P.Q(p,q*p/m) break case C.nk:q=c.a p=c.b q=m*q/p r=new P.Q(q,m) s=new P.Q(q*p/m,p) break case C.nl:q=b.a p=c.a r=new P.Q(Math.min(H.B(q),H.B(p)),Math.min(m,H.B(c.b))) s=r break case C.j9:n=b.a/m q=c.b s=m>q?new P.Q(q*n,q):b m=c.a if(s.a>m)s=new P.Q(m,m/n) r=b break default:throw H.a(H.j(u.I))}return new U.Fv(r,s)}, js:function js(a){this.b=a}, Fv:function Fv(a,b){this.a=a this.b=b}, K7:function(a,b,c,d,e,f,g,h,i,j){return new U.K6(e,f,g,i,a,b,c,d,j,h)}, qy:function qy(a,b){this.a=a this.d=b}, Kb:function Kb(a){this.b=a}, a9g:function a9g(a,b){this.a=a this.b=b}, K6:function K6(a,b,c,d,e,f,g,h,i,j){var _=this _.a=null _.b=!0 _.c=a _.d=b _.e=c _.f=d _.r=e _.x=f _.y=g _.z=h _.Q=i _.ch=j _.fr=_.dy=_.dx=_.db=_.cy=_.cx=null _.fx=$ _.go=_.fy=null}, If:function If(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){var _=this _.N=_.F=null _.S=a _.au=b _.aB=c _.ax=d _.aU=e _.b7=null _.ae=f _.bf=g _.bE=h _.bx=i _.aS=j _.cD=k _.e2=l _.d2=m _.c_=n _.cl=o _.aK=p _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Iy:function Iy(a,b,c,d,e){var _=this _.aA=a _.bi=b _.cv=$ _.aY=!0 _.cI$=c _.a7$=d _.d9$=e _.e=_.d=_.k3=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, a2Z:function a2Z(a,b,c){this.a=a this.b=b this.c=c}, a6y:function a6y(){}, ZC:function ZC(){}, ZD:function ZD(){}, a6g:function a6g(){}, a6h:function a6h(a,b){this.a=a this.b=b}, a6k:function a6k(){}, aDD:function(a){var s={} s.a=$ a.ip(new U.agP(new U.agO(s))) return new U.agN(s).$0()}, anh:function(a,b){var s,r,q=t.KU,p=a.kD(q) for(;s=p!=null,s;p=r){if(J.d(b.$1(p),!0))break s=U.aDD(p).y r=s==null?null:s.i(0,H.bO(q))}return s}, axq:function(a){var s={} s.a=null U.anh(a,new U.SD(s)) return C.nW}, ani:function(a,b,c){var s,r={} r.a=null s=b==null?null:H.E(b) U.anh(a,new U.SE(r,s==null?H.bO(c):s,c,a)) return r.a}, anR:function(a){return new U.F1(a,new R.by(H.b([],t.ot),t.wS))}, agO:function agO(a){this.a=a}, agN:function agN(a){this.a=a}, agP:function agP(a){this.a=a}, aP:function aP(){}, aX:function aX(){}, c0:function c0(){}, iz:function iz(a,b,c){this.b=a this.a=b this.$ti=c}, SC:function SC(){}, fZ:function fZ(a,b,c){this.d=a this.e=b this.a=c}, SD:function SD(a){this.a=a}, SE:function SE(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, zv:function zv(a,b,c){var _=this _.d=a _.e=b _.a=null _.b=c _.c=null}, a8f:function a8f(a){this.a=a}, zu:function zu(a,b,c,d,e){var _=this _.f=a _.r=b _.x=c _.b=d _.a=e}, n_:function n_(a,b,c,d,e,f,g,h,i){var _=this _.c=a _.d=b _.e=c _.r=d _.y=e _.z=f _.ch=g _.cx=h _.a=i}, Ad:function Ad(a,b){var _=this _.f=_.e=_.d=!1 _.r=a _.a=null _.b=b _.c=null}, aay:function aay(a){this.a=a}, aaw:function aaw(a){this.a=a}, aar:function aar(a){this.a=a}, aas:function aas(a){this.a=a}, aaq:function aaq(a,b){this.a=a this.b=b}, aav:function aav(a){this.a=a}, aat:function aat(a){this.a=a}, aau:function aau(a,b){this.a=a this.b=b}, aax:function aax(a,b){this.a=a this.b=b}, F1:function F1(a,b){this.b=a this.a=b}, kM:function kM(){}, kU:function kU(){}, mK:function mK(){}, F_:function F_(){}, qE:function qE(){}, HQ:function HQ(a){this.c=this.b=$ this.a=a}, KR:function KR(){}, KQ:function KQ(){}, Nj:function Nj(){}, arp:function(a,b){var s={} s.a=b s.b=null a.ip(new U.agJ(s)) return s.b}, mc:function(a,b){var s a.nI() s=a.d s.toString F.apy(s,1,b)}, aqe:function(a,b,c){var s=a==null?null:a.f if(s==null)s=b return new U.tr(s,c)}, aCk:function(a){var s,r,q=H.Y(a).h("Z<1,d3

>"),p=new H.Z(a,new U.adk(),q) for(q=new H.bj(p,p.gl(p),q.h("bj")),s=null;q.q();){r=q.d s=(s==null?r:s).BB(0,r)}if(s.gO(s))return C.b.gI(a).a q=C.b.gI(a).gM8() return(q&&C.b).B8(q,s.gjY(s)).f}, aqv:function(a,b){S.p_(a,new U.adm(b),t.zP)}, aCj:function(a,b){S.p_(a,new U.adj(b),t.h7)}, agJ:function agJ(a){this.a=a}, tr:function tr(a,b){this.b=a this.c=b}, lQ:function lQ(a){this.b=a}, FH:function FH(){}, Xm:function Xm(a,b,c){this.a=a this.b=b this.c=c}, Xl:function Xl(){}, tf:function tf(a,b){this.a=a this.b=b}, Mb:function Mb(a){this.a=a}, Vl:function Vl(){}, adn:function adn(a){this.a=a}, Vt:function Vt(a,b){this.a=a this.b=b}, Vn:function Vn(){}, Vo:function Vo(a){this.a=a}, Vp:function Vp(a){this.a=a}, Vq:function Vq(){}, Vr:function Vr(a){this.a=a}, Vs:function Vs(a){this.a=a}, Vm:function Vm(a,b,c){this.a=a this.b=b this.c=c}, Vu:function Vu(a){this.a=a}, Vv:function Vv(a){this.a=a}, Vw:function Vw(a){this.a=a}, Vx:function Vx(a){this.a=a}, Vy:function Vy(a){this.a=a}, Vz:function Vz(a){this.a=a}, d7:function d7(a,b,c){var _=this _.a=a _.b=b _.c=c _.d=null}, adk:function adk(){}, adm:function adm(a){this.a=a}, adl:function adl(){}, je:function je(a){this.a=a this.b=null}, adi:function adi(){}, adj:function adj(a){this.a=a}, HZ:function HZ(a){this.dK$=a}, a2_:function a2_(){}, a20:function a20(){}, a21:function a21(a){this.a=a}, w_:function w_(a,b,c){this.c=a this.e=b this.a=c}, MX:function MX(a){var _=this _.a=_.d=null _.b=a _.c=null}, ts:function ts(a,b,c,d){var _=this _.f=a _.r=b _.b=c _.a=d}, IB:function IB(a){this.a=a}, qo:function qo(){}, GT:function GT(a){this.a=a}, qB:function qB(){}, HO:function HO(a){this.a=a}, mJ:function mJ(a){this.a=a}, EZ:function EZ(a){this.a=a}, MY:function MY(){}, ON:function ON(){}, Rl:function Rl(){}, Rm:function Rm(){}, CG:function(a,b){var s,r a.a0(t.l4) s=$.aiH() r=F.fv(a) r=r==null?null:r.b if(r==null)r=1 return new M.nb(s,r,L.Gt(a),T.dQ(a),b,U.e4())}, pW:function pW(a,b,c){this.c=a this.x=b this.a=c}, An:function An(a){var _=this _.f=_.e=_.d=null _.r=!1 _.x=$ _.y=null _.z=!1 _.Q=$ _.a=_.db=_.cy=_.cx=_.ch=null _.b=a _.c=null}, ab4:function ab4(a,b,c){this.a=a this.b=b this.c=c}, ab5:function ab5(a){this.a=a}, ab6:function ab6(a){this.a=a}, Rc:function Rc(){}, xd:function xd(){}, fz:function fz(a,b,c,d){var _=this _.c=a _.d=b _.a=c _.$ti=d}, h8:function h8(){}, qR:function qR(){}, il:function il(){}, Bh:function Bh(){}, y0:function y0(a,b,c){var _=this _.z=a _.e=null _.a=!1 _.c=_.b=null _.P$=b _.$ti=c}, y_:function y_(a,b){var _=this _.z=a _.e=null _.a=!1 _.c=_.b=null _.P$=b}, nP:function nP(){}, qQ:function qQ(){}, y1:function y1(a,b){var _=this _.db=a _.e=null _.a=!1 _.c=_.b=null _.P$=b}, dm:function(a){var s=a.a0(t.l3),r=s==null?null:s.f return r!==!1}, z9:function z9(a,b,c){this.c=a this.d=b this.a=c}, A4:function A4(a,b,c){this.f=a this.b=b this.a=c}, lG:function lG(){}, dY:function dY(){}, R_:function R_(a,b,c){var _=this _.x=a _.a=null _.b=!1 _.c=null _.d=b _.e=null _.f=c _.r=$}, Kc:function Kc(a,b,c,d){var _=this _.c=a _.d=b _.e=c _.a=d}, a3f:function(a){var s=0,r=P.af(t.Ni),q,p,o,n,m,l,k,j var $async$a3f=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)switch(s){case 0:s=3 return P.ak(a.x.P5(),$async$a3f) case 3:p=c o=a.b n=a.a m=a.e l=a.c k=B.asG(p) j=p.length k=new U.IC(k,n,o,l,j,m,!1,!0) k.EL(o,j,m,!1,!0,l,n) q=k s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$a3f,r)}, Cw:function(a){var s=a.i(0,"content-type") if(s!=null)return R.aoK(s) return R.a_D("application","octet-stream",null)}, IC:function IC(a,b,c,d,e,f,g,h){var _=this _.x=a _.a=b _.b=c _.c=d _.d=e _.e=f _.f=g _.r=h}, ayX:function(a,b){var s=U.ayY(H.b([U.aC2(a,!0)],t._Y)),r=new U.YG(b).$0(),q=C.f.j(C.b.gL(s).b+1),p=U.ayZ(s)?0:3,o=H.Y(s) return new U.Ym(s,r,null,1+Math.max(q.length,p),new H.Z(s,new U.Yo(),o.h("Z<1,p>")).vE(0,C.nU),!B.aFI(new H.Z(s,new U.Yp(),o.h("Z<1,z?>"))),new P.c6(""))}, ayZ:function(a){var s,r,q for(s=0;s") return P.an(new H.fn(s,new U.Yt(),r),!0,r.h("l.E"))}, aC2:function(a,b){return new U.ej(new U.aaW(a).$0(),!0)}, aC4:function(a){var s,r,q,p,o,n,m=a.gbs(a) if(!C.c.C(m,"\r\n"))return a s=a.gaX(a) r=s.gbV(s) for(s=m.length-1,q=0;q0)return a>=1e5 return!0}, jh:function jh(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=$ _.f=e _.$ti=f}, tu:function tu(a){this.a=a this.b=null}, nS:function nS(a,b){this.a=a this.b=b}, i4:function i4(){}, a3T:function a3T(a){this.a=a}, a3V:function a3V(a){this.a=a}, a3W:function a3W(a,b){this.a=a this.b=b}, a3X:function a3X(a){this.a=a}, a3S:function a3S(a){this.a=a}, a3U:function a3U(a){this.a=a}, a4f:function a4f(){}, aAM:function(a){var s,r,q,p,o,n="\n"+C.c.a4("-",80)+"\n",m=H.b([],t.Y4),l=a.split(n) for(s=l.length,r=0;r=0){p.V(q,0,o).split("\n") m.push(new F.wy(p.bw(q,o+2)))}else m.push(new F.wy(q))}return m}, apA:function(a){switch(a){case"AppLifecycleState.paused":return C.iQ case"AppLifecycleState.resumed":return C.iO case"AppLifecycleState.inactive":return C.iP case"AppLifecycleState.detached":return C.iR}return null}, yo:function yo(){}, a4H:function a4H(a){this.a=a}, a4I:function a4I(a,b){this.a=a this.b=b}, M4:function M4(){}, a9R:function a9R(a){this.a=a}, a9S:function a9S(a,b){this.a=a this.b=b}, aEq:function(a){switch(a){case"TextAffinity.downstream":return C.l case"TextAffinity.upstream":return C.aK}return null}, apN:function(a){var s,r,q,p=J.ag(a),o=H.cr(p.i(a,"text")),n=H.RJ(p.i(a,"selectionBase")) if(n==null)n=-1 s=H.RJ(p.i(a,"selectionExtent")) if(s==null)s=-1 r=N.aEq(H.ud(p.i(a,"selectionAffinity"))) if(r==null)r=C.l q=H.aCV(p.i(a,"selectionIsDirectional")) n=X.cY(r,n,s,q===!0) s=H.RJ(p.i(a,"composingBase")) if(s==null)s=-1 p=H.RJ(p.i(a,"composingExtent")) return new N.bb(o,n,new P.eM(s,p==null?-1:p))}, aEs:function(a){switch(a){case"TextInputAction.none":return C.i2 case"TextInputAction.unspecified":return C.i3 case"TextInputAction.go":return C.i6 case"TextInputAction.search":return C.i7 case"TextInputAction.send":return C.i8 case"TextInputAction.next":return C.i9 case"TextInputAction.previous":return C.ia case"TextInputAction.continue_action":return C.ib case"TextInputAction.join":return C.ic case"TextInputAction.route":return C.i4 case"TextInputAction.emergencyCall":return C.i5 case"TextInputAction.done":return C.dx case"TextInputAction.newline":return C.eK}throw H.a(U.Xb(H.b([U.vP("Unknown text input action: "+H.c(a))],t.qe)))}, aEr:function(a){switch(a){case"FloatingCursorDragState.start":return C.fQ case"FloatingCursorDragState.update":return C.e2 case"FloatingCursorDragState.end":return C.e3}throw H.a(U.Xb(H.b([U.vP("Unknown text cursor action: "+H.c(a))],t.qe)))}, Jw:function Jw(a,b){this.a=a this.b=b}, Jx:function Jx(a,b){this.a=a this.b=b}, z0:function z0(a,b,c){this.a=a this.b=b this.c=c}, eL:function eL(a){this.b=a}, a6X:function a6X(){}, a74:function a74(a,b,c,d,e,f,g,h,i,j,k){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.z=i _.Q=j _.ch=k}, vU:function vU(a){this.b=a}, bb:function bb(a,b,c){this.a=a this.b=b this.c=c}, j2:function j2(a){this.b=a}, a7c:function a7c(){}, a75:function a75(a,b){var _=this _.d=_.c=_.b=_.a=null _.e=a _.f=b}, K5:function K5(){var _=this _.a=$ _.b=null _.c=$ _.d=!1}, a77:function a77(a){this.a=a}, aAv:function(a,b){var s=($.b5+1)%16777215 $.b5=s return new N.lz(s,a,C.a1,P.be(t.t),b.h("lz<0>"))}, aq6:function(){var s=null,r=H.b([],t.GA),q=$.R,p=H.b([],t.Jh),o=P.b6(7,s,!1,t.JI),n=t.S,m=t.j1 n=new N.KI(s,r,!0,new P.aH(new P.a1(q,t.U),t.gR),!1,s,!1,!1,s,$,s,!1,0,!1,$,s,new N.Q5(P.aZ(t.M)),$,$,p,s,N.aEX(),new Y.FR(N.aEW(),o,t.G7),!1,0,P.y(n,t.h1),P.be(n),H.b([],m),H.b([],m),s,!1,C.c0,!0,!1,s,C.G,C.G,s,0,s,!1,P.jQ(s,t.qL),new O.a1o(P.y(n,t.rr),P.y(t.Ld,t.iD)),new D.XO(P.y(n,t.cK)),new G.a1r(),P.y(n,t.Fn),$,!1,C.qi) n.V_() return n}, ag1:function ag1(a,b,c){this.a=a this.b=b this.c=c}, ag2:function ag2(a){this.a=a}, fb:function fb(){}, KH:function KH(){}, ag0:function ag0(a,b){this.a=a this.b=b}, a7W:function a7W(a,b){this.a=a this.b=b}, ly:function ly(a,b,c,d,e){var _=this _.c=a _.d=b _.e=c _.a=d _.$ti=e}, a2J:function a2J(a,b,c){this.a=a this.b=b this.c=c}, a2K:function a2K(a){this.a=a}, lz:function lz(a,b,c,d,e){var _=this _.dx=_.N=_.F=null _.dy=!1 _.a=_.fr=null _.b=a _.c=null _.d=$ _.e=b _.f=null _.r=c _.x=d _.z=_.y=null _.Q=!1 _.ch=!0 _.db=_.cy=_.cx=!1 _.$ti=e}, KI:function KI(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9){var _=this _.A$=a _.aE$=b _.bT$=c _.aA$=d _.bi$=e _.cv$=f _.aY$=g _.y1$=h _.y2$=i _.ac$=j _.at$=k _.aN$=l _.aI$=m _.b4$=n _.cC$=o _.kb$=p _.n6$=q _.a$=r _.b$=s _.c$=a0 _.d$=a1 _.e$=a2 _.f$=a3 _.r$=a4 _.x$=a5 _.y$=a6 _.z$=a7 _.Q$=a8 _.ch$=a9 _.cx$=b0 _.cy$=b1 _.db$=b2 _.dx$=b3 _.dy$=b4 _.fr$=b5 _.fx$=b6 _.fy$=b7 _.go$=b8 _.id$=b9 _.k1$=c0 _.k2$=c1 _.k3$=c2 _.k4$=c3 _.r1$=c4 _.r2$=c5 _.rx$=c6 _.ry$=c7 _.x1$=c8 _.x2$=c9 _.a=0}, C3:function C3(){}, C4:function C4(){}, C5:function C5(){}, C6:function C6(){}, C7:function C7(){}, C8:function C8(){}, C9:function C9(){}, aC8:function(a){a.e0() a.be(N.ahL())}, ayx:function(a,b){var s if(a.gkU()=10 if(b)r=i||!s else r=!(s||!i) q=r?Math.min(l,j):Math.max(k,10) m=c.a l=a.a if(m-20m-n?k-l:o-j}return new P.m(p,q)}, axT:function(a,b){return a.iq(b)}, axU:function(a,b){var s a.cJ(0,b,!0) s=a.r2 s.toString return s}},R={ aD9:function(a,b,c){var s,r,q,p,o,n,m=new Uint8Array((c-b)*2) for(s=b,r=0,q=0;s>>4&15 m[r]=n<10?n+48:n+97-10 r=o+1 n=p&15 m[o]=n<10?n+48:n+97-10}if(q>=0&&q<=255)return P.kf(m,0,null) for(s=b;s"))}, V3:function(a){return new R.jy(a)}, aJ:function aJ(){}, b3:function b3(a,b,c){this.a=a this.b=b this.$ti=c}, kq:function kq(a,b,c){this.a=a this.b=b this.$ti=c}, aM:function aM(a,b,c){this.a=a this.b=b this.$ti=c}, y3:function y3(a,b,c,d){var _=this _.c=a _.a=b _.b=c _.$ti=d}, hE:function hE(a,b){this.a=a this.b=b}, xL:function xL(a,b){this.a=a this.b=b}, q3:function q3(a,b){this.a=a this.b=b}, jy:function jy(a){this.a=a}, Ca:function Ca(){}, oV:function(a,b){return null}, Ez:function Ez(a,b,c,d,e,f,g,h,i,j){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j}, Qm:function Qm(a,b){this.a=a this.b=b}, LT:function LT(){}, cd:function(a){return new R.by(H.b([],a.h("o<0>")),a.h("by<0>"))}, by:function by(a,b){var _=this _.a=a _.b=!1 _.c=$ _.$ti=b}, w7:function w7(a,b){this.a=a this.$ti=b}, aB7:function(a){var s=t.ZK return P.an(new H.fP(new H.ft(new H.aO(H.b(C.c.cY(a).split("\n"),t.s),new R.a6e(),t.Hd),R.aG3(),t.C9),s),!0,s.h("l.E"))}, aB5:function(a){var s=R.aB6(a) return s}, aB6:function(a){var s,r,q="",p=$.atg().uV(a) if(p==null)return null s=H.b(p.b[1].split("."),t.s) r=s.length>1?C.b.gI(s):q return new R.i7(a,-1,q,q,q,-1,-1,r,s.length>1?H.eJ(s,1,null,t.N).bI(0,"."):C.b.gc5(s))}, aB8:function(a){var s,r,q,p,o,n,m,l,k,j,i="" if(a==="")return C.Ck else if(a==="...")return C.Cj if(!J.p6(a,"#"))return R.aB5(a) s=P.c3("^#(\\d+) +(.+) \\((.+?):?(\\d+){0,1}:?(\\d+){0,1}\\)$",!0).uV(a).b r=s[2] r.toString q=H.is(r,".","") if(C.c.bv(q,"new")){p=q.split(" ").length>1?q.split(" ")[1]:i if(J.ml(p,".")){o=p.split(".") p=o[0] q=o[1]}else q=""}else if(C.c.C(q,".")){o=q.split(".") p=o[0] q=o[1]}else p="" r=s[3] r.toString n=P.os(r) m=n.gdR(n) if(n.gdT()==="dart"||n.gdT()==="package"){l=J.aS(n.gku(),0) m=C.c.OP(n.gdR(n),J.mk(J.aS(n.gku(),0),"/"),"")}else l=i r=s[1] r.toString r=P.e5(r,null) k=n.gdT() j=s[4] if(j==null)j=-1 else{j=j j.toString j=P.e5(j,null)}s=s[5] if(s==null)s=-1 else{s=s s.toString s=P.e5(s,null)}return new R.i7(a,r,k,l,m,j,s,p,q)}, i7:function i7(a,b,c,d,e,f,g,h,i){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i}, a6e:function a6e(){}, j7:function j7(a){this.a=a}, t_:function t_(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, B5:function B5(a,b){this.a=a this.b=b}, j8:function j8(a,b){this.a=a this.b=b this.c=0}, pV:function pV(a,b,c){var _=this _.d=a _.a=b _.b=c _.c=0}, axy:function(a){switch(a){case C.I:case C.M:case C.D:case C.E:return C.qK case C.z:case C.C:return C.qL default:throw H.a(H.j(u.I))}}, Dl:function Dl(a){this.a=a}, Dk:function Dk(a){this.a=a}, SZ:function SZ(a,b){this.a=a this.b=b}, En:function En(a){this.a=a}, Uq:function Uq(a,b){this.a=a this.b=b}, az3:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7){return new R.q2(d,a1,a3,a2,p,a0,r,s,o,e,l,a5,b,f,i,m,k,a4,a6,a7,g,!1,q,a,j,c,n)}, ajG:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){var s=null return new R.G3(c,o,s,s,s,n,l,m,j,!0,C.ac,s,s,d,f,i,h,p,q,r,e!==!1,!1,k,a,g,b,s)}, ng:function ng(){}, Zu:function Zu(){}, B4:function B4(a,b,c){this.f=a this.b=b this.a=c}, q2:function q2(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.x=f _.y=g _.z=h _.Q=i _.ch=j _.cx=k _.cy=l _.db=m _.dx=n _.dy=o _.fr=p _.fx=q _.fy=r _.go=s _.id=a0 _.k1=a1 _.k2=a2 _.k3=a3 _.k4=a4 _.r1=a5 _.r2=a6 _.a=a7}, At:function At(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.x=f _.y=g _.z=h _.Q=i _.ch=j _.cx=k _.cy=l _.db=m _.dx=n _.dy=o _.fr=p _.fx=q _.fy=r _.go=s _.id=a0 _.k1=a1 _.k2=a2 _.k3=a3 _.k4=a4 _.r1=a5 _.r2=a6 _.rx=a7 _.ry=a8 _.x1=a9 _.a=b0}, tz:function tz(a){this.b=a}, As:function As(a,b,c,d){var _=this _.e=_.d=null _.f=!1 _.r=a _.x=$ _.y=b _.z=!1 _.bA$=c _.a=null _.b=d _.c=null}, abb:function abb(){}, abc:function abc(a,b){this.a=a this.b=b}, ab9:function ab9(a,b){this.a=a this.b=b}, aba:function aba(a){this.a=a}, G3:function G3(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.x=f _.y=g _.z=h _.Q=i _.ch=j _.cx=k _.cy=l _.db=m _.dx=n _.dy=o _.fr=p _.fx=q _.fy=r _.go=s _.id=a0 _.k1=a1 _.k2=a2 _.k3=a3 _.k4=a4 _.r1=a5 _.r2=a6 _.a=a7}, Cj:function Cj(){}, azY:function(a,b,c){var s,r,q,p,o,n=null,m=a==null if(m&&b==null)return n s=m?n:a.a r=b==null s=P.K(s,r?n:b.a,c) q=m?n:a.b q=Y.hf(q,r?n:b.b,c) p=m?n:a.c p=P.aa(p,r?n:b.c,c) o=m?n:a.d o=A.bu(o,r?n:b.d,c) if(c<0.5)m=m?n:a.e else m=r?n:b.e return new R.xz(s,q,p,o,m)}, xz:function xz(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e}, OG:function OG(){}, akr:function(a,b,c,d,e){if(a==null&&b==null)return null return new R.Ay(a,b,c,d,e.h("Ay<0>"))}, yO:function yO(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f}, Ay:function Ay(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.$ti=e}, Q1:function Q1(){}, aBm:function(a,b,c){var s,r,q,p=null,o=a==null if(o&&b==null)return p s=o?p:a.a r=b==null s=P.K(s,r?p:b.a,c) q=o?p:a.b q=P.K(q,r?p:b.b,c) o=o?p:a.c return new R.z5(s,q,P.K(o,r?p:b.c,c))}, apQ:function(a){var s a.a0(t.bZ) s=K.aA(a) return s.cw}, z5:function z5(a,b,c){this.a=a this.b=b this.c=c}, Qk:function Qk(){}, apR:function(a,b,c,d,e,f,g,h,i,a0,a1,a2,a3){var s=null,r=e==null?s:e,q=f==null?s:f,p=g==null?s:g,o=h==null?s:h,n=i==null?s:i,m=a0==null?s:a0,l=a2==null?s:a2,k=a3==null?s:a3,j=a==null?s:a return new R.dX(r,q,p,o,n,m,l,k,j,b==null?s:b,d,c,a1)}, lO:function(a,b,c){var s,r,q,p,o,n,m,l,k,j,i,h=null,g=a==null,f=g?h:a.a,e=b==null f=A.bu(f,e?h:b.a,c) s=g?h:a.b s=A.bu(s,e?h:b.b,c) r=g?h:a.c r=A.bu(r,e?h:b.c,c) q=g?h:a.d q=A.bu(q,e?h:b.d,c) p=g?h:a.e p=A.bu(p,e?h:b.e,c) o=g?h:a.f o=A.bu(o,e?h:b.f,c) n=g?h:a.r n=A.bu(n,e?h:b.r,c) m=g?h:a.x m=A.bu(m,e?h:b.x,c) l=g?h:a.y l=A.bu(l,e?h:b.y,c) k=g?h:a.z k=A.bu(k,e?h:b.z,c) j=g?h:a.Q j=A.bu(j,e?h:b.Q,c) i=g?h:a.ch i=A.bu(i,e?h:b.ch,c) g=g?h:a.cx return R.apR(l,k,i,j,f,s,r,q,p,o,A.bu(g,e?h:b.cx,c),n,m)}, dX:function dX(a,b,c,d,e,f,g,h,i,j,k,l,m){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m}, Qn:function Qn(){}, aAH:function(a,b,c,d,e,f){var s=t.V s=new R.qY(C.dn,f,a,!0,b,new B.cZ(!1,new P.a7(s),t.uh),new P.a7(s)) s.EN(a,b,!0,e,f) s.EO(a,b,c,!0,e,f) return s}, qY:function qY(a,b,c,d,e,f,g){var _=this _.fx=0 _.fy=a _.go=null _.b=b _.c=c _.d=d _.e=e _.r=_.f=null _.x=0 _.z=_.y=null _.Q=!1 _.ch=!0 _.cx=!1 _.db=_.cy=null _.dx=f _.dy=null _.P$=g}, JG:function JG(a){this.a=a}, Dr:function(a,b,c){return new R.uQ(a,null,new R.Te(c),b,a,null,c.h("uQ<0>"))}, jq:function(a,b){var s,r,q,p=!1 try{r=Y.HS(a,p,b.h("0*")) return r}catch(q){r=H.U(q) if(r instanceof Y.xB){s=r r=b.h("0*") if(s.a!==H.bO(r))throw q throw H.a(U.mW(" BlocProvider.of() called with a context that does not contain a Bloc/Cubit of type "+H.bO(r).j(0)+".\n No ancestor could be found starting from the context that was passed to BlocProvider.of<"+H.bO(r).j(0)+">().\n\n This can happen if the context you used comes from a widget above the BlocProvider.\n\n The context used was: "+H.c(a)+"\n "))}else throw q}}, axB:function(a,b){var s if(b==null)return new R.Tc() s=b.nn(new R.Td(a)) return s.gud(s)}, pi:function pi(){}, uQ:function uQ(a,b,c,d,e,f,g){var _=this _.e=a _.f=b _.r=c _.x=d _.c=e _.a=f _.$ti=g}, Te:function Te(a){this.a=a}, Tc:function Tc(){}, Td:function Td(a){this.a=a}, Le:function Le(){}, aoK:function(a){return B.aGn("media type",a,new R.a_E(a))}, a_D:function(a,b,c){var s=a.toLowerCase(),r=b.toLowerCase(),q=t.X q=c==null?P.y(q,q):Z.axR(c,q) return new R.wU(s,r,new P.kl(q,t.po))}, wU:function wU(a,b,c){this.a=a this.b=b this.c=c}, a_E:function a_E(a){this.a=a}, a_G:function a_G(a){this.a=a}, a_F:function a_F(){}, yn:function yn(a){this.a=a}, Pv:function Pv(a,b,c,d,e,f,g){var _=this _.d=a _.e=b _.x=_.r=_.f=null _.y=c _.z=d _.Q=e _.ch=f _.cx="" _.a=_.dx=null _.b=g _.c=null}, ae8:function ae8(a,b){this.a=a this.b=b}, ael:function ael(){}, aem:function aem(a,b){this.a=a this.b=b}, aek:function aek(a){this.a=a}, aen:function aen(a,b){this.a=a this.b=b}, ae6:function ae6(a,b){this.a=a this.b=b}, ae7:function ae7(a){this.a=a}, aec:function aec(){}, aed:function aed(){}, aee:function aee(a){this.a=a}, aeb:function aeb(a,b){this.a=a this.b=b}, aef:function aef(){}, aeg:function aeg(a){this.a=a}, aea:function aea(a,b){this.a=a this.b=b}, aeh:function aeh(){}, aei:function aei(a){this.a=a}, ae9:function ae9(a,b){this.a=a this.b=b}, aej:function aej(){}, aeq:function aeq(a){this.a=a}, aep:function aep(a,b){this.a=a this.b=b}, aeo:function aeo(a){this.a=a}, ao_:function(a,b,c){var s=K.aA(a) if(c>0)s.toString return b}},B={EY:function EY(a){this.a=a},Ff:function Ff(){}, aBE:function(a,b){return new B.cZ(a,new P.a7(t.V),b.h("cZ<0>"))}, aq:function aq(){}, bn:function bn(a){var _=this _.d=a _.c=_.b=_.a=null}, jv:function jv(){}, U1:function U1(a){this.a=a}, oH:function oH(a){this.a=a}, cZ:function cZ(a,b,c){this.a=a this.P$=b this.$ti=c}, I:function I(){}, kB:function kB(a,b,c){this.a=a this.b=b this.c=c}, akK:function akK(a,b){this.a=a this.b=b}, a1t:function a1t(a){this.a=a this.b=$}, Gk:function Gk(a,b,c){this.a=a this.b=b this.c=c}, jI:function(a,b,c,d,e,f){return new B.FW(e,c,a,d,f,b,null)}, FW:function FW(a,b,c,d,e,f,g){var _=this _.e=a _.x=b _.Q=c _.db=d _.fx=e _.go=f _.a=g}, wO:function wO(){}, h9:function h9(a,b,c){var _=this _.e=null _.c9$=a _.an$=b _.a=c}, a01:function a01(){}, I7:function I7(a,b,c,d){var _=this _.F=a _.cI$=b _.a7$=c _.d9$=d _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, B7:function B7(){}, OT:function OT(){}, aAg:function(a){var s,r,q,p,o,n=J.ag(a),m=H.ud(n.i(a,"key")),l=H.ud(n.i(a,"code")) if(l==null)l="" s=m==null r=s?"":m q=H.RJ(n.i(a,"metaState")) p=new A.a1N(l,r,q==null?0:q) !s o=H.cr(n.i(a,"type")) switch(o){case"keydown":return new B.qI(p) case"keyup":return new B.xI(p) default:throw H.a(U.mW("Unknown key event type: "+H.c(o)))}}, nk:function nk(a){this.b=a}, fx:function fx(a){this.b=a}, a1K:function a1K(){}, fD:function fD(){}, qI:function qI(a){this.b=a}, xI:function xI(a){this.b=a}, HW:function HW(a,b,c){var _=this _.a=a _.b=null _.c=b _.d=c}, cD:function cD(a,b){this.a=a this.b=b}, OL:function OL(){}, a1M:function a1M(){}, azj:function(a){return C.xd}, GC:function GC(a){this.b=a}, ol:function ol(){}, Fu:function Fu(a){this.a=a}, WW:function WW(a){this.a=a}, WV:function WV(a){this.a=a}, J_:function J_(a){this.b=a}, IZ:function IZ(){}, a44:function a44(a,b,c){this.a=a this.b=b this.c=c}, a45:function a45(a){this.a=a}, Dy:function Dy(){}, Gq:function Gq(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var _=this _.aN=a _.fx=b _.c=c _.d=d _.e=e _.f=f _.r=g _.y=h _.ch=i _.cx=j _.cy=k _.db=l _.dx=m _.dy=n _.a=o}, FF:function FF(){}, V:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){return new B.qq(i,c,f,k,p,n,h,e,m,g,j,d)}, qq:function qq(a,b,c,d,e,f,g,h,i,j,k,l){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.dx=l}, Zv:function Zv(){}, eX:function eX(){}, mA:function mA(a){this.a=a}, v1:function v1(a){this.a=a}, v2:function v2(a){this.a=a}, Lp:function Lp(a,b,c,d,e,f,g,h){var _=this _.d=a _.e=b _.f=c _.r=d _.x=e _.y=f _.z=null _.Q=g _.ch="" _.a=null _.b=h _.c=null}, a9_:function a9_(a,b){this.a=a this.b=b}, a91:function a91(a){this.a=a}, a92:function a92(a,b){this.a=a this.b=b}, a90:function a90(a){this.a=a}, a93:function a93(a,b){this.a=a this.b=b}, a8Y:function a8Y(a,b){this.a=a this.b=b}, a8Z:function a8Z(a){this.a=a}, a94:function a94(){}, a95:function a95(){}, a98:function a98(a){this.a=a}, a97:function a97(a,b){this.a=a this.b=b}, a96:function a96(a){this.a=a}, zn:function zn(a){this.a=a}, jg:function jg(a){this.a=a this.b=!1}, QV:function QV(a,b,c,d,e,f,g,h){var _=this _.d=a _.e=b _.f=c _.r=d _.x=e _.y=f _.z=g _.Q=!1 _.ch="" _.a=_.db=null _.b=h _.c=null}, afv:function afv(a){this.a=a}, afu:function afu(a,b){this.a=a this.b=b}, afr:function afr(a){this.a=a}, afs:function afs(a,b){this.a=a this.b=b}, aft:function aft(a){this.a=a}, afI:function afI(){}, afG:function afG(a){this.a=a}, afE:function afE(){}, afF:function afF(a,b){this.a=a this.b=b}, afC:function afC(a,b){this.a=a this.b=b}, afH:function afH(a){this.a=a}, afD:function afD(a){this.a=a}, afy:function afy(){}, afz:function afz(){}, afA:function afA(a){this.a=a}, afx:function afx(a,b){this.a=a this.b=b}, afB:function afB(a){this.a=a}, afw:function afw(a,b){this.a=a this.b=b}, afK:function afK(a){this.a=a}, afL:function afL(a,b){this.a=a this.b=b}, afJ:function afJ(a){this.a=a}, afM:function afM(a,b){this.a=a this.b=b}, afP:function afP(a){this.a=a}, afO:function afO(a,b){this.a=a this.b=b}, afN:function afN(a){this.a=a}, CL:function(a,b,c){if(a==null||b==null)return a==b return a>b-c&&a=65&&a<=90))s=a>=97&&a<=122 else s=!0 return s}, asm:function(a,b){var s=a.length,r=b+2 if(s"));r.q();)if(!J.d(r.d,s))return!1 return!0}, aG0:function(a,b){var s=C.b.eF(a,null) if(s<0)throw H.a(P.bc(H.c(a)+" contains no null elements.")) a[s]=b}, asA:function(a,b){var s=C.b.eF(a,b) if(s<0)throw H.a(P.bc(H.c(a)+" contains no elements matching "+b.j(0)+".")) a[s]=null}, aF9:function(a,b){var s,r for(s=new H.hD(a),s=new H.bj(s,s.gl(s),t.Hz.h("bj")),r=0;s.q();)if(s.d===b)++r return r}, ahG:function(a,b,c){var s,r,q if(b.length===0)for(s=0;!0;){r=C.c.i9(a,"\n",s) if(r===-1)return a.length-s>=c?s:null if(r-s>=c)return s s=r+1}r=C.c.eF(a,b) for(;r!==-1;){q=r===0?0:C.c.vi(a,"\n",r-1)+1 if(c===r-q)return q r=C.c.i9(a,b,r+1)}return null}},G={Ya:function Ya(){}, cl:function(a,b,c,d,e,f,g){var s=new G.pa(c,e,a,C.mW,b,d,C.aw,C.N,new R.by(H.b([],t.e),t.l),new R.by(H.b([],t.u),t.wi)) s.r=g.ut(s.gF6()) s.yE(f==null?c:f) return s}, aj0:function(a,b,c){var s=new G.pa(-1/0,1/0,a,C.mX,null,null,C.aw,C.N,new R.by(H.b([],t.e),t.l),new R.by(H.b([],t.u),t.wi)) s.r=c.ut(s.gF6()) s.yE(b) return s}, L3:function L3(a){this.b=a}, D7:function D7(a){this.b=a}, pa:function pa(a,b,c,d,e,f,g,h,i,j){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.x=_.r=null _.y=$ _.z=null _.Q=g _.ch=$ _.cx=h _.bL$=i _.bq$=j}, abf:function abf(a,b,c,d,e){var _=this _.b=a _.c=b _.d=c _.e=d _.a=e}, L0:function L0(){}, L1:function L1(){}, L2:function L2(){}, a8_:function(){var s=E.apW(),r=new DataView(new ArrayBuffer(8)) s=new G.a7Z(s,r) s.c=H.cK(r.buffer,0,null) return s}, a7Z:function a7Z(a,b){this.a=a this.b=b this.c=$}, xK:function xK(a){this.a=a this.b=0}, a1r:function a1r(){this.b=this.a=null}, vA:function vA(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e}, Md:function Md(){}, aFl:function(a){switch(a){case C.o:return C.n case C.n:return C.o default:throw H.a(H.j(u.I))}}, bW:function(a){switch(a){case C.A:case C.y:return C.n case C.L:case C.P:return C.o default:throw H.a(H.j(u.I))}}, alL:function(a){switch(a){case C.p:return C.L case C.m:return C.P default:throw H.a(H.j(u.I))}}, aFm:function(a){switch(a){case C.A:return C.y case C.P:return C.L case C.y:return C.A case C.L:return C.P default:throw H.a(H.j(u.I))}}, alq:function(a){switch(a){case C.A:case C.L:return!0 case C.y:case C.P:return!1 default:throw H.a(H.j(u.I))}}, qK:function qK(a,b){this.a=a this.b=b}, Dj:function Dj(a){this.b=a}, KA:function KA(a){this.b=a}, pg:function pg(a){this.b=a}, arV:function(a){var s,r,q,p,o,n,m,l=null,k=H.b([],t.O_) for(s=a.length,r=l,q="",p=0;p0,b,i,q)}, FQ:function FQ(a){this.b=a}, lI:function lI(a,b,c,d,e,f,g,h,i,j,k,l){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l}, Jq:function Jq(a,b,c,d,e,f,g,h,i,j){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.r=f _.x=g _.y=h _.z=i _.Q=j}, rs:function rs(a,b,c){this.a=a this.b=b this.c=c}, Jr:function Jr(a,b,c){var _=this _.c=a _.d=b _.a=c _.b=null}, ob:function ob(){}, kc:function kc(a,b){this.c9$=a this.an$=b this.a=null}, yA:function yA(a){this.a=a}, dj:function dj(){}, a2X:function a2X(){}, a2Y:function a2Y(a,b){this.a=a this.b=b}, PD:function PD(){}, PE:function PE(){}, a_5:function a_5(){}, n:function n(a){this.a=a}, q:function q(a){this.a=a}, Nn:function Nn(){}, ank:function(a,b,c,d,e){return new G.uw(b,e,a,c,d,null,null)}, anj:function(a,b,c,d){return new G.uv(a,d,b,c,null,null)}, EK:function EK(a,b){this.a=a this.b=b}, mx:function mx(a,b){this.a=a this.b=b}, om:function om(a,b){this.a=a this.b=b}, FZ:function FZ(){}, q_:function q_(){}, Zi:function Zi(a){this.a=a}, Zh:function Zh(a){this.a=a}, Zg:function Zg(a,b){this.a=a this.b=b}, p9:function p9(){}, SI:function SI(){}, uw:function uw(a,b,c,d,e,f,g){var _=this _.r=a _.x=b _.y=c _.c=d _.d=e _.e=f _.a=g}, KY:function KY(a,b){var _=this _.z=null _.e=_.d=_.Q=$ _.cc$=a _.a=null _.b=b _.c=null}, a8n:function a8n(){}, uv:function uv(a,b,c,d,e,f){var _=this _.r=a _.x=b _.c=c _.d=d _.e=e _.a=f}, KX:function KX(a,b){var _=this _.dx=null _.e=_.d=$ _.cc$=a _.a=null _.b=b _.c=null}, a8m:function a8m(){}, ux:function ux(a,b,c,d,e,f,g,h,i,j,k,l){var _=this _.r=a _.x=b _.y=c _.z=d _.Q=e _.ch=f _.cx=g _.cy=h _.c=i _.d=j _.e=k _.a=l}, KZ:function KZ(a,b){var _=this _.fx=_.fr=_.dy=_.dx=null _.e=_.d=$ _.cc$=a _.a=null _.b=b _.c=null}, a8o:function a8o(){}, a8p:function a8p(){}, a8q:function a8q(){}, a8r:function a8r(){}, tC:function tC(){}, aFb:function(a){return a.cb$===0}, KD:function KD(){}, fH:function fH(){}, yh:function yh(a,b,c,d){var _=this _.d=a _.a=b _.b=c _.cb$=d}, j0:function j0(a,b,c,d,e){var _=this _.d=a _.e=b _.a=c _.b=d _.cb$=e}, iR:function iR(a,b,c,d,e,f){var _=this _.d=a _.e=b _.f=c _.a=d _.b=e _.cb$=f}, nT:function nT(a,b,c,d){var _=this _.d=a _.a=b _.b=c _.cb$=d}, Kw:function Kw(a,b,c,d){var _=this _.d=a _.a=b _.b=c _.cb$=d}, u0:function u0(){}, art:function(a,b){return b}, apE:function(a,b){var s=P.akn(t.S,t.Dv),r=($.b5+1)%16777215 $.b5=r return new G.rt(b,s,r,a,C.a1,P.be(t.t))}, aB1:function(a,b,c,d,e){if(b===e-1)return d return d+(d-c)/(b-a+1)*(e-b-1)}, azd:function(a,b){return new G.wr(b,a,null)}, a5Y:function a5Y(){}, Bk:function Bk(a){this.a=a}, a5Z:function a5Z(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.f=d _.r=e}, Ju:function Ju(){}, ru:function ru(){}, Js:function Js(a,b){this.d=a this.a=b}, rt:function rt(a,b,c,d,e,f){var _=this _.y2=a _.ac=b _.aN=_.at=null _.aI=!1 _.dx=null _.dy=!1 _.a=_.fr=null _.b=c _.c=null _.d=$ _.e=d _.f=null _.r=e _.x=f _.z=_.y=null _.Q=!1 _.ch=!0 _.db=_.cy=_.cx=!1}, a62:function a62(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, a60:function a60(){}, a61:function a61(a,b){this.a=a this.b=b}, a6_:function a6_(a,b,c){this.a=a this.b=b this.c=c}, a63:function a63(a,b){this.a=a this.b=b}, wr:function wr(a,b,c){this.f=a this.b=b this.a=c}, Dp:function Dp(){}, T2:function T2(){}, T3:function T3(){}, aB3:function(a,b,c){return new G.rv(c,a,b)}, JF:function JF(){}, rv:function rv(a,b,c){this.c=a this.a=b this.b=c}, l1:function l1(){}, pu:function pu(){}, eb:function eb(a,b){this.a=a this.b=b}, no:function no(a,b){var _=this _.d=a _.e=null _.f=!1 _.a=null _.b=b _.c=!1}, arQ:function(a,b){switch(b){case C.ap:return a case C.an:case C.aJ:case C.bq:return(a|1)>>>0 case C.aU:return a===0?1:a default:throw H.a(H.j(u.I))}}, ap7:function(a,b){return P.d9(function(){var s=a,r=b var q=0,p=1,o,n,m,l,k,j,i,h,g,f,e,d,c,a0,a1,a2,a3,a4,a5,a6,a7,a8 return function $async$ap7(a9,b0){if(a9===1){o=b0 q=p}while(true)switch(q){case 0:n=s.length,m=0 case 2:if(!(m").b(a))return a.ak(b) return a}, de:function de(a){this.b=a}, GA:function GA(){}, A7:function A7(a,b){this.a=a this.c=b}, fe:function fe(a,b){this.a=a this.$ti=b}, ajU:function(a,b,c,d,e){var s=null,r=H.b([],t.Zt),q=$.R,p=S.xD(C.by),o=H.b([],t.fy),n=$.R return new V.nq(a,!0,b,s,r,new N.aY(s,e.h("aY>")),new N.aY(s,t.A),new S.qv(),s,new P.aH(new P.a1(q,e.h("a1<0?>")),e.h("aH<0?>")),p,o,d,new B.cZ(s,new P.a7(t.V),t.XR),new P.aH(new P.a1(n,e.h("a1<0?>")),e.h("aH<0?>")),e.h("nq<0>"))}, nq:function nq(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){var _=this _.c_=a _.cl=b _.A=c _.go=d _.id=!1 _.k2=_.k1=null _.k3=e _.k4=f _.r1=g _.r2=h _.rx=$ _.ry=null _.x1=$ _.eg$=i _.z=j _.ch=_.Q=null _.cx=k _.db=_.cy=null _.e=l _.a=null _.b=m _.c=n _.d=o _.$ti=p}, wR:function wR(){}, AM:function AM(){}, hL:function(a,b,c){var s,r,q,p,o,n=a==null if(n&&b==null)return null if(n)return b.a4(0,c) if(b==null)return a.a4(0,1-c) if(a instanceof V.X&&b instanceof V.X)return V.anV(a,b,c) if(a instanceof V.fm&&b instanceof V.fm)return V.ayv(a,b,c) n=P.aa(a.gdX(a),b.gdX(b),c) n.toString s=P.aa(a.gdZ(a),b.gdZ(b),c) s.toString r=P.aa(a.geP(a),b.geP(b),c) r.toString q=P.aa(a.geQ(),b.geQ(),c) q.toString p=P.aa(a.gcA(a),b.gcA(b),c) p.toString o=P.aa(a.gcH(a),b.gcH(b),c) o.toString return new V.m0(n,s,r,q,p,o)}, ayu:function(a,b,c,d){return new V.X(b,d,c,a)}, VX:function(a,b){return new V.X(a.a/b,a.b/b,a.c/b,a.d/b)}, anV:function(a,b,c){var s,r,q,p=P.aa(a.a,b.a,c) p.toString s=P.aa(a.b,b.b,c) s.toString r=P.aa(a.c,b.c,c) r.toString q=P.aa(a.d,b.d,c) q.toString return new V.X(p,s,r,q)}, ayv:function(a,b,c){var s,r,q,p=P.aa(a.a,b.a,c) p.toString s=P.aa(a.b,b.b,c) s.toString r=P.aa(a.c,b.c,c) r.toString q=P.aa(a.d,b.d,c) q.toString return new V.fm(p,s,r,q)}, dr:function dr(){}, X:function X(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, fm:function fm(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, m0:function m0(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f}, apl:function(a,b){var s,r,q,p,o,n,m,l,k,j,i,h={} h.a=b if(a==null)a=C.h5 s=J.ag(a) r=s.gl(a)-1 q=P.b6(0,null,!1,t.LQ) p=0<=r while(!0){if(!!1)break o=s.i(a,0) n=h.a[0] o.toString n.gdN(n) break}while(!0){if(!!1)break o=s.i(a,r) m=h.a[-1] o.toString m.gdN(m) break}h.b=$ l=new V.a2b(h) if(p){new V.a2c(h).$1(P.y(t.D2,t.bu)) for(k=0;k<=r;){s.i(a,k).toString;++k}p=!0}else k=0 for(j=0;!1;){n=h.a[j] if(p){i=n.gdN(n) o=J.aS(l.$0(),i) if(o!=null){n.gdN(n) o=null}}else o=null q[j]=V.apk(o,n);++j}s.gl(a) while(!0){if(!!1)break q[j]=V.apk(s.i(a,k),h.a[j]);++j;++k}return new H.cm(q,H.Y(q).h("cm<1,bM>"))}, apk:function(a,b){var s,r=a==null?A.J4(b.gdN(b),null):a,q=b.gaf7(),p=A.J2() q.gws() p.r2=q.gws() p.d=!0 q.gAb(q) s=q.gAb(q) p.b6(C.BT,!0) p.b6(C.BV,s) q.gwd(q) p.b6(C.lU,q.gwd(q)) q.gA7(q) p.b6(C.lY,q.gA7(q)) q.glt() p.b6(C.BY,q.glt()) q.gCt() p.b6(C.lP,q.gCt()) q.gwr() p.b6(C.BZ,q.gwr()) q.gBN() p.b6(C.BU,q.gBN()) q.gqC(q) p.b6(C.lO,q.gqC(q)) q.gB9() p.b6(C.lS,q.gB9()) q.gBa(q) p.b6(C.hO,q.gBa(q)) q.gk7(q) s=q.gk7(q) p.b6(C.hP,!0) p.b6(C.hM,s) q.gBx() p.b6(C.BW,q.gBx()) q.glA() p.b6(C.lN,q.glA()) q.gC0(q) p.b6(C.lX,q.gC0(q)) q.gBq(q) p.b6(C.lZ,q.gBq(q)) q.gBo() p.b6(C.lW,q.gBo()) q.gwb() p.b6(C.lR,q.gwb()) q.gC1() p.b6(C.lV,q.gC1()) q.gBQ() p.b6(C.lT,q.gBQ()) q.gqd() p.sqd(q.gqd()) q.gn_() p.sn_(q.gn_()) q.gCD() s=q.gCD() p.b6(C.hQ,!0) p.b6(C.hN,s) q.gfn(q) p.b6(C.lQ,q.gfn(q)) q.gBO(q) p.aN=q.gBO(q) p.d=!0 q.gm(q) p.aI=q.gm(q) p.d=!0 q.gBy() p.P=q.gBy() p.d=!0 q.gAw() p.b4=q.gAw() p.d=!0 q.gBr(q) p.bD=q.gBr(q) p.d=!0 q.gbt(q) p.aE=q.gbt(q) p.d=!0 q.ghC() p.shC(q.ghC()) q.giZ() p.siZ(q.giZ()) q.gnC() p.snC(q.gnC()) q.gnD() p.snD(q.gnD()) q.gnE() p.snE(q.gnE()) q.gnB() p.snB(q.gnB()) q.gqo() p.sqo(q.gqo()) q.gqm() p.sqm(q.gqm()) q.gns(q) p.sns(0,q.gns(q)) q.gnt(q) p.snt(0,q.gnt(q)) q.gnA(q) p.snA(0,q.gnA(q)) q.gny() p.sny(q.gny()) q.gnw() p.snw(q.gnw()) q.gnz() p.snz(q.gnz()) q.gnx() p.snx(q.gnx()) q.gnF() p.snF(q.gnF()) q.gnG() p.snG(q.gnG()) q.gnu() p.snu(q.gnu()) q.gqn() p.sqn(q.gqn()) q.gnv() p.snv(q.gnv()) r.jc(0,C.h5,p) r.sb8(0,b.gb8(b)) r.sc0(0,b.gc0(b)) r.id=b.gaf9() return r}, EC:function EC(){}, I8:function I8(a,b,c,d,e,f){var _=this _.G=a _.a8=b _.aJ=c _.br=d _.cW=e _.lm=_.ef=_.eZ=_.a2=null _.v$=f _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, a2c:function a2c(a){this.a=a}, a2b:function a2b(a){this.a=a}, Ib:function Ib(a){var _=this _.F=a _.k4=_.k3=_.N=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, HR:function HR(a){this.a=a}, JW:function(a){var s=0,r=P.af(t.H) var $async$JW=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)switch(s){case 0:s=2 return P.ak(C.bo.cF("SystemSound.play",a.b,t.H),$async$JW) case 2:return P.ad(null,r)}}) return P.ae($async$JW,r)}, JV:function JV(a){this.b=a}, fA:function fA(){}, xk:function xk(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){var _=this _.c_=a _.cl=b _.aK=c _.cw=d _.aq=e _.A=f _.go=g _.id=!1 _.k2=_.k1=null _.k3=h _.k4=i _.r1=j _.r2=k _.rx=$ _.ry=null _.x1=$ _.eg$=l _.z=m _.ch=_.Q=null _.cx=n _.db=_.cy=null _.e=o _.a=null _.b=p _.c=q _.d=r _.$ti=s}, aAQ:function(){if($.apB)$.apB=!1 return $.ate()}, a4O:function(){var s=0,r=P.af(t.gZ),q,p=2,o,n=[],m,l,k,j,i,h var $async$a4O=P.a9(function(a,b){if(a===1){o=b s=p}while(true)switch(s){case 0:s=$.r5==null?3:4 break case 3:$.r5=new P.aH(new P.a1($.R,t.Wy),t.uP) p=6 s=9 return P.ak(V.a4N(),$async$a4O) case 9:m=b $.r5.ci(0,new V.r4(m)) p=2 s=8 break case 6:p=5 h=o i=H.U(h) if(t.IT.b(i)){l=i $.r5.hZ(l) k=$.r5.a $.r5=null q=k s=1 break}else throw h s=8 break case 5:s=2 break case 8:case 4:q=$.r5.a s=1 break case 1:return P.ad(q,r) case 2:return P.ac(o,r)}}) return P.ae($async$a4O,r)}, a4N:function(){var s=0,r=P.af(t.xS),q,p,o,n,m,l var $async$a4N=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:s=3 return P.ak(V.aAQ().qS(0),$async$a4N) case 3:m=b l=P.y(t.X,t.ub) for(p=J.k(m),o=J.as(p.gaj(m));o.q();){n=o.gw(o) l.n(0,J.uq(n,8),p.i(m,n))}q=l s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$a4N,r)}, r4:function r4(a){this.a=a}, a4L:function a4L(){}, JC:function(a,b,c,d){var s=c==null,r=s?0:c if(a<0)H.e(P.cN("Offset may not be negative, was "+a+".")) else if(!s&&c<0)H.e(P.cN("Line may not be negative, was "+H.c(c)+".")) else if(b<0)H.e(P.cN("Column may not be negative, was "+b+".")) return new V.i6(d,a,r,b)}, i6:function i6(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, JE:function JE(){}, eW:function eW(){}, mr:function mr(a,b){this.a=a this.b=b}, uI:function uI(a){this.a=a}, wE:function wE(a){this.a=a}, Nv:function Nv(a,b,c,d,e,f,g,h,i,j,k){var _=this _.d=a _.e=b _.f=c _.r=d _.x=e _.y=f _.z=g _.Q=h _.ch=i _.cx=j _.db=_.cy="" _.a=_.fr=null _.b=k _.c=null}, ac3:function ac3(){}, abz:function abz(a){this.a=a}, abJ:function abJ(){}, abK:function abK(){}, abL:function abL(a){this.a=a}, abI:function abI(a,b){this.a=a this.b=b}, abS:function abS(a){this.a=a}, abH:function abH(){}, abT:function abT(a){this.a=a}, abG:function abG(a){this.a=a}, abU:function abU(a){this.a=a}, abV:function abV(a){this.a=a}, abF:function abF(a){this.a=a}, abW:function abW(){}, abX:function abX(a,b){this.a=a this.b=b}, abY:function abY(a){this.a=a}, abE:function abE(a){this.a=a}, abZ:function abZ(a,b){this.a=a this.b=b}, abM:function abM(a){this.a=a}, abD:function abD(a){this.a=a}, abN:function abN(a,b){this.a=a this.b=b}, abO:function abO(a){this.a=a}, abC:function abC(a){this.a=a}, abP:function abP(a,b){this.a=a this.b=b}, abQ:function abQ(a){this.a=a}, abB:function abB(a){this.a=a}, abR:function abR(){}, ac0:function ac0(){}, ac1:function ac1(a,b){this.a=a this.b=b}, ac_:function ac_(a){this.a=a}, ac2:function ac2(a,b){this.a=a this.b=b}, abA:function abA(a){this.a=a}, aby:function aby(a,b){this.a=a this.b=b}, abw:function abw(a,b){this.a=a this.b=b}, abx:function abx(a){this.a=a}, ac6:function ac6(a){this.a=a}, ac5:function ac5(a,b){this.a=a this.b=b}, ac4:function ac4(a){this.a=a}, ow:function ow(a,b,c,d){var _=this _.c=a _.d=b _.e=c _.a=d}},S={ xD:function(a){var s=new S.xC(new R.by(H.b([],t.e),t.l),new R.by(H.b([],t.u),t.wi),0) s.c=a if(a==null){s.a=C.N s.b=0}return s}, cy:function(a,b,c){var s=new S.vs(b,a,c) s.Ka(b.gbg(b)) b.dh(s.ga6n()) return s}, akz:function(a,b,c){var s,r,q=new S.or(a,b,c,new R.by(H.b([],t.e),t.l),new R.by(H.b([],t.u),t.wi)) if(J.d(a.gm(a),b.gm(b))){q.a=b q.b=null s=b}else{if(a.gm(a)>b.gm(b))q.c=C.mR else q.c=C.mQ s=a}s.dh(q.gmG()) s=q.gzG() q.a.aQ(0,s) r=q.b if(r!=null){r.dm() r=r.bq$ r.b=!0 r.a.push(s)}return q}, anl:function(a,b,c){return new S.uC(a,b,new R.by(H.b([],t.e),t.l),new R.by(H.b([],t.u),t.wi),0,c.h("uC<0>"))}, KV:function KV(){}, KW:function KW(){}, kO:function kO(){}, xC:function xC(a,b,c){var _=this _.c=_.b=_.a=null _.bL$=a _.bq$=b _.bS$=c}, i1:function i1(a,b,c){this.a=a this.bL$=b this.bS$=c}, vs:function vs(a,b,c){var _=this _.a=a _.b=b _.c=c _.d=null}, QB:function QB(a){this.b=a}, or:function or(a,b,c,d,e){var _=this _.a=a _.b=b _.c=null _.d=c _.f=_.e=null _.bL$=d _.bq$=e}, ps:function ps(){}, uC:function uC(a,b,c,d,e,f){var _=this _.a=a _.b=b _.d=_.c=null _.bL$=c _.bq$=d _.bS$=e _.$ti=f}, zM:function zM(){}, zN:function zN(){}, zO:function zO(){}, LX:function LX(){}, OH:function OH(){}, OI:function OI(){}, OJ:function OJ(){}, Pd:function Pd(){}, Pe:function Pe(){}, Qy:function Qy(){}, Qz:function Qz(){}, QA:function QA(){}, uB:function uB(){}, uA:function uA(){}, mp:function mp(){}, kN:function kN(){}, F5:function F5(a){this.b=a}, cG:function cG(){}, xf:function xf(){}, w4:function w4(a){this.b=a}, qC:function qC(){}, a1y:function a1y(a,b){this.a=a this.b=b}, hb:function hb(a,b){this.a=a this.b=b}, N0:function N0(){}, azp:function(){return new T.w8(new S.a_s(),P.y(t.K,t.Qu))}, a7i:function a7i(a){this.b=a}, wM:function wM(a,b,c){this.x=a this.fx=b this.a=c}, a_s:function a_s(){}, a_v:function a_v(){}, AK:function AK(a){var _=this _.d=$ _.a=null _.b=a _.c=null}, acc:function acc(){}, ayG:function(a,b,c){var s,r,q,p,o,n,m,l,k,j,i,h=null,g=a==null if(g&&b==null)return h s=g?h:a.a r=b==null s=P.K(s,r?h:b.a,c) q=g?h:a.b q=P.K(q,r?h:b.b,c) p=g?h:a.c p=P.K(p,r?h:b.c,c) o=g?h:a.d o=P.K(o,r?h:b.d,c) n=g?h:a.e n=P.K(n,r?h:b.e,c) m=g?h:a.f m=P.aa(m,r?h:b.f,c) l=g?h:a.r l=P.aa(l,r?h:b.r,c) k=g?h:a.x k=P.aa(k,r?h:b.x,c) j=g?h:a.y j=P.aa(j,r?h:b.y,c) i=g?h:a.z i=P.aa(i,r?h:b.z,c) g=g?h:a.Q return new S.vT(s,q,p,o,n,m,l,k,j,i,Y.hf(g,r?h:b.Q,c))}, vT:function vT(a,b,c,d,e,f,g,h,i,j,k){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k}, MO:function MO(){}, aBp:function(a,b,a0){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d=null,c=a==null if(c&&b==null)return d s=c?d:a.a r=b==null s=A.bu(s,r?d:b.a,a0) q=c?d:a.b q=S.axI(q,r?d:b.b,a0) p=c?d:a.c p=P.K(p,r?d:b.c,a0) o=c?d:a.d o=P.K(o,r?d:b.d,a0) n=c?d:a.e n=P.K(n,r?d:b.e,a0) m=c?d:a.f m=P.K(m,r?d:b.f,a0) l=c?d:a.r l=P.K(l,r?d:b.r,a0) k=c?d:a.x k=P.K(k,r?d:b.x,a0) j=c?d:a.z j=P.K(j,r?d:b.z,a0) i=c?d:a.y i=P.K(i,r?d:b.y,a0) h=c?d:a.Q h=P.K(h,r?d:b.Q,a0) g=c?d:a.ch g=P.K(g,r?d:b.ch,a0) f=c?d:a.cx f=P.K(f,r?d:b.cx,a0) e=c?d:a.db e=K.Dt(e,r?d:b.db,a0) c=c?d:a.cy return new S.zb(s,q,p,o,n,m,l,k,i,j,h,g,f,P.aa(c,r?d:b.cy,a0),e)}, zb:function zb(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o}, Qt:function Qt(){}, aBq:function(a,b){return new S.ze(b,a,null)}, ze:function ze(a,b,c){this.c=a this.z=b this.a=c}, BT:function BT(a,b){var _=this _.ch=_.Q=_.z=_.y=_.x=_.r=_.f=_.e=_.d=$ _.db=_.cy=_.cx=null _.fr=_.dy=_.dx=$ _.fx=!1 _.cc$=a _.a=null _.b=b _.c=null}, aff:function aff(a,b){this.a=a this.b=b}, afe:function afe(a){this.a=a}, afg:function afg(a){this.a=a}, afh:function afh(a){this.a=a}, afd:function afd(a,b,c){this.b=a this.c=b this.d=c}, Qu:function Qu(a,b,c,d,e,f,g,h,i,j,k){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.x=f _.y=g _.z=h _.Q=i _.ch=j _.a=k}, Cr:function Cr(){}, anv:function(a,b,c){var s,r,q,p,o,n,m if(c===0)return a if(c===1)return b s=P.K(a.a,b.a,c) r=c<0.5 q=r?a.b:b.b p=F.anu(a.c,b.c,c) o=K.mw(a.d,b.d,c) n=O.anx(a.e,b.e,c) m=T.ayV(a.f,b.f,c) return new S.dM(s,q,p,o,n,m,r?a.x:b.x)}, dM:function dM(a,b,c,d,e,f,g){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.x=g}, t7:function t7(a,b){var _=this _.b=a _.e=_.d=_.c=null _.a=b}, uX:function(a){var s=a.a,r=a.b return new S.aN(s,s,r,r)}, hB:function(a,b){var s,r,q=b==null,p=q?0:b q=q?1/0:b s=a==null r=s?0:a return new S.aN(p,q,r,s?1/0:a)}, aj6:function(a){return new S.aN(0,a.a,0,a.b)}, axI:function(a,b,c){var s,r,q,p=a==null if(p&&b==null)return null if(p)return b.a4(0,c) if(b==null)return a.a4(0,1-c) p=a.a p.toString if(isFinite(p)){p=P.aa(p,b.a,c) p.toString}else p=1/0 s=a.b s.toString if(isFinite(s)){s=P.aa(s,b.b,c) s.toString}else s=1/0 r=a.c r.toString if(isFinite(r)){r=P.aa(r,b.c,c) r.toString}else r=1/0 q=a.d q.toString if(isFinite(q)){q=P.aa(q,b.d,c) q.toString}else q=1/0 return new S.aN(p,s,r,q)}, axJ:function(){var s=H.b([],t._K),r=new E.b8(new Float64Array(16)) r.du() return new S.h_(s,H.b([r],t.Xr),H.b([],t.cR))}, anw:function(a){return new S.h_(a.a,a.b,a.c)}, aN:function aN(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, Tm:function Tm(){}, h_:function h_(a,b,c){this.a=a this.b=b this.c=c}, uY:function uY(a,b){this.c=a this.a=b this.b=null}, fj:function fj(a){this.a=a}, vl:function vl(){}, A:function A(){}, a2a:function a2a(a,b){this.a=a this.b=b}, a29:function a29(a,b){this.a=a this.b=b}, cO:function cO(){}, a28:function a28(a,b,c){this.a=a this.b=b this.c=c}, zQ:function zQ(){}, lL:function lL(a){this.d=this.c=null this.a=a}, rG:function rG(){}, Fw:function Fw(a){this.a=a}, Fy:function Fy(){}, og:function og(a){this.b=a}, xX:function xX(a,b,c,d,e,f,g,h,i,j,k){var _=this _.F=a _.N=b _.S=c _.au=d _.aB=e _.ax=f _.aU=g _.ae=_.b7=null _.bf=h _.bE=i _.bx=j _.aS=null _.cD=k _.k4=_.k3=_.e2=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, a38:function a38(){}, a39:function a39(a,b,c){this.a=a this.b=b this.c=c}, aBG:function(){var s=$.atx() return s}, aCR:function(a,a0){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b=null if(a==null||a.length===0)return C.b.gI(a0) s=t.N r=t.da q=P.fr(b,b,b,s,r) p=P.fr(b,b,b,s,r) o=P.fr(b,b,b,s,r) n=P.fr(b,b,b,s,r) m=P.fr(b,b,b,t.ob,r) for(l=0;l<1;++l){k=a0[l] s=k.a r=C.b7.i(0,s) r=H.c(r==null?s:r)+"_null_" j=k.c i=C.bn.i(0,j) r+=H.c(i==null?j:i) if(q.i(0,r)==null)q.n(0,r,k) r=C.b7.i(0,s) r=H.c(r==null?s:r)+"_null" if(o.i(0,r)==null)o.n(0,r,k) r=C.b7.i(0,s) r=H.c(r==null?s:r)+"_" i=C.bn.i(0,j) r+=H.c(i==null?j:i) if(p.i(0,r)==null)p.n(0,r,k) r=C.b7.i(0,s) s=r==null?s:r if(n.i(0,s)==null)n.n(0,s,k) s=C.bn.i(0,j) if(s==null)s=j if(m.i(0,s)==null)m.n(0,s,k)}for(h=b,g=h,f=0;f") s=P.an(new H.Z(b,new S.a6P(),s),!1,s.h("av.E"))}else s=null return new S.yS(b,c,a,s,null)}, i8:function i8(a){this.c=a}, eT:function eT(a,b){this.a=a this.b=b}, yS:function yS(a,b,c,d,e){var _=this _.c=a _.d=b _.r=c _.z=d _.a=e}, a6O:function a6O(){}, a6P:function a6P(){}, Qd:function Qd(a,b,c,d,e,f){var _=this _.y2=a _.ac=!1 _.at=b _.dx=null _.dy=!1 _.a=_.fr=null _.b=c _.c=null _.d=$ _.e=d _.f=null _.r=e _.x=f _.z=_.y=null _.Q=!1 _.ch=!0 _.db=_.cy=_.cx=!1}, aeP:function aeP(a,b){this.a=a this.b=b}, aeO:function aeO(a,b,c){this.a=a this.b=b this.c=c}, aeQ:function aeQ(){}, aeR:function aeR(a){this.a=a}, aeN:function aeN(){}, aeM:function aeM(){}, aeS:function aeS(){}, u5:function u5(a,b){this.a=a this.b=b}, Rv:function Rv(){}, axv:function(a){var s,r="processing",q="cpuUsage" if(a==null)return null s=J.ag(a) if(s.i(a,r)==null)s.n(a,r,P.y(t.X,t.Em)) if(s.i(a,q)==null)s.n(a,q,0) return new S.Da(s.i(a,"goarch"),s.i(a,"goos"),s.i(a,"goVersion"),s.i(a,"version"),s.i(a,"buildedAt"),s.i(a,"commitID"),s.i(a,"uptime"),s.i(a,"goMaxProcs"),s.i(a,q),s.i(a,"routineCount"),s.i(a,"threadCount"),s.i(a,"rssHumanize"),s.i(a,"swapHumanize"),P.qb(s.i(a,r),t.X,t.Em))}, Da:function Da(a,b,c,d,e,f,g,h,i,j,k,l,m,n){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n}, cw:function cw(a,b){this.a=a this.b=b}, uJ:function uJ(a){this.a=a}, L7:function L7(a){this.a=null this.b=a this.c=null}, a8v:function a8v(a){this.a=a}, a8w:function a8w(a,b,c){this.a=a this.b=b this.c=c}, a8x:function a8x(a){this.a=a}, a8u:function a8u(a){this.a=a}, a8y:function a8y(a){this.a=a}, KN:function KN(a,b,c,d){var _=this _.c=a _.d=b _.e=c _.a=d}, a86:function a86(){}, a89:function a89(a,b){this.a=a this.b=b}, a88:function a88(a,b){this.a=a this.b=b}, a8a:function a8a(){}, a8b:function a8b(a,b){this.a=a this.b=b}, a87:function a87(a){this.a=a}, lT:function lT(a,b,c,d,e,f){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.a=f}, a81:function a81(a,b){this.a=a this.b=b}, a82:function a82(a,b){this.a=a this.b=b}, a83:function a83(a,b,c){this.a=a this.b=b this.c=c}, CK:function(a){var s=C.c.W(u.s,a>>>6)+(a&63),r=s&1,q=C.c.W(u.M,s>>>1) return q>>>4&-r|q&15&r-1}, ui:function(a,b){var s=C.c.W(u.s,1024+(a&1023))+(b&1023),r=s&1,q=C.c.W(u.M,s>>>1) return q>>>4&-r|q&15&r-1}, aim:function(a,b){var s if(a==null)return b==null if(b==null||a.gl(a)!==b.gl(b))return!1 if(a===b)return!0 for(s=a.gM(a);s.q();)if(!b.C(0,s.gw(s)))return!1 return!0}, cx:function(a,b){var s if(a==null)return b==null if(b==null||a.length!==b.length)return!1 if(a===b)return!0 for(s=0;s"))}, vv:function vv(a,b,c,d,e,f,g,h,i,j,k){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k}, AB:function AB(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.$ti=e}, LZ:function LZ(){}, FB:function FB(a,b,c,d,e,f){var _=this _.f=a _.r=b _.x=c _.y=d _.b=e _.a=f}, Qg:function Qg(a,b){this.c=a this.a=b this.b=!0}, ok:function ok(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,c0,c1,c2,c3,c4,c5,c6){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.x=f _.y=g _.z=h _.Q=i _.ch=j _.cx=k _.cy=l _.db=m _.dx=n _.dy=o _.fr=p _.fx=q _.fy=r _.go=s _.id=a0 _.k1=a1 _.k2=a2 _.k3=a3 _.k4=a4 _.r1=a5 _.r2=a6 _.rx=a7 _.ry=a8 _.x1=a9 _.x2=b0 _.y2=b1 _.ac=b2 _.at=b3 _.aN=b4 _.aI=b5 _.b4=b6 _.aR=b7 _.v=b8 _.A=b9 _.aE=c0 _.aA=c1 _.cv=c2 _.aY=c3 _.bl=c4 _.F=c5 _.a=c6}, BJ:function BJ(a,b,c,d,e,f,g){var _=this _.e=_.d=null _.r=_.f=!1 _.y=_.x=$ _.z=a _.ae$=b _.bf$=c _.bE$=d _.bx$=e _.aS$=f _.a=null _.b=g _.c=null}, aeV:function aeV(a,b){this.a=a this.b=b}, aeU:function aeU(a,b){this.a=a this.b=b}, aeX:function aeX(a){this.a=a}, aeY:function aeY(a,b,c){this.a=a this.b=b this.c=c}, aeZ:function aeZ(a){this.a=a}, af_:function af_(a){this.a=a}, af0:function af0(a,b){this.a=a this.b=b}, aeW:function aeW(a){this.a=a}, agd:function agd(){}, Cp:function Cp(){}, Ud:function Ud(){}, Ue:function Ue(a,b){this.a=a this.b=b}, Uf:function Uf(a,b){this.a=a this.b=b}, Ug:function Ug(a,b){this.a=a this.b=b}, Va:function(a,b,c){var s=null,r=a==null if(r&&b==null)return s if(r){r=b.dO(s,c) return r==null?b:r}if(b==null){r=a.dP(s,c) return r==null?a:r}if(c===0)return a if(c===1)return b r=b.dO(a,c) if(r==null)r=a.dP(b,c) if(r==null)if(c<0.5){r=a.dP(s,c*2) if(r==null)r=a}else{r=b.dO(s,(c-0.5)*2) if(r==null)r=b}return r}, f_:function f_(){}, kS:function kS(){}, M3:function M3(){}, a3o:function a3o(a,b){this.a=a this.b=b}, v0:function v0(a){this.a=a}, TE:function TE(a){this.a=a}, axR:function(a,b){var s=new Z.v7(new Z.TX(),new Z.TY(),P.y(t.X,b.h("bm")),b.h("v7<0>")) s.J(0,a) return s}, v7:function v7(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.$ti=d}, TX:function TX(){}, TY:function TY(){}, e_:function e_(a,b,c,d,e){var _=this _.c=a _.d=b _.e=c _.f=d _.a=e}},E={ UW:function(a,b){if(a==null)return null return a instanceof E.dq?a.e8(b):a}, dq:function dq(a,b,c,d,e,f,g,h,i,j,k,l){var _=this _.b=a _.c=b _.d=c _.e=d _.f=e _.r=f _.x=g _.y=h _.z=i _.Q=j _.ch=k _.a=l}, UX:function UX(a){this.a=a}, LO:function LO(){}, pA:function pA(a,b,c,d,e,f,g,h,i,j,k,l,m){var _=this _.db=a _.dx=b _.c=c _.d=d _.e=e _.f=f _.r=g _.y=h _.z=i _.Q=j _.ch=k _.cx=l _.a=m}, zU:function zU(a,b,c){var _=this _.dx=$ _.dy=0 _.f=_.e=_.d=null _.x=_.r=$ _.y=a _.z=!1 _.Q=$ _.by$=b _.a=null _.b=c _.c=null}, a9I:function a9I(a){this.a=a}, a9H:function a9H(){}, afb:function afb(a){this.b=a}, uG:function uG(a,b,c){this.e=a this.k2=b this.a=c}, zy:function zy(a){this.a=null this.b=a this.c=null}, L6:function L6(a,b){this.c=a this.a=b}, OQ:function OQ(a,b,c){var _=this _.G=null _.a8=a _.aJ=b _.v$=c _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, np:function np(a,b){this.b=a this.a=b}, Gy:function Gy(a,b){this.b=a this.a=b}, a9U:function a9U(){}, FC:function FC(a,b,c,d){var _=this _.c=a _.Q=b _.k3=c _.a=d}, azD:function(a,b,c){var s,r,q,p,o,n,m,l,k=null,j=a==null if(j&&b==null)return k s=j?k:a.a r=b==null s=P.K(s,r?k:b.a,c) q=j?k:a.b q=P.aa(q,r?k:b.b,c) p=j?k:a.c p=A.bu(p,r?k:b.c,c) o=j?k:a.d o=A.bu(o,r?k:b.d,c) n=j?k:a.e n=T.ld(n,r?k:b.e,c) m=j?k:a.f m=T.ld(m,r?k:b.f,c) l=j?k:a.r l=P.aa(l,r?k:b.r,c) if(c<0.5)j=j?k:a.x else j=r?k:b.x return new E.x8(s,q,p,o,n,m,l,j)}, x8:function x8(a,b,c,d,e,f,g,h){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h}, NZ:function NZ(){}, apz:function(a,b,c){return new E.yk(a,b,c,null)}, yk:function yk(a,b,c,d){var _=this _.c=a _.d=b _.e=c _.a=d}, Pp:function Pp(a){this.a=null this.b=a this.c=null}, tL:function tL(a,b,c,d,e,f,g,h,i,j,k,l,m){var _=this _.db=a _.dx=b _.c=c _.d=d _.e=e _.f=f _.r=g _.y=h _.z=i _.Q=j _.ch=k _.cx=l _.a=m}, NC:function NC(a,b,c){var _=this _.dx=$ _.fr=_.dy=!1 _.go=_.fy=_.fx=$ _.f=_.e=_.d=null _.x=_.r=$ _.y=a _.z=!1 _.Q=$ _.by$=b _.a=null _.b=c _.c=null}, aci:function aci(a){this.a=a}, ack:function ack(a){this.a=a}, acm:function acm(a){this.a=a}, ach:function ach(a){this.a=a}, acj:function acj(a){this.a=a}, acl:function acl(a){this.a=a}, acn:function acn(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, acp:function acp(a,b,c){this.a=a this.b=b this.c=c}, aco:function aco(a,b,c){this.a=a this.b=b this.c=c}, acg:function acg(a){this.a=a}, acv:function acv(a){this.a=a}, acu:function acu(a){this.a=a}, act:function act(a){this.a=a}, acr:function acr(a){this.a=a}, acs:function acs(a){this.a=a}, acq:function acq(a){this.a=a}, aqD:function(a,b,c,d,e,f,g){return new E.Qc(d,g,e,c,f,b,a,null)}, aDG:function(a){var s=a.gcs(a).gbz(),r=a.d,q=a.c if(a.e===0)return C.d.a6(Math.abs(q-s),0,1) return Math.abs(s-q)/Math.abs(q-r)}, JX:function JX(a,b,c,d){var _=this _.c=a _.e=b _.f=c _.a=d}, Qc:function Qc(a,b,c,d,e,f,g,h){var _=this _.e=a _.f=b _.r=c _.x=d _.y=e _.z=f _.c=g _.a=h}, Qb:function Qb(a,b,c,d,e,f,g,h,i,j,k,l,m,n){var _=this _.a7=a _.F=b _.N=c _.S=d _.au=e _.aB=f _.ax=g _.aU=h _.b7=0 _.ae=i _.bf=null _.aa1$=j _.aa2$=k _.cI$=l _.a7$=m _.d9$=n _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Qa:function Qa(a,b,c,d,e,f,g,h,i,j){var _=this _.db=a _.e=b _.f=c _.r=d _.x=e _.y=f _.z=g _.Q=h _.c=i _.a=j}, Ao:function Ao(a,b,c,d,e,f){var _=this _.b=a _.c=b _.d=c _.e=d _.f=e _.z=_.y=_.x=_.r=null _.Q=!1 _.a=f}, Lu:function Lu(a){this.a=a}, ti:function ti(a,b){this.a=a this.b=b}, Q8:function Q8(a,b,c,d,e,f,g,h){var _=this _.b4=a _.P=null _.fx=0 _.fy=b _.go=null _.b=c _.c=d _.d=e _.e=f _.r=_.f=null _.x=0 _.z=_.y=null _.Q=!1 _.ch=!0 _.cx=!1 _.db=_.cy=null _.dx=g _.dy=null _.P$=h}, Q7:function Q7(a,b,c,d){var _=this _.f=a _.a=b _.d=c _.P$=d}, yP:function yP(a,b,c,d,e,f){var _=this _.c=a _.d=b _.e=c _.f=d _.ch=e _.a=f}, BI:function BI(a){var _=this _.r=_.f=_.e=_.d=null _.y=_.x=$ _.a=null _.b=a _.c=null}, aeL:function aeL(){}, aeJ:function aeJ(){}, aeK:function aeK(a,b){this.a=a this.b=b}, R4:function R4(){}, R7:function R7(){}, bU:function(a,b,c,d,e,f,g,h){var s,r=null if(b!=null)s=b.a.a else s="" return new E.z_(b,h,new E.a72(c,r,r,r,r,r,r,C.ag,r,r,C.Cz,a,r,g,r,"\u2022",f,!0,r,r,!0,!0,r,d,e,!1,r,r,r,r,r,r,2,r,r,r,C.qp,r,r,!0,r,r,r,r),s,!0,C.dL,r)}, z_:function z_(a,b,c,d,e,f,g){var _=this _.Q=a _.d=b _.e=c _.f=d _.r=e _.x=f _.a=g}, a72:function a72(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,c0,c1,c2,c3,c4){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q _.fr=r _.fx=s _.fy=a0 _.go=a1 _.id=a2 _.k1=a3 _.k2=a4 _.k3=a5 _.k4=a6 _.r1=a7 _.r2=a8 _.rx=a9 _.ry=b0 _.x1=b1 _.x2=b2 _.y1=b3 _.y2=b4 _.ac=b5 _.at=b6 _.aN=b7 _.aI=b8 _.b4=b9 _.P=c0 _.bD=c1 _.aR=c2 _.v=c3 _.A=c4}, a73:function a73(a,b){this.a=a this.b=b}, u7:function u7(a){var _=this _.e=_.d=_.z=null _.f=!1 _.a=null _.b=a _.c=null}, iB:function iB(){}, aCc:function(a,b){var s if(a.r)H.e(P.a4(u.E)) s=new L.pZ(a) s.rw(a) s=new E.tI(a,null,s) s.Xd(a,b,null) return s}, Z2:function Z2(a,b,c){var _=this _.a=a _.b=b _.c=c _.f=0}, Z4:function Z4(a,b,c){this.a=a this.b=b this.c=c}, Z3:function Z3(a,b){this.a=a this.b=b}, Z5:function Z5(a,b,c){this.a=a this.b=b this.c=c}, Lq:function Lq(){}, a99:function a99(a){this.a=a}, zG:function zG(a,b,c){this.a=a this.b=b this.c=c}, tI:function tI(a,b,c){var _=this _.d=$ _.a=a _.b=b _.c=c}, abs:function abs(a,b){this.a=a this.b=b}, Oe:function Oe(a,b){this.a=a this.b=b}, apj:function(a){var s=new E.xQ(a,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, It:function It(){}, dT:function dT(){}, w9:function w9(a){this.b=a}, Iu:function Iu(){}, xQ:function xQ(a,b){var _=this _.G=a _.v$=b _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Ii:function Ii(a,b,c){var _=this _.G=a _.a8=b _.v$=c _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Im:function Im(a,b,c,d){var _=this _.G=a _.a8=b _.aJ=c _.v$=d _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, xO:function xO(){}, I3:function I3(a,b,c,d,e){var _=this _.hw$=a _.iQ$=b _.n5$=c _.uO$=d _.v$=e _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, vt:function vt(){}, nY:function nY(a,b){this.b=a this.c=b}, tY:function tY(){}, I6:function I6(a,b,c){var _=this _.G=a _.a8=null _.aJ=b _.cW=_.br=null _.v$=c _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, I5:function I5(a,b,c){var _=this _.G=a _.a8=null _.aJ=b _.cW=_.br=null _.v$=c _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Bb:function Bb(){}, Ip:function Ip(a,b,c,d,e,f,g,h){var _=this _.B0=a _.B1=b _.cC=c _.cb=d _.cc=e _.G=f _.a8=null _.aJ=g _.cW=_.br=null _.v$=h _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Iq:function Iq(a,b,c,d,e,f){var _=this _.cC=a _.cb=b _.cc=c _.G=d _.a8=null _.aJ=e _.cW=_.br=null _.v$=f _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, EJ:function EJ(a){this.b=a}, Ia:function Ia(a,b,c,d){var _=this _.G=null _.a8=a _.aJ=b _.br=c _.v$=d _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, IA:function IA(a,b){var _=this _.aJ=_.a8=_.G=null _.br=a _.cW=null _.v$=b _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, a3a:function a3a(a){this.a=a}, Ie:function Ie(a,b,c){var _=this _.G=a _.a8=b _.v$=c _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, a2F:function a2F(a){this.a=a}, Ir:function Ir(a,b,c,d,e,f,g,h){var _=this _.bS=a _.bq=b _.bL=c _.bA=d _.cC=e _.cb=f _.G=g _.v$=h _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Ik:function Ik(a,b,c,d,e,f){var _=this _.G=a _.a8=b _.aJ=c _.br=d _.cW=e _.a2=!0 _.v$=f _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Iv:function Iv(a){var _=this _.a8=_.G=0 _.v$=a _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, xS:function xS(a,b,c){var _=this _.G=a _.a8=b _.v$=c _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Il:function Il(a,b){var _=this _.G=a _.v$=b _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, xN:function xN(a,b,c){var _=this _.G=a _.a8=b _.v$=c _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, k7:function k7(a,b){var _=this _.cC=_.bA=_.bL=_.bq=_.bS=null _.G=a _.v$=b _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, xV:function xV(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,d0,d1,d2,d3,d4,d5,d6,d7){var _=this _.G=a _.a8=b _.aJ=c _.br=d _.cW=e _.a2=f _.eZ=g _.ef=h _.lm=i _.dK=j _.c9=k _.an=l _.pV=m _.cI=n _.a7=o _.d9=p _.by=q _.eg=r _.n7=s _.ln=a0 _.B4=a1 _.n4=a2 _.eD=a3 _.B_=a4 _.lj=a5 _.eX=a6 _.lk=a7 _.uN=a8 _.pM=a9 _.bS=b0 _.bq=b1 _.bL=b2 _.bA=b3 _.cC=b4 _.cb=b5 _.cc=b6 _.hw=b7 _.iQ=b8 _.n5=b9 _.uO=c0 _.kb=c1 _.n6=c2 _.aeG=c3 _.aeH=c4 _.pN=c5 _.pO=c6 _.pP=c7 _.aeI=c8 _.aeJ=c9 _.aeK=d0 _.aeL=d1 _.aeM=d2 _.aeN=d3 _.pQ=d4 _.aeO=d5 _.aeP=d6 _.v$=d7 _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, I4:function I4(a,b){var _=this _.G=a _.v$=b _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Ij:function Ij(a){var _=this _.v$=a _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Ic:function Ic(a,b){var _=this _.G=a _.v$=b _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Ig:function Ig(a,b){var _=this _.G=a _.v$=b _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Ih:function Ih(a,b){var _=this _.G=a _.a8=null _.v$=b _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Id:function Id(a,b,c,d,e,f){var _=this _.G=a _.a8=b _.aJ=c _.br=d _.cW=e _.v$=f _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, a2E:function a2E(a){this.a=a}, xP:function xP(a,b,c,d){var _=this _.G=a _.a8=b _.v$=c _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null _.$ti=d}, OO:function OO(){}, OP:function OP(){}, Bc:function Bc(){}, Bd:function Bd(){}, a4o:function a4o(){}, a7q:function a7q(a,b){this.b=a this.a=b}, a_o:function a_o(a){this.a=a}, a6V:function a6V(a){this.a=a}, EQ:function EQ(a,b,c){this.d=a this.e=b this.a=c}, Me:function Me(a){this.a=a}, Mu:function Mu(a){this.a=a}, Mv:function Mv(a){this.a=a}, Mw:function Mw(a){this.a=a}, Mx:function Mx(a){this.a=a}, My:function My(a){this.a=a}, Mz:function Mz(a){this.a=a}, MA:function MA(a){this.a=a}, MB:function MB(a){this.a=a}, MC:function MC(a){this.a=a}, MD:function MD(a){this.a=a}, ME:function ME(a){this.a=a}, MF:function MF(a){this.a=a}, MG:function MG(a){this.a=a}, MH:function MH(a){this.a=a}, NO:function NO(a){this.a=a}, NR:function NR(a){this.a=a}, NU:function NU(a){this.a=a}, NX:function NX(a){this.a=a}, NP:function NP(a){this.a=a}, NQ:function NQ(a){this.a=a}, NS:function NS(a){this.a=a}, NT:function NT(a){this.a=a}, NV:function NV(a){this.a=a}, NW:function NW(a){this.a=a}, ayj:function(){var s=$.asV() return s}, ER:function ER(a,b,c,d){var _=this _.d=a _.e=b _.f=c _.a=d}, GS:function GS(a,b,c,d,e,f){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.a=f}, BS:function BS(a){this.b=a}, afc:function afc(a,b,c){var _=this _.d=a _.e=b _.f=c _.c=_.b=null}, ap8:function(a,b){return new E.qD(b,a,null)}, ap9:function(a){return new E.qD(null,a,null)}, k3:function(a){var s=a.a0(t.bb) return s==null?null:s.f}, qD:function qD(a,b,c){this.f=a this.b=b this.a=c}, aAi:function(a,b,c,d,e,f,g,h,i,j,k){return new E.qJ(a,b,e,i,j,c,k,h,g,d,f)}, aAj:function(a){return new E.iY(new N.aY(null,t.A),null,C.k,a.h("iY<0>"))}, ala:function(a,b){var s=$.D.A$.Q.i(0,a).gD() s.toString return t.x.a(s).ir(b)}, r_:function r_(a,b,c,d,e,f,g,h){var _=this _.a=a _.b=b _.c=c _.d=null _.e=d _.f=e _.x=_.r=0 _.y=null _.z=f _.Q=18 _.ch=g _.dx=_.db=_.cy=_.cx=null _.dy=$ _.P$=h}, qJ:function qJ(a,b,c,d,e,f,g,h,i,j,k){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.y=f _.z=g _.Q=h _.ch=i _.cx=j _.a=k}, iY:function iY(a,b,c,d){var _=this _.f=_.e=_.d=null _.x=_.r=$ _.y=a _.z=!1 _.Q=$ _.by$=b _.a=null _.b=c _.c=null _.$ti=d}, a1X:function a1X(a){this.a=a}, a1W:function a1W(a){this.a=a}, a1S:function a1S(a){this.a=a}, a1T:function a1T(a){this.a=a}, a1P:function a1P(a){this.a=a}, a1Q:function a1Q(a){this.a=a}, a1R:function a1R(a){this.a=a}, a1U:function a1U(a){this.a=a}, a1V:function a1V(a){this.a=a}, a1Z:function a1Z(a){this.a=a}, a1Y:function a1Y(a){this.a=a}, ji:function ji(a,b,c,d,e,f,g,h,i){var _=this _.ax=a _.k2=!1 _.aR=_.at=_.ac=_.y2=_.y1=_.x2=_.x1=_.ry=_.rx=_.r2=_.r1=_.k4=_.k3=null _.z=b _.ch=c _.cx=d _.db=_.cy=null _.dx=!1 _.dy=null _.d=e _.e=f _.a=g _.b=h _.c=i}, jj:function jj(a,b,c,d,e,f,g,h,i){var _=this _.cw=a _.F=_.bl=_.aY=_.cv=_.bi=_.aA=_.bT=_.aE=_.A=_.v=_.aR=null _.k3=_.k2=!1 _.r1=_.k4=null _.z=b _.ch=c _.cx=d _.db=_.cy=null _.dx=!1 _.dy=null _.d=e _.e=f _.a=g _.b=h _.c=i}, tW:function tW(){}, lE:function(a,b,c,d,e){var s=b==null&&e===C.n return new E.Jb(e,b,s,d,a,c,null)}, Jb:function Jb(a,b,c,d,e,f,g){var _=this _.c=a _.f=b _.r=c _.x=d _.y=e _.z=f _.a=g}, a4R:function a4R(a,b,c){this.a=a this.b=b this.c=c}, u2:function u2(a,b,c,d,e){var _=this _.e=a _.f=b _.r=c _.c=d _.a=e}, Bf:function Bf(a,b,c,d){var _=this _.F=a _.N=b _.au=c _.aB=null _.v$=d _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, adz:function adz(a,b){this.a=a this.b=b}, ady:function ady(a,b){this.a=a this.b=b}, Cn:function Cn(){}, jE:function(a,b,c,d,e){var s=0,r=P.af(t.yq),q,p,o,n,m,l var $async$jE=P.a9(function(f,g){if(f===1)return P.ac(g,r) while(true)switch(s){case 0:l=d===C.FJ?"long":"short" if(a===C.FI)p="top" else p=a===C.bM?"center":"bottom" o=U.e4() n=o===C.z?C.t:null o=U.e4() m=o===C.z?C.j:null o=n!=null?n.a:null s=3 return P.ak(C.xi.l1("showToast",P.aj(["msg",b,"length",l,"time",c,"gravity",p,"bgcolor",o,"textcolor",m!=null?m.a:null,"fontSize",null,"webShowClose",!1,"webBgColor",e,"webPosition","right"],t.X,t.z),!1,t.yq),$async$jE) case 3:q=g s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$jE,r)}, Kd:function Kd(a){this.b=a}, Ke:function Ke(a){this.b=a}, T1:function T1(){}, ve:function ve(a){this.a=a}, a1v:function a1v(a,b,c){this.d=a this.e=b this.f=c}, aAP:function(a){var s try{}catch(s){if(t.s4.b(H.U(s)))throw H.a(P.pc("Platform interfaces must not be implemented with `implements`")) else throw s}$.aAO=a}, a4M:function a4M(){}, JS:function JS(a,b,c){this.c=a this.a=b this.b=c}, apW:function(){return new E.Km(new Uint8Array(0),0)}, ki:function ki(){}, Ni:function Ni(){}, Km:function Km(a,b){this.a=a this.b=b}, wS:function(a){var s=new E.b8(new Float64Array(16)) if(s.jZ(a)===0)return null return s}, azs:function(){return new E.b8(new Float64Array(16))}, azt:function(){var s=new E.b8(new Float64Array(16)) s.du() return s}, aoE:function(a){var s,r,q=new Float64Array(16) q[15]=1 s=Math.cos(a) r=Math.sin(a) q[0]=s q[1]=r q[2]=0 q[4]=-r q[5]=s q[6]=0 q[8]=0 q[9]=0 q[10]=1 q[3]=0 q[7]=0 q[11]=0 return new E.b8(q)}, nr:function(a,b,c){var s=new Float64Array(16),r=new E.b8(s) r.du() s[14]=c s[13]=b s[12]=a return r}, aoD:function(a,b,c){var s=new Float64Array(16) s[15]=1 s[10]=c s[5]=b s[0]=a return new E.b8(s)}, b8:function b8(a){this.a=a}, hm:function hm(a){this.a=a}, ic:function ic(a){this.a=a}, v4:function v4(a){this.a=a}, Lr:function Lr(a,b){var _=this _.d=a _.e=null _.f="GET" _.a=null _.b=b _.c=null}, a9c:function a9c(a){this.a=a}, a9a:function a9a(a,b){this.a=a this.b=b}, a9b:function a9b(){}, a9d:function a9d(a){this.a=a}, a9e:function a9e(a){this.a=a}, fU:function(a){if(a==null)return"null" return C.d.ba(a,1)}},K={ aye:function(a){a.a0(t.H5) return null}, EB:function EB(a){this.b=a}, aje:function(a){var s=a.a0(t.WD),r=s==null?null:s.f.c return(r==null?C.bT:r).e8(a)}, ayc:function(a,b,c,d,e,f,g){return new K.vr(g,a,b,c,d,e,f)}, EA:function EA(a,b,c){this.c=a this.d=b this.a=c}, Ap:function Ap(a,b,c){this.f=a this.b=b this.a=c}, vr:function vr(a,b,c,d,e,f,g){var _=this _.r=a _.a=b _.b=c _.c=d _.d=e _.e=f _.f=g}, V1:function V1(a){this.a=a}, xa:function xa(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f}, a0m:function a0m(a){this.a=a}, LW:function LW(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f}, a9K:function a9K(a){this.a=a}, LU:function LU(a,b){this.a=a this.b=b}, a9T:function a9T(a,b,c,d,e,f,g,h,i,j,k,l){var _=this _.Q=a _.ch=b _.a=c _.b=d _.c=e _.d=f _.e=g _.f=h _.r=i _.x=j _.y=k _.z=l}, LV:function LV(){}, ayS:function(a){var s=t.S return new K.hM(C.iC,P.y(s,t.o),P.be(s),a,null,P.y(s,t.r))}, ao9:function(a,b,c){var s=(c-a)/(b-a) return!isNaN(s)?C.d.a6(s,0,1):s}, oC:function oC(a){this.b=a}, n2:function n2(a){this.a=a}, hM:function hM(a,b,c,d,e,f){var _=this _.cx=_.ch=_.Q=_.z=null _.fr=_.dy=$ _.fx=a _.d=b _.e=c _.a=d _.b=e _.c=f}, Xx:function Xx(a,b){this.a=a this.b=b}, Xv:function Xv(a){this.a=a}, Xw:function Xw(a){this.a=a}, anD:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){return new K.DK(a,d,e,m,l,o,n,c,g,i,q,p,h,k,b,f,j)}, axV:function(a,b,c){var s,r,q,p,o,n,m=null,l=a===C.a3?C.t:C.j,k=l.a,j=k>>>16&255,i=k>>>8&255 k&=255 s=P.aI(31,j,i,k) r=P.aI(222,j,i,k) q=P.aI(12,j,i,k) p=P.aI(61,j,i,k) o=P.aI(61,c.gm(c)>>>16&255,c.gm(c)>>>8&255,c.gm(c)&255) n=b.fi(P.aI(222,c.gm(c)>>>16&255,c.gm(c)>>>8&255,c.gm(c)&255)) return K.anD(s,a,m,r,q,m,m,b.fi(P.aI(222,j,i,k)),C.qq,m,n,o,p,m,m,m,m)}, axY:function(a0,a1,a2){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b=null,a=a0==null if(a&&a1==null)return b s=a?b:a0.a r=a1==null s=P.K(s,r?b:a1.a,a2) s.toString q=a?b:a0.b q=P.K(q,r?b:a1.b,a2) p=a?b:a0.c p=P.K(p,r?b:a1.c,a2) p.toString o=a?b:a0.d o=P.K(o,r?b:a1.d,a2) o.toString n=a?b:a0.e n=P.K(n,r?b:a1.e,a2) n.toString m=a?b:a0.f m=P.K(m,r?b:a1.f,a2) l=a?b:a0.r l=P.K(l,r?b:a1.r,a2) k=a?b:a0.y k=P.K(k,r?b:a1.y,a2) j=a?b:a0.z j=V.hL(j,r?b:a1.z,a2) i=a?b:a0.Q i=V.hL(i,r?b:a1.Q,a2) i.toString h=a?b:a0.ch h=K.axX(h,r?b:a1.ch,a2) g=a?b:a0.cx g=K.axW(g,r?b:a1.cx,a2) f=a?b:a0.cy f=A.bu(f,r?b:a1.cy,a2) f.toString e=a?b:a0.db e=A.bu(e,r?b:a1.db,a2) e.toString if(a2<0.5){d=a?b:a0.dx if(d==null)d=C.a3}else{d=r?b:a1.dx if(d==null)d=C.a3}c=a?b:a0.dy c=P.aa(c,r?b:a1.dy,a2) a=a?b:a0.fr return K.anD(s,d,k,q,p,c,j,f,i,P.aa(a,r?b:a1.fr,a2),e,n,o,l,m,g,h)}, axX:function(a,b,c){var s=a==null if(s&&b==null)return null if(s){s=b.a return Y.bd(new Y.dL(P.aI(0,s.gm(s)>>>16&255,s.gm(s)>>>8&255,s.gm(s)&255),0,C.a_),b,c)}if(b==null){s=a.a return Y.bd(new Y.dL(P.aI(0,s.gm(s)>>>16&255,s.gm(s)>>>8&255,s.gm(s)&255),0,C.a_),a,c)}return Y.bd(a,b,c)}, axW:function(a,b,c){if(a==null&&b==null)return null return t.KX.a(Y.hf(a,b,c))}, DK:function DK(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.y=h _.z=i _.Q=j _.ch=k _.cx=l _.cy=m _.db=n _.dx=o _.dy=p _.fr=q}, Lx:function Lx(){}, Mm:function Mm(a,b,c,d,e,f,g){var _=this _.b=a _.c=b _.d=c _.e=d _.f=e _.r=f _.a=g}, tl:function tl(a,b,c,d,e,f,g){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.a=f _.$ti=g}, tm:function tm(a,b){var _=this _.a=null _.b=a _.c=null _.$ti=b}, tk:function tk(a,b,c,d,e,f,g){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.a=f _.$ti=g}, A0:function A0(a,b){var _=this _.e=_.d=$ _.a=null _.b=a _.c=null _.$ti=b}, aac:function aac(a){this.a=a}, Mn:function Mn(a,b,c,d){var _=this _.b=a _.c=b _.d=c _.$ti=d}, hq:function hq(a,b){this.a=a this.$ti=b}, acF:function acF(a,b,c){this.a=a this.c=b this.d=c}, A1:function A1(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4){var _=this _.d2=a _.c_=b _.cl=c _.aK=d _.cw=e _.e3=f _.cE=g _.d8=h _.aq=i _.fl=j _.fm=null _.ll=k _.go=l _.id=!1 _.k2=_.k1=null _.k3=m _.k4=n _.r1=o _.r2=p _.rx=$ _.ry=null _.x1=$ _.eg$=q _.z=r _.ch=_.Q=null _.cx=s _.db=_.cy=null _.e=a0 _.a=null _.b=a1 _.c=a2 _.d=a3 _.$ti=a4}, aae:function aae(a){this.a=a}, aaf:function aaf(){}, aag:function aag(){}, tn:function tn(a,b,c,d,e,f,g,h,i){var _=this _.c=a _.d=b _.f=c _.r=d _.x=e _.z=f _.ch=g _.a=h _.$ti=i}, aad:function aad(a,b,c){this.a=a this.b=b this.c=c}, tM:function tM(a,b,c,d,e){var _=this _.e=a _.f=b _.c=c _.a=d _.$ti=e}, P_:function P_(a,b){var _=this _.G=a _.v$=b _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, Ml:function Ml(){}, jC:function jC(a,b,c,d){var _=this _.f=a _.c=b _.a=c _.$ti=d}, pG:function pG(a,b,c,d,e,f){var _=this _.c=a _.d=b _.r=c _.fx=d _.a=e _.$ti=f}, tj:function tj(a,b){var _=this _.r=_.f=_.e=_.d=null _.x=!1 _.z=_.y=$ _.a=null _.b=a _.c=null _.$ti=b}, aaa:function aaa(a){this.a=a}, aab:function aab(a){this.a=a}, aa4:function aa4(a){this.a=a}, aa5:function aa5(a,b){this.a=a this.b=b}, aa8:function aa8(a){this.a=a}, aa6:function aa6(a,b){this.a=a this.b=b}, aa7:function aa7(a){this.a=a}, aa9:function aa9(a){this.a=a}, Ce:function Ce(){}, MI:function MI(a,b,c,d){var _=this _.c=a _.d=b _.e=c _.a=d}, jY:function jY(){}, Fo:function Fo(){}, Ey:function Ey(){}, H6:function H6(){}, a0R:function a0R(a){this.a=a}, Oc:function Oc(){}, yC:function yC(a,b,c,d,e,f,g){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g}, PH:function PH(){}, aA:function(a){var s,r=a.a0(t.Nr),q=L.lk(a,C.bs,t.c4)==null?null:C.hI if(q==null)q=C.hI s=r==null?null:r.x.c if(s==null)s=$.atj() return X.aBo(s,s.b7.Pz(q))}, z6:function z6(a,b,c){this.c=a this.d=b this.a=c}, Ar:function Ar(a,b,c){this.x=a this.b=b this.a=c}, on:function on(a,b){this.a=a this.b=b}, uy:function uy(a,b,c,d,e,f){var _=this _.r=a _.x=b _.c=c _.d=d _.e=e _.a=f}, L_:function L_(a,b){var _=this _.dx=null _.e=_.d=$ _.cc$=a _.a=null _.b=b _.c=null}, a8t:function a8t(){}, axt:function(a,b,c){var s,r,q=a==null if(q&&b==null)return null if(q)return b.a4(0,c) if(b==null)return a.a4(0,1-c) if(a instanceof K.dK&&b instanceof K.dK)return K.axu(a,b,c) if(a instanceof K.iv&&b instanceof K.iv)return K.axs(a,b,c) q=P.aa(a.ghV(),b.ghV(),c) q.toString s=P.aa(a.ghT(a),b.ghT(b),c) s.toString r=P.aa(a.ghW(),b.ghW(),c) r.toString return new K.NJ(q,s,r)}, axu:function(a,b,c){var s,r=P.aa(a.a,b.a,c) r.toString s=P.aa(a.b,b.b,c) s.toString return new K.dK(r,s)}, aj_:function(a,b){var s,r,q=a===-1 if(q&&b===-1)return"Alignment.topLeft" s=a===0 if(s&&b===-1)return"Alignment.topCenter" r=a===1 if(r&&b===-1)return"Alignment.topRight" if(q&&b===0)return"Alignment.centerLeft" if(s&&b===0)return"Alignment.center" if(r&&b===0)return"Alignment.centerRight" if(q&&b===1)return"Alignment.bottomLeft" if(s&&b===1)return"Alignment.bottomCenter" if(r&&b===1)return"Alignment.bottomRight" return"Alignment("+J.aU(a,1)+", "+J.aU(b,1)+")"}, axs:function(a,b,c){var s,r=P.aa(a.a,b.a,c) r.toString s=P.aa(a.b,b.b,c) s.toString return new K.iv(r,s)}, aiZ:function(a,b){var s,r,q=a===-1 if(q&&b===-1)return"AlignmentDirectional.topStart" s=a===0 if(s&&b===-1)return"AlignmentDirectional.topCenter" r=a===1 if(r&&b===-1)return"AlignmentDirectional.topEnd" if(q&&b===0)return"AlignmentDirectional.centerStart" if(s&&b===0)return"AlignmentDirectional.center" if(r&&b===0)return"AlignmentDirectional.centerEnd" if(q&&b===1)return"AlignmentDirectional.bottomStart" if(s&&b===1)return"AlignmentDirectional.bottomCenter" if(r&&b===1)return"AlignmentDirectional.bottomEnd" return"AlignmentDirectional("+J.aU(a,1)+", "+J.aU(b,1)+")"}, D4:function D4(){}, dK:function dK(a,b){this.a=a this.b=b}, iv:function iv(a,b){this.a=a this.b=b}, NJ:function NJ(a,b,c){this.a=a this.b=b this.c=c}, K3:function K3(a){this.a=a}, mw:function(a,b,c){var s=a==null if(s&&b==null)return null if(s)a=C.ba return a.B(0,(b==null?C.ba:b).wz(a).a4(0,c))}, Tj:function(a){var s=new P.c2(a,a) return new K.d1(s,s,s,s)}, Dt:function(a,b,c){var s,r,q,p=a==null if(p&&b==null)return null if(p)return b.a4(0,c) if(b==null)return a.a4(0,1-c) p=P.xG(a.a,b.a,c) p.toString s=P.xG(a.b,b.b,c) s.toString r=P.xG(a.c,b.c,c) r.toString q=P.xG(a.d,b.d,c) q.toString return new K.d1(p,s,r,q)}, uS:function uS(){}, d1:function d1(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, AR:function AR(a,b,c,d,e,f,g,h){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h}, aoW:function(a,b,c){var s,r=t.dJ.a(a.db) if(r==null)a.db=new T.jV(C.i) else r.OH() s=a.db s.toString b=new K.qw(s,a.gii()) a.If(b,C.i) b.ob()}, aAw:function(a){a.Fy()}, aqA:function(a,b){var s if(a==null)return null if(!a.gO(a)){s=b.a s=s[0]===0&&s[1]===0&&s[2]===0&&s[3]===0&&s[4]===0&&s[5]===0&&s[6]===0&&s[7]===0&&s[8]===0&&s[9]===0&&s[10]===0&&s[11]===0&&s[12]===0&&s[13]===0&&s[14]===0&&s[15]===0}else s=!0 if(s)return C.Z return T.aoI(b,a)}, aCp:function(a,b,c,d){var s,r,q,p=b.ga9(b) p.toString s=t.F s.a(p) for(r=p;r!==a;r=p,b=q){r.di(b,c) p=r.ga9(r) p.toString s.a(p) q=b.ga9(b) q.toString s.a(q)}a.di(b,c) a.di(b,d)}, aqz:function(a,b){if(a==null)return b if(b==null)return a return a.f_(b)}, EW:function(a){var s=null return new K.pD(s,!1,!0,s,s,s,!1,a,C.bc,C.q_,"debugCreator",!0,!0,s,C.dY)}, iV:function iV(){}, qw:function qw(a,b){var _=this _.a=a _.b=b _.e=_.d=_.c=null}, a0V:function a0V(a,b,c){this.a=a this.b=b this.c=c}, a0U:function a0U(a,b,c){this.a=a this.b=b this.c=c}, a0T:function a0T(a,b,c){this.a=a this.b=b this.c=c}, UM:function UM(){}, a4q:function a4q(a,b){this.a=a this.b=b}, HG:function HG(a,b,c,d,e,f,g){var _=this _.a=a _.b=b _.c=c _.d=null _.e=d _.r=_.f=!1 _.x=e _.y=f _.z=!1 _.Q=null _.ch=0 _.cx=!1 _.cy=g}, a1c:function a1c(){}, a1b:function a1b(){}, a1d:function a1d(){}, a1e:function a1e(){}, r:function r(){}, a2L:function a2L(a){this.a=a}, a2P:function a2P(a,b,c){this.a=a this.b=b this.c=c}, a2N:function a2N(a){this.a=a}, a2O:function a2O(){}, a2M:function a2M(a,b,c,d,e,f,g){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g}, aG:function aG(){}, eZ:function eZ(){}, aD:function aD(){}, xM:function xM(){}, ae_:function ae_(){}, a9x:function a9x(a,b){this.b=a this.a=b}, lZ:function lZ(){}, Pf:function Pf(a,b,c){var _=this _.e=a _.b=b _.c=null _.a=c}, Q3:function Q3(a,b,c,d,e){var _=this _.e=a _.f=b _.r=!1 _.x=c _.y=!1 _.b=d _.c=null _.a=e}, KO:function KO(a,b){this.b=a this.c=null this.a=b}, ae0:function ae0(){var _=this _.b=_.a=null _.d=_.c=$ _.e=!1}, pD:function pD(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var _=this _.f=a _.r=b _.x=c _.z=d _.Q=e _.ch=f _.cx=g _.cy=h _.db=!0 _.dx=null _.dy=i _.fr=j _.a=k _.b=l _.c=m _.d=n _.e=o}, P0:function P0(){}, aAx:function(a,b,c,d,e){var s=new K.qO(a,e,d,c,0,null,null) s.gav() s.gaF() s.dy=!1 s.J(0,b) return s}, apo:function(a,b,c,d){var s,r,q,p,o,n={},m=b.x if(m!=null&&b.f!=null){s=c.a r=b.f r.toString m.toString q=C.fu.Cw(s-r-m)}else{m=b.y q=m!=null?C.fu.Cw(m):C.fu}m=b.e if(m!=null&&b.r!=null){s=c.b r=b.r r.toString m.toString q=q.vN(s-r-m)}else{m=b.z if(m!=null)q=q.vN(m)}a.cJ(0,q,!0) n.a=$ m=new K.a33(n) s=new K.a34(n) r=b.x if(r!=null)s.$1(r) else{r=b.f p=a.r2 if(r!=null)s.$1(c.a-r-p.a) else{p.toString s.$1(d.mQ(t.EP.a(c.a5(0,p))).a)}}o=(m.$0()<0||m.$0()+a.r2.a>c.a)&&!0 n.b=$ s=new K.a35(n) n=new K.a36(n) r=b.e if(r!=null)n.$1(r) else{r=b.r p=a.r2 if(r!=null)n.$1(c.b-r-p.b) else{p.toString n.$1(d.mQ(t.EP.a(c.a5(0,p))).b)}}if(s.$0()<0||s.$0()+a.r2.b>c.b)o=!0 b.a=new P.m(m.$0(),s.$0()) return o}, a26:function a26(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, dl:function dl(a,b,c){var _=this _.z=_.y=_.x=_.r=_.f=_.e=null _.c9$=a _.an$=b _.a=c}, yG:function yG(a){this.b=a}, a0H:function a0H(a){this.b=a}, qO:function qO(a,b,c,d,e,f,g){var _=this _.F=!1 _.N=null _.S=a _.au=b _.aB=c _.ax=d _.aU=null _.cI$=e _.a7$=f _.d9$=g _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, a34:function a34(a){this.a=a}, a36:function a36(a){this.a=a}, a33:function a33(a){this.a=a}, a35:function a35(a){this.a=a}, xT:function xT(a,b,c,d,e,f,g,h){var _=this _.dK=a _.F=!1 _.N=null _.S=b _.au=c _.aB=d _.ax=e _.aU=null _.cI$=f _.a7$=g _.d9$=h _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, a2G:function a2G(a,b,c){this.a=a this.b=b this.c=c}, P7:function P7(){}, P8:function P8(){}, y2:function y2(a,b){var _=this _.b=_.a=null _.f=_.e=_.d=_.c=!1 _.r=a _.P$=b}, a3k:function a3k(a){this.a=a}, a3l:function a3l(a){this.a=a}, cP:function cP(a,b,c,d,e,f){var _=this _.a=a _.b=null _.c=b _.d=c _.e=d _.f=e _.r=f _.y=_.x=!1}, a3h:function a3h(){}, a3i:function a3i(){}, a3g:function a3g(){}, a3j:function a3j(){}, F0:function F0(a,b){this.a=a this.$ti=b}, ak9:function(a){return K.qn(a,!1).ac9(null)}, qn:function(a,b){var s,r=a instanceof N.eH&&a.gb9(a) instanceof K.iO?t.uK.a(a.gb9(a)):null if(r==null)r=a.pX(t.uK) s=r s.toString return s}, azE:function(a,b){var s,r,q,p,o,n,m=null,l=H.b([],t.ny) if(C.c.bv(b,"/")&&b.length>1){b=C.c.bw(b,1) s=t.z l.push(a.oZ("/",!0,m,s)) r=b.split("/") if(b.length!==0)for(q=r.length,p=0,o="";p=3}, aCo:function(a){var s=a.c.a return s<=7&&s>=1}, akO:function(a){return new K.adP(a)}, aCl:function(a){var s,r,q t.Dn.a(a) s=J.ag(a) r=s.i(a,0) r.toString switch(C.tc[H.oR(r)]){case C.f7:s=s.fc(a,1) r=s[0] r.toString H.oR(r) q=s[1] q.toString H.cr(q) return new K.NY(r,q,s.length>2?s[2]:null,C.f7) case C.mO:s=s.fc(a,1)[1] s.toString t.pO.a(P.azN(new P.TI(H.oR(s)))) return null default:throw H.a(H.j(u.I))}}, qT:function qT(a){this.b=a}, c4:function c4(){}, a3t:function a3t(a){this.a=a}, a3s:function a3s(a){this.a=a}, a3w:function a3w(){}, a3x:function a3x(){}, a3y:function a3y(){}, a3z:function a3z(){}, a3u:function a3u(a){this.a=a}, a3v:function a3v(){}, dU:function dU(a,b){this.a=a this.b=b}, lr:function lr(){}, n7:function n7(a,b,c){this.f=a this.b=b this.a=c}, a3p:function a3p(){}, Kk:function Kk(){}, ES:function ES(a){this.$ti=a}, x9:function x9(a,b,c,d,e,f,g,h){var _=this _.f=a _.r=b _.x=c _.y=d _.z=e _.Q=f _.ch=g _.a=h}, a0l:function a0l(){}, ek:function ek(a,b){this.a=a this.b=b}, O2:function O2(a,b,c){var _=this _.a=null _.b=a _.c=b _.d=c}, dp:function dp(a,b,c,d,e,f){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=!1 _.x=!0 _.y=!1}, adO:function adO(a,b){this.a=a this.b=b}, adM:function adM(){}, adL:function adL(a){this.a=a}, adK:function adK(a){this.a=a}, adN:function adN(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, adP:function adP(a){this.a=a}, m1:function m1(){}, tP:function tP(a,b){this.a=a this.b=b}, AZ:function AZ(a,b){this.a=a this.b=b}, B_:function B_(a,b){this.a=a this.b=b}, B0:function B0(a,b){this.a=a this.b=b}, iO:function iO(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var _=this _.d=$ _.e=a _.f=b _.r=c _.x=d _.y=e _.z=!1 _.Q=null _.ch=$ _.cx=f _.cy=null _.db=!1 _.dx=0 _.dy=g _.fr=h _.ae$=i _.bf$=j _.bE$=k _.bx$=l _.aS$=m _.by$=n _.a=null _.b=o _.c=null}, a0j:function a0j(a){this.a=a}, a0b:function a0b(){}, a0c:function a0c(){}, a0d:function a0d(){}, a0e:function a0e(){}, a0f:function a0f(){}, a0g:function a0g(){}, a0h:function a0h(){}, a0i:function a0i(){}, a0a:function a0a(a){this.a=a}, Bj:function Bj(a,b){this.a=a this.b=b}, Pb:function Pb(){}, NY:function NY(a,b,c,d){var _=this _.c=a _.d=b _.e=c _.a=d _.b=null}, akC:function akC(a,b,c,d){var _=this _.c=a _.d=b _.e=c _.a=d _.b=null}, N6:function N6(a){var _=this _.e=null _.a=!1 _.c=_.b=null _.P$=a}, aaX:function aaX(){}, acV:function acV(){}, B1:function B1(){}, B2:function B2(){}, qS:function(a){var s=a.a0(t.lQ) return s==null?null:s.f}, a7A:function(a,b){return new K.zm(a,b,null)}, lB:function lB(a,b,c){this.c=a this.d=b this.a=c}, Pc:function Pc(a,b,c,d,e,f){var _=this _.ae$=a _.bf$=b _.bE$=c _.bx$=d _.aS$=e _.a=null _.b=f _.c=null}, zm:function zm(a,b,c){this.f=a this.b=b this.a=c}, y5:function y5(a,b,c){this.c=a this.d=b this.a=c}, Bi:function Bi(a){var _=this _.d=null _.e=!1 _.r=_.f=null _.x=!1 _.a=null _.b=a _.c=null}, adF:function adF(a){this.a=a}, adE:function adE(a,b){this.a=a this.b=b}, cW:function cW(){}, iZ:function iZ(){}, a3m:function a3m(a,b){this.a=a this.b=b}, agc:function agc(){}, Rq:function Rq(){}, apx:function(a,b){return new K.ye(a,b,null)}, akl:function(a){var s=a.a0(t.Cy),r=s==null?null:s.f return r==null?C.ow:r}, IU:function IU(){}, a40:function a40(){}, a41:function a41(){}, R2:function R2(a,b,c,d,e){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e}, ye:function ye(a,b,c){this.f=a this.b=b this.a=c}, yy:function(a,b,c,d){return new K.Jp(c,d,a,b,null)}, apw:function(a,b){return new K.IR(a,b,null)}, aps:function(a,b){return new K.IG(a,b,null)}, pM:function(a,b,c){return new K.Fn(c,a,b,null)}, p8:function(a,b,c){return new K.D5(b,c,a,null)}, uz:function uz(){}, zw:function zw(a){this.a=null this.b=a this.c=null}, a8s:function a8s(){}, Jp:function Jp(a,b,c,d,e){var _=this _.e=a _.f=b _.r=c _.c=d _.a=e}, IR:function IR(a,b,c){this.f=a this.c=b this.a=c}, IG:function IG(a,b,c){this.f=a this.c=b this.a=c}, Fn:function Fn(a,b,c,d){var _=this _.e=a _.f=b _.c=c _.a=d}, EG:function EG(a,b,c,d){var _=this _.e=a _.r=b _.c=c _.a=d}, D5:function D5(a,b,c,d){var _=this _.e=a _.f=b _.c=c _.a=d}},D={ ayb:function(a){var s if(a.gNx())return!1 s=a.eg$ if(s!=null&&s.length!==0)return!1 if(a.k3.length!==0)return!1 if(a.A)return!1 s=a.k1 if(s.gbg(s)!==C.a7)return!1 s=a.k2 if(s.gbg(s)!==C.N)return!1 if(a.a.dy.a)return!1 return!0}, anH:function(a,b,c,d,e,f){var s,r,q,p,o,n,m=null,l=a.a.dy.a if(a.A){s=S.cy(C.ch,c,new Z.mU(C.ch)) r=$.atW() q=t.m q.a(s) r.toString l=l?d:S.cy(C.ch,d,C.fH) p=$.am_() l.toString q.a(l) p.toString return new D.Ev(new R.b3(s,r,r.$ti.h("b3")),new R.b3(l,p,p.$ti.h("b3")),e,m)}else{s=l?c:S.cy(C.ch,c,C.fH) r=$.atZ() s.toString q=t.m q.a(s) r.toString p=l?d:S.cy(C.ch,d,C.fH) o=$.am_() p.toString q.a(p) o.toString l=l?c:S.cy(C.ch,c,m) n=$.atA() l.toString q.a(l) n.toString return new D.Ex(new R.b3(s,r,r.$ti.h("b3")),new R.b3(p,o,o.$ti.h("b3")),new R.b3(l,n,H.u(n).h("b3")),new D.tc(e,new D.UZ(a),new D.V_(a,f),m,f.h("tc<0>")),m)}}, a9E:function(a,b,c){var s,r,q,p,o,n,m=a==null if(m&&b==null)return null if(m){m=b.a if(m==null)m=b else{s=H.Y(m).h("Z<1,C>") s=new D.ie(P.an(new H.Z(m,new D.a9F(c),s),!0,s.h("av.E"))) m=s}return m}if(b==null){m=a.a if(m==null)m=a else{s=H.Y(m).h("Z<1,C>") s=new D.ie(P.an(new H.Z(m,new D.a9G(c),s),!0,s.h("av.E"))) m=s}return m}m=H.b([],t.t_) for(s=b.a,r=a.a,q=r==null,p=0;pr){s.$1(p) r=o}}return new D.ah2(n,c).$0()}, wQ:function wQ(a,b){var _=this _.c=!0 _.r=_.f=_.e=_.d=null _.a=a _.b=b}, a_t:function a_t(a,b){this.a=a this.b=b}, t9:function t9(a){this.b=a}, jb:function jb(a,b){this.a=a this.b=b}, ah3:function ah3(a,b){this.a=a this.b=b}, ah2:function ah2(a,b){this.a=a this.b=b}, qj:function qj(a,b){var _=this _.e=!0 _.r=_.f=$ _.a=a _.b=b}, a_u:function a_u(a,b){this.a=a this.b=b}, uT:function uT(a,b,c){this.a=a this.b=b this.c=c}, Lh:function Lh(){}, akh:function(a,b,c,d,e){var s=null return new D.HT(c,s,s,s,s,e,s,b,s,s,s,s,s,s,s,s,s,s,s,a,d,s,s,C.V,s,!1,s,s,s)}, HT:function HT(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.x=f _.y=g _.z=h _.Q=i _.ch=j _.cx=k _.cy=l _.db=m _.dx=n _.dy=o _.fr=p _.fx=q _.fy=r _.go=s _.id=a0 _.k1=a1 _.k2=a2 _.k3=a3 _.k4=a4 _.r1=a5 _.r2=a6 _.rx=a7 _.ry=a8 _.a=a9}, a4K:function a4K(){}, Vb:function Vb(){}, XF:function XF(a,b,c,d,e){var _=this _.b=a _.c=b _.d=c _.e=d _.a=e}, RP:function(a){switch(a){case 9:case 10:case 11:case 12:case 13:case 28:case 29:case 30:case 31:case 32:case 160:case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8239:case 8287:case 12288:break default:return!1}return!0}, xR:function(a,b,c){var s={},r=b.length if(a===r)return r s.a=0 return r-new T.hh(b).QU(0,new D.a2v(s,a,c)).a.length}, qL:function(a,b,c){var s,r,q,p,o,n,m,l if(a===0)return 0 for(s=new T.JQ(b,0,0),r=!c,q=J.cj(b),p=0,o=null;s.F2(1,s.c);p=l){n=s.d if(n==null)n=s.d=q.V(b,s.b,s.c) if(r){m=n.length m=!D.RP(C.c.W(m===0?H.e(P.a4("No element")):C.c.V(n,0,new A.iy(n,m,0,176).ih()),0))}else m=!1 if(m)o=p l=p+n.length if(l>=a){if(c)s=p else s=o==null?0:o return s}}return 0}, aAq:function(a,b){var s=a.a,r=s==a.b if(r&&a.d<=0)return a return X.z1(new P.aV(a.dk(!r?s:D.qL(a.d,b,!0)).d,C.l))}, aAs:function(a,b){var s,r,q,p=a.b,o=a.a==p if(o&&a.d>=b.length)return a s=a.dk(!o?p:D.xR(a.d,b,!0)) r=s.c q=s.d return X.z1(new P.aV(r>q?r:q,C.l))}, apm:function(a,b,c){var s if(b<=0)return b if(b===1)return 0 s=D.qL(b,a.c.vQ(),!1) return a.a.fw(0,new P.aV(s,C.l)).a}, apn:function(a,b,c){var s,r=a.c.vQ(),q=r.length if(b===q)return b if(b===q-1||!1)return q q=D.RP(C.c.al(r,b)) s=!q?b:D.xR(b,r,!1) return a.a.fw(0,new P.aV(s,C.l)).b}, aAn:function(a,b,c,d){var s,r,q if(b.a==b.b&&b.d<=0)return b s=b.d r=D.apm(a,s,!1) if(d){q=b.c s=s>q&&rs&&r>q}else s=!1 if(s)return b.dk(b.c) return b.dk(r)}, aAr:function(a,b,c){var s if(b.a==b.b&&b.d<=0)return b s=D.apm(a,b.d,!1) return b.fU(s,s)}, aAt:function(a,b,c){var s,r=a.c.vQ() if(b.a==b.b&&b.d===r.length)return b s=D.apn(a,b.d,!1) return b.fU(s,s)}, aAm:function(a,b){var s=a.d if(s<=0)return a return a.dk(D.qL(s,b,!0))}, aAo:function(a,b){var s=a.d if(s>=b.length)return a return a.dk(D.xR(s,b,!0))}, aqx:function(a){var s=new D.OU(a) s.gav() s.dy=!0 return s}, aqF:function(){var s=H.aF() s=s?H.b_():new H.aR(new H.aT()) return new D.BK(s,C.cP,C.bu,new P.a7(t.V))}, rS:function rS(a,b){this.a=a this.b=b}, nO:function nO(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7,a8){var _=this _.au=_.S=_.N=_.F=null _.aB=$ _.ax=a _.aU=b _.aS=_.bx=_.bE=_.ae=_.b7=null _.cD=c _.e2=d _.d2=e _.c_=f _.cl=g _.aK=h _.cw=i _.e3=j _.cE=-1 _.d3=!1 _.d8=null _.aq=k _.fl=l _.fm=m _.ll=!1 _.G=n _.a8=o _.aJ=p _.br=q _.cW=r _.a2=s _.eZ=a0 _.ef=a1 _.lm=a2 _.dK=a3 _.c9=a4 _.an=a5 _.cI=!1 _.a7=$ _.d9=a6 _.by=0 _.eg=a7 _.ln=_.n7=null _.n4=_.B4=$ _.B_=_.eD=null _.lj=$ _.eX=a8 _.lk=null _.bq=_.bS=_.pM=_.uN=!1 _.k4=_.k3=_.bA=_.bL=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, a2v:function a2v(a,b,c){this.a=a this.b=b this.c=c}, a2j:function a2j(a){this.a=a}, a2i:function a2i(a){this.a=a}, a2l:function a2l(a){this.a=a}, a2k:function a2k(a){this.a=a}, a2n:function a2n(a){this.a=a}, a2m:function a2m(a){this.a=a}, a2p:function a2p(a){this.a=a}, a2o:function a2o(a){this.a=a}, a2f:function a2f(a){this.a=a}, a2e:function a2e(a){this.a=a}, a2h:function a2h(a){this.a=a}, a2g:function a2g(a){this.a=a}, a2s:function a2s(a){this.a=a}, a2r:function a2r(a){this.a=a}, a2u:function a2u(a){this.a=a}, a2t:function a2t(a){this.a=a}, a2d:function a2d(){}, a2q:function a2q(){}, a2x:function a2x(a){this.a=a}, a2w:function a2w(a){this.a=a}, OU:function OU(a){var _=this _.F=a _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, lx:function lx(){}, BK:function BK(a,b,c,d){var _=this _.b=a _.d=_.c=null _.e=b _.f=c _.P$=d}, Ab:function Ab(a,b,c,d){var _=this _.b=!0 _.c=a _.d=!1 _.e=b _.f=$ _.x=_.r=null _.y=c _.Q=_.z=null _.P$=d}, t8:function t8(a,b){this.b=a this.P$=b}, B8:function B8(){}, apM:function(a){var s=a==null?C.u:a return new D.aL(s,new P.a7(t.V))}, aL:function aL(a,b){this.a=a this.P$=b}, Kg:function Kg(a,b){this.a=a this.b=b}, pH:function pH(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,d0,d1,d2,d3,d4){var _=this _.c=a _.d=b _.e=c _.f=d _.y=e _.Q=f _.ch=g _.cx=h _.cy=i _.db=j _.dx=k _.dy=l _.fr=m _.fx=n _.fy=o _.go=p _.id=q _.k3=r _.k4=s _.r1=a0 _.r2=a1 _.rx=a2 _.ry=a3 _.x1=a4 _.x2=a5 _.y1=a6 _.y2=a7 _.ac=a8 _.at=a9 _.aN=b0 _.aI=b1 _.b4=b2 _.P=b3 _.bD=b4 _.aR=b5 _.v=b6 _.A=b7 _.aE=b8 _.bT=b9 _.aA=c0 _.bi=c1 _.cv=c2 _.aY=c3 _.bl=c4 _.F=c5 _.N=c6 _.S=c7 _.au=c8 _.aB=c9 _.ax=d0 _.aU=d1 _.b7=d2 _.bf=d3 _.a=d4}, pI:function pI(a,b,c,d,e,f,g,h){var _=this _.d=null _.e=!1 _.f=a _.r=b _.Q=_.z=_.y=null _.ch=$ _.cx=c _.cy=d _.db=e _.dx=!1 _.fr=_.dy=null _.fx=!1 _.fy=$ _.k3=_.k2=_.k1=_.id=_.go=null _.k4=0 _.r1=null _.r2=!1 _.rx=$ _.ry=0 _.x2=_.x1=null _.by$=f _.bA$=g _.a=null _.b=h _.c=null}, Wa:function Wa(a){this.a=a}, W9:function W9(a){this.a=a}, W1:function W1(a){this.a=a}, W0:function W0(a){this.a=a}, VZ:function VZ(a){this.a=a}, W_:function W_(){}, W7:function W7(a){this.a=a}, W6:function W6(a){this.a=a}, W5:function W5(a){this.a=a}, Wb:function Wb(a,b,c){this.a=a this.b=b this.c=c}, W2:function W2(a,b){this.a=a this.b=b}, W3:function W3(a,b){this.a=a this.b=b}, W4:function W4(a,b){this.a=a this.b=b}, W8:function W8(a,b){this.a=a this.b=b}, Mo:function Mo(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,c0){var _=this _.d=a _.e=b _.f=c _.r=d _.x=e _.y=f _.z=g _.Q=h _.ch=i _.cx=j _.cy=k _.db=l _.dx=m _.dy=n _.fr=o _.fx=p _.fy=q _.go=r _.id=s _.k1=a0 _.k2=a1 _.k3=a2 _.k4=a3 _.x1=a4 _.x2=a5 _.y1=a6 _.y2=a7 _.ac=a8 _.at=a9 _.aN=b0 _.aI=b1 _.b4=b2 _.P=b3 _.bD=b4 _.aR=b5 _.v=b6 _.A=b7 _.aE=b8 _.bT=b9 _.a=c0}, A2:function A2(){}, Mp:function Mp(){}, A3:function A3(){}, Mq:function Mq(){}, pT:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3){return new D.FM(b,s,a0,q,r,f,l,a2,a3,a1,h,j,k,i,g,m,o,p,n,a,d,c,e)}, n5:function n5(){}, cn:function cn(a,b,c){this.a=a this.b=b this.$ti=c}, FM:function FM(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.dx=f _.fr=g _.rx=h _.ry=i _.x1=j _.y1=k _.y2=l _.ac=m _.at=n _.aN=o _.aI=p _.b4=q _.P=r _.bD=s _.aY=a0 _.bl=a1 _.F=a2 _.a=a3}, XT:function XT(a){this.a=a}, XU:function XU(a){this.a=a}, XV:function XV(a){this.a=a}, XX:function XX(a){this.a=a}, XY:function XY(a){this.a=a}, XZ:function XZ(a){this.a=a}, Y_:function Y_(a){this.a=a}, Y0:function Y0(a){this.a=a}, Y1:function Y1(a){this.a=a}, Y2:function Y2(a){this.a=a}, Y3:function Y3(a){this.a=a}, XW:function XW(a){this.a=a}, k5:function k5(a,b,c,d,e,f){var _=this _.c=a _.d=b _.e=c _.f=d _.r=e _.a=f}, qH:function qH(a,b){var _=this _.d=a _.a=_.e=null _.b=b _.c=null}, N1:function N1(a,b,c,d){var _=this _.e=a _.f=b _.c=c _.a=d}, a4p:function a4p(){}, M5:function M5(a){this.a=a}, a9Z:function a9Z(a){this.a=a}, a9Y:function a9Y(a){this.a=a}, a9V:function a9V(a){this.a=a}, a9W:function a9W(a){this.a=a}, a9X:function a9X(a,b){this.a=a this.b=b}, aa_:function aa_(a){this.a=a}, aa0:function aa0(a){this.a=a}, aa1:function aa1(a,b){this.a=a this.b=b}, I0:function I0(){}, a25:function a25(a){this.a=a}, a1k:function a1k(a){this.a=a}, aAU:function(a){var s=($.b5+1)%16777215 $.b5=s return new D.yq(null,s,a,C.a1,P.be(t.t))}, aAT:function(a){var s=a.ah(),r=($.b5+1)%16777215 $.b5=r r=new D.Jc(null,s,r,a,C.a1,P.be(t.t)) r.gb9(r).c=r r.gb9(r).a=a return r}, nA:function nA(){}, O_:function O_(a,b,c,d,e,f){var _=this _.aY=a _.eY$=b _.dx=null _.dy=!1 _.a=null _.b=c _.c=null _.d=$ _.e=d _.f=null _.r=e _.x=f _.z=_.y=null _.Q=!1 _.ch=!0 _.db=_.cy=_.cx=!1}, m2:function m2(a,b,c,d){var _=this _.c=a _.d=b _.e=c _.a=d}, ik:function ik(a,b,c,d){var _=this _.dx=_.bl=_.aY=null _.dy=!1 _.a=null _.b=a _.c=null _.d=$ _.e=b _.f=null _.r=c _.x=d _.z=_.y=null _.Q=!1 _.ch=!0 _.db=_.cy=_.cx=!1}, acW:function acW(){}, yr:function yr(){}, aev:function aev(a){this.a=a}, aew:function aew(a){this.a=a}, agb:function agb(a){this.a=a}, o_:function o_(){}, yq:function yq(a,b,c,d,e){var _=this _.eY$=a _.dx=null _.dy=!1 _.a=null _.b=b _.c=null _.d=$ _.e=c _.f=null _.r=d _.x=e _.z=_.y=null _.Q=!1 _.ch=!0 _.db=_.cy=_.cx=!1}, lF:function lF(){}, r8:function r8(){}, Jc:function Jc(a,b,c,d,e,f){var _=this _.eY$=a _.y1=b _.y2=!1 _.dx=null _.dy=!1 _.a=null _.b=c _.c=null _.d=$ _.e=d _.f=null _.r=e _.x=f _.z=_.y=null _.Q=!1 _.ch=!0 _.db=_.cy=_.cx=!1}, PA:function PA(){}, PB:function PB(){}, Rj:function Rj(){}, JD:function JD(){}, vj:function vj(a){this.a=a}, Lz:function Lz(a,b,c,d,e,f){var _=this _.d=a _.e=b _.f=c _.r=d _.x=e _.y="" _.a=_.cy=null _.b=f _.c=null}, a9n:function a9n(a,b){this.a=a this.b=b}, a9p:function a9p(a){this.a=a}, a9q:function a9q(a,b){this.a=a this.b=b}, a9o:function a9o(a){this.a=a}, a9r:function a9r(a,b){this.a=a this.b=b}, a9s:function a9s(){}, a9l:function a9l(a,b){this.a=a this.b=b}, a9m:function a9m(a){this.a=a}, a9v:function a9v(a){this.a=a}, a9u:function a9u(a,b){this.a=a this.b=b}, a9t:function a9t(a){this.a=a}, nn:function nn(a){this.a=a}, Nx:function Nx(a,b,c,d){var _=this _.d=a _.e=b _.f=c _.a=_.r=null _.b=d _.c=null}, ac7:function ac7(){}, ac8:function ac8(){}, ac9:function ac9(a,b){this.a=a this.b=b}, acb:function acb(a){this.a=a}, aca:function aca(a){this.a=a}, as4:function(a,b){var s=H.b(a.split("\n"),t.s) $.Sc().J(0,s) if(!$.al3)D.ard()}, ard:function(){var s,r,q=$.al3=!1,p=$.alY() if(P.cJ(p.ga9o(),0).a>1e6){if(p.b==null)p.b=$.HP.$0() p.e7(0) $.RN=0}while(!0){if($.RN<12288){p=$.Sc() p=!p.gO(p)}else p=q if(!p)break s=$.Sc().lJ() $.RN=$.RN+s.length s=J.bB(s) r=$.alG if(r==null)H.aie(s) else r.$1(s)}q=$.Sc() if(!q.gO(q)){$.al3=!0 $.RN=0 P.ci(C.e_,D.aFZ()) if($.agD==null)$.agD=new P.aH(new P.a1($.R,t.U),t.gR)}else{$.alY().rn(0) q=$.agD if(q!=null)q.ez(0) $.agD=null}}, as3:function(){var s,r,q,p,o=null try{o=P.akA()}catch(s){if(t.VI.b(H.U(s))){r=$.agC if(r!=null)return r throw s}else throw s}if(J.d(o,$.arc)){r=$.agC r.toString return r}$.arc=o if($.alQ()==$.CO())r=$.agC=o.ak(".").j(0) else{q=o.Cz() p=q.length-1 r=$.agC=p===0?q:C.c.V(q,0,p)}r.toString return r}},O={cX:function cX(a,b){this.a=a this.$ti=b},a6J:function a6J(a){this.a=a},jB:function jB(a){this.a=a},h3:function h3(a,b,c){this.a=a this.b=b this.d=c},h4:function h4(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d},hK:function hK(a,b){this.a=a this.b=b}, aoh:function(){var s=H.b([],t._K),r=new E.b8(new Float64Array(16)) r.du() return new O.hN(s,H.b([r],t.Xr),H.b([],t.cR))}, iF:function iF(a){this.a=a this.b=null}, u8:function u8(){}, AP:function AP(a){this.a=a}, tQ:function tQ(a){this.a=a}, hN:function hN(a,b,c){this.a=a this.b=b this.c=c}, ayq:function(a){return new R.j8(a.gda(a),P.b6(20,null,!1,t.av))}, aq2:function(a){var s=t.S return new O.id(C.a4,O.alC(),C.cL,P.y(s,t.GY),P.aZ(s),P.y(s,t.o),P.be(s),a,null,P.y(s,t.r))}, FS:function(a,b){var s=t.S return new O.hO(C.a4,O.alC(),C.cL,P.y(s,t.GY),P.aZ(s),P.y(s,t.o),P.be(s),a,b,P.y(s,t.r))}, A_:function A_(a){this.b=a}, vE:function vE(){}, VO:function VO(a,b){this.a=a this.b=b}, VS:function VS(a,b){this.a=a this.b=b}, VT:function VT(a,b){this.a=a this.b=b}, VP:function VP(a,b){this.a=a this.b=b}, VQ:function VQ(a){this.a=a}, VR:function VR(a,b){this.a=a this.b=b}, id:function id(a,b,c,d,e,f,g,h,i,j){var _=this _.z=a _.fr=_.dy=_.dx=_.db=_.cy=_.cx=_.ch=_.Q=null _.fx=b _.fy=c _.id=_.go=$ _.k3=_.k2=_.k1=null _.k4=$ _.r1=d _.r2=e _.d=f _.e=g _.a=h _.b=i _.c=j}, hO:function hO(a,b,c,d,e,f,g,h,i,j){var _=this _.z=a _.fr=_.dy=_.dx=_.db=_.cy=_.cx=_.ch=_.Q=null _.fx=b _.fy=c _.id=_.go=$ _.k3=_.k2=_.k1=null _.k4=$ _.r1=d _.r2=e _.d=f _.e=g _.a=h _.b=i _.c=j}, i0:function i0(a,b,c,d,e,f,g,h,i,j){var _=this _.z=a _.fr=_.dy=_.dx=_.db=_.cy=_.cx=_.ch=_.Q=null _.fx=b _.fy=c _.id=_.go=$ _.k3=_.k2=_.k1=null _.k4=$ _.r1=d _.r2=e _.d=f _.e=g _.a=h _.b=i _.c=j}, a1o:function a1o(a,b){this.a=a this.b=b}, a1q:function a1q(){}, a1p:function a1p(a,b,c){this.a=a this.b=b this.c=c}, axK:function(a,b,c){var s,r,q,p=a==null if(p&&b==null)return null if(p)return b.bp(0,c) if(b==null)return a.bp(0,1-c) p=P.K(a.a,b.a,c) p.toString s=P.a0D(a.b,b.b,c) s.toString r=P.aa(a.c,b.c,c) r.toString q=P.aa(a.d,b.d,c) q.toString return new O.bh(q,p,s,r)}, anx:function(a,b,c){var s,r,q,p,o,n,m,l,k=a==null if(k&&b==null)return null if(k)a=H.b([],t.sq) if(b==null)b=H.b([],t.sq) s=Math.min(a.length,b.length) k=H.b([],t.sq) for(r=0;r").a3(c).h("uO<1,2>"))}, uO:function uO(a,b,c,d,e){var _=this _.f=a _.c=b _.d=c _.a=d _.$ti=e}, ix:function ix(){}, zB:function zB(a,b){var _=this _.a=_.e=_.d=null _.b=a _.c=null _.$ti=b}, a8T:function a8T(a){this.a=a}, a8S:function a8S(a,b){this.a=a this.b=b}, Tq:function Tq(a){this.a=a this.b=!1}, Tt:function Tt(a,b,c){this.a=a this.b=b this.c=c}, Tr:function Tr(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d}, Ts:function Ts(a,b){this.a=a this.b=b}, Tu:function Tu(a,b){this.a=a this.b=b}, aAy:function(a,b){var s=t.X return new O.a3e(C.U,new Uint8Array(0),a,b,P.a_h(new G.T2(),new G.T3(),s,s))}, a3e:function a3e(a,b,c,d,e){var _=this _.y=a _.z=b _.a=c _.b=d _.r=e _.x=!1}, aBf:function(){if(P.akA().gdT()!=="file")return $.CO() var s=P.akA() if(!C.c.k8(s.gdR(s),"/"))return $.CO() if(P.aqL("a/b").Cz()==="a\\b")return $.Sa() return $.ath()}, a6A:function a6A(){}, mE:function mE(a,b){var _=this _.d=a _.e=null _.f=!1 _.a=null _.b=b _.c=!1}, CN:function(a){var s,r,q,p="message" if(a.b>=400){s=C.Q.M1(0,B.CI(U.Cw(a.e).c.a.i(0,"charset")).c7(0,a.x),null) r=J.ag(s) q=r.i(s,p)!=null&&typeof r.i(s,p)=="string"?H.cr(r.i(s,p)):null throw H.a(P.cF(q==null||q.length===0?"Unknown Error":q))}}, a1a:function a1a(a){this.a=a}, f5:function f5(a,b,c){this.a=a this.b=b this.c=c}},Q={wN:function wN(a,b,c,d){var _=this _.a=a _.b=b _.c=c _.d=d},Nz:function Nz(){},yz:function yz(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5,a6,a7){var _=this _.a=a _.b=b _.c=c _.d=d _.e=e _.f=f _.r=g _.x=h _.y=i _.z=j _.Q=k _.ch=l _.cx=m _.cy=n _.db=o _.dx=p _.dy=q _.fr=r _.fx=s _.fy=a0 _.go=a1 _.id=a2 _.k1=a3 _.k2=a4 _.k3=a5 _.k4=a6 _.r1=a7},PC:function PC(){}, lN:function(a,b,c){return new Q.rT(c,a,C.cT,b)}, rT:function rT(a,b,c,d){var _=this _.b=a _.c=b _.e=c _.a=d}, rR:function rR(a){this.b=a}, j5:function j5(a,b,c){var _=this _.e=null _.c9$=a _.an$=b _.a=c}, xU:function xU(a,b,c,d,e,f){var _=this _.F=a _.N=$ _.S=b _.au=c _.aB=!1 _.ae=_.b7=_.aU=_.ax=null _.cI$=d _.a7$=e _.d9$=f _.k4=_.k3=null _.r1=!1 _.rx=_.r2=null _.ry=0 _.e=_.d=null _.r=_.f=!1 _.x=null _.y=!1 _.z=!0 _.Q=null _.ch=!1 _.cx=null _.cy=!1 _.db=null _.dx=!1 _.dy=$ _.fr=!0 _.fx=null _.fy=!0 _.go=null _.a=0 _.c=_.b=null}, a2Q:function a2Q(a){this.a=a}, a2T:function a2T(a){this.a=a}, a2S:function a2S(a){this.a=a}, a2U:function a2U(a,b,c){this.a=a this.b=b this.c=c}, a2V:function a2V(a){this.a=a}, a2R:function a2R(){}, Ba:function Ba(){}, P1:function P1(){}, P2:function P2(){}, aAl:function(a){var s,r for(s=t.Rn,r=t.NW;a!=null;){if(r.b(a))return a a=s.a(a.ga9(a))}return null}, app:function(a,b,c,d,e,f){var s,r,q,p,o,n,m if(b==null)return e s=f.lU(b,0,e) r=f.lU(b,1,e) q=d.y q.toString p=s.a o=r.a if(pp)n=s else{if(!(qr){p.xe() p.b=P.ci(P.cJ(0,r-q),p.gzo())}p.c=a}, xe:function(){var s=this.b if(s!=null)s.aH(0) this.b=null}, a67:function(){var s,r=this,q=r.a.$0(),p=r.c p.toString s=q.a p=p.a if(s>=p){r.b=null r.a7G()}else r.b=P.ci(P.cJ(0,p-s),r.gzo())}, a7G:function(){return this.ga7F().$0()}} H.SP.prototype={ gXT:function(){var s=new H.fP(new W.oD(window.document.querySelectorAll("meta"),t.xl),t.u8).n9(0,new H.SQ(),new H.SR()) return s==null?null:s.content}, vY:function(a){var s if(P.os(a).gN9())return P.C1(C.h6,a,C.U,!1) s=this.gXT() if(s==null)s="" return P.C1(C.h6,s+("assets/"+H.c(a)),C.U,!1)}, dD:function(a,b){return this.abR(a,b)}, abR:function(a,b){var s=0,r=P.af(t.V4),q,p=2,o,n=[],m=this,l,k,j,i,h,g,f,e var $async$dD=P.a9(function(c,d){if(c===1){o=d s=p}while(true)switch(s){case 0:f=m.vY(b) p=4 s=7 return P.ak(W.az_(f,"arraybuffer"),$async$dD) case 7:l=d k=W.arb(l.response) h=k h.toString h=H.ha(h,0,null) q=h s=1 break p=2 s=6 break case 4:p=3 e=o h=H.U(e) if(t.Y6.b(h)){j=h i=W.agw(j.target) if(t.Gf.b(i)){if(i.status===404&&b==="AssetManifest.json"){$.ck().$1("Asset manifest does not exist at `"+H.c(f)+"` \u2013 ignoring.") q=H.ha(new Uint8Array(H.mb(C.U.gfY().c6("{}"))).buffer,0,null) s=1 break}h=i.status h.toString throw H.a(new H.pd(f,h))}$.ck().$1("Caught ProgressEvent with target: "+H.c(i)) throw e}else throw e s=6 break case 3:s=2 break case 6:case 1:return P.ad(q,r) case 2:return P.ac(o,r)}}) return P.ae($async$dD,r)}} H.SQ.prototype={ $1:function(a){return J.d(J.awg(a),"assetBase")}, $S:50} H.SR.prototype={ $0:function(){return null}, $S:1} H.pd.prototype={ j:function(a){return'Failed to load asset at "'+H.c(this.a)+'" ('+H.c(this.b)+")"}, $icc:1} H.jp.prototype={ sLf:function(a,b){var s,r,q=this q.a=b s=J.amw(b.a)-1 r=J.amw(q.a.b)-1 if(q.Q!==s||q.ch!==r){q.Q=s q.ch=r q.Kp()}}, Kp:function(){var s=this.c.style,r="translate("+this.Q+"px, "+this.ch+"px)" s.toString C.e.a_(s,C.e.R(s,"transform"),r,"")}, Jj:function(){var s=this,r=s.a,q=r.a,p=s.Q r=r.b s.d.af(0,-q+(q-1-p)+1,-r+(r-1-s.ch)+1)}, Mc:function(a,b){return this.r>=H.T9(a.c-a.a)&&this.x>=H.T8(a.d-a.b)&&this.dx===b}, az:function(a){var s,r,q,p,o,n,m=this m.cy=!1 m.d.az(0) s=m.f r=s.length for(q=m.c,p=0;pp){m=p p=q q=m}if(o>n){m=n n=o o=m}l=Math.abs(a2.r) k=Math.abs(a2.e) j=Math.abs(a2.x) i=Math.abs(a2.f) h=Math.abs(a2.Q) g=Math.abs(a2.y) f=Math.abs(a2.ch) e=Math.abs(a2.z) c.beginPath() c.moveTo(q+l,o) b=p-l c.lineTo(b,o) H.F3(c,b,o+j,l,j,0,4.71238898038469,6.283185307179586,!1) b=n-e c.lineTo(p,b) H.F3(c,p-g,b,g,e,0,0,1.5707963267948966,!1) b=q+h c.lineTo(b,n) H.F3(c,b,n-f,h,f,0,1.5707963267948966,3.141592653589793,!1) b=o+i c.lineTo(q,b) H.F3(c,q+k,b,k,i,0,3.141592653589793,4.71238898038469,!1) a0.gcQ().h2(d) a0.gcQ().lO()}}, eB:function(a,b,c,d){var s,r,q,p,o,n,m,l=this,k=P.k6(b,c) if(l.zE(d)){s=H.Cv(k,d,"draw-circle",l.d.c) l.oy(s,new P.m(Math.min(H.B(k.a),H.B(k.c)),Math.min(H.B(k.b),H.B(k.d))),d) r=s.style r.toString C.e.a_(r,C.e.R(r,"border-radius"),"50%","")}else{r=d.x!=null?P.k6(b,c):null q=l.d q.gcQ().kI(d,r) r=d.b q.gaL(q).beginPath() p=q.gcQ().ch o=p==null n=o?b.a:b.a-p.a m=o?b.b:b.b-p.b H.F3(q.gaL(q),n,m,c,c,0,0,6.283185307179586,!1) q.gcQ().h2(r) q.gcQ().lO()}}, cj:function(a,b,c){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e=this if(e.KA(c)){s=e.d r=s.c t.Ci.a(b) q=b.a.Q9() if(q!=null){p=q.b o=q.d n=q.a m=p==o?new P.x(n,p,n+(q.c-n),p+1):new P.x(n,p,n+1,p+(o-p)) e.oy(H.Cv(m,c,"draw-rect",s.c),new P.m(Math.min(H.B(m.a),H.B(m.c)),Math.min(H.B(m.b),H.B(m.d))),c) return}l=b.a.r4() if(l!=null){e.ck(0,l,c) return}p=b.a k=p.db?p.t3():null if(k!=null){e.ct(0,k,c) return}j=b.dt(0) i=H.arD(b,c,H.c(j.c),H.c(j.d)) if(s.b==null){h=i.style h.position="absolute" if(!r.q6(0)){s=H.ir(r.a) C.e.a_(h,C.e.R(h,"transform"),s,"") C.e.a_(h,C.e.R(h,"transform-origin"),"0 0 0","")}}if(c.y!=null){s=c.b p=c.r if(p==null)g="#000000" else{p=H.cs(p) p.toString g=p}f=c.y.b p=H.bV() if(p===C.W&&s!==C.ab){s=i.style p="0px 0px "+H.c(f*2)+"px "+g s.toString C.e.a_(s,C.e.R(s,"box-shadow"),p,"")}else{s=i.style p="blur("+H.c(f)+"px)" s.toString C.e.a_(s,C.e.R(s,"filter"),p,"")}}e.oy(i,new P.m(0,0),c)}else{s=c.x!=null?b.dt(0):null p=e.d p.gcQ().kI(c,s) s=c.b if(s==null&&c.c!=null)p.cj(0,b,C.ab) else p.cj(0,b,s) p.gcQ().lO()}}, ht:function(a,b,c,d,e){var s,r,q,p,o,n=this.d,m=H.alv(b.dt(0),d) if(m!=null){s=H.alM(c).a r=H.aF0(s>>>16&255,s>>>8&255,s&255,255) n.gaL(n).save() n.gaL(n).globalAlpha=(s>>>24&255)/255 if(e){s=H.bV() s=s!==C.W}else s=!1 q=m.b p=m.a o=q.a q=q.b if(s){n.gaL(n).translate(o,q) n.gaL(n).filter=H.arz(new P.qi(C.ft,p)) n.gaL(n).strokeStyle="" n.gaL(n).fillStyle=r}else{n.gaL(n).filter="none" n.gaL(n).strokeStyle="" n.gaL(n).fillStyle=r n.gaL(n).shadowBlur=p n.gaL(n).shadowColor=r n.gaL(n).shadowOffsetX=o n.gaL(n).shadowOffsetY=q}n.mC(n.gaL(n),b) n.gaL(n).fill() n.gaL(n).restore()}}, IU:function(a){var s,r,q,p=a.a.src p.toString s=this.b if(s!=null){r=s.adU(p) if(r!=null)return r}q=a.a8_() s=this.b if(s!=null)s.F_(p,new H.tb(q,H.aDm(),s.$ti.h("tb<1>"))) return q}, Gj:function(a2,a3,a4){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b=this,a="absolute",a0=u.u,a1=u.p t.gc.a(a2) s=a4.a r=a4.Q if(r instanceof H.zJ){q=r.b switch(q){case C.dP:case C.dO:case C.fl:case C.dM:case C.dN:case C.fk:case C.fo:case C.fs:case C.fq:case C.dQ:case C.fm:case C.fn:case C.fj:case C.fi:p=r.a switch(q){case C.fo:case C.fs:o=$.eU+1 $.eU=o n=a0+o+'" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">' break case C.fq:o=$.eU+1 $.eU=o n=a0+o+a1+H.c(H.cs(p))+'" flood-opacity="1" result="flood">' break case C.fi:o=$.eU+1 $.eU=o n=a0+o+a1+H.c(H.cs(p))+'" flood-opacity="1" result="flood">' break case C.fj:o=$.eU+1 $.eU=o n=a0+o+a1+H.c(H.cs(p))+'" flood-opacity="1" result="flood">' break case C.fk:o=$.eU+1 $.eU=o n=a0+o+a1+H.c(H.cs(p))+'" flood-opacity="1" result="flood">' break case C.dM:p.toString $.eU=$.eU+1 m=p.gadt().hH(0,255) l=p.ga7o().hH(0,255) k=p.gQa().hH(0,255) n=a0+$.eU+'" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">' break case C.dN:n=H.ar4(p,"hard-light",!0) break case C.dQ:case C.dO:case C.dP:case C.fl:case C.fm:case C.fn:case C.j4:case C.iX:case C.dN:case C.iY:case C.iZ:case C.dO:case C.dP:case C.j0:case C.j1:case C.j2:case C.j3:n=H.ar4(p,H.RV(q),!1) break case C.fh:case C.j_:case C.fp:case C.fr:case C.j5:case C.iW:case C.cb:n=null break default:H.e(H.j(u.I)) n=null}j=W.vH(n,new H.oI(),null) b.c.appendChild(j) b.f.push(j) i=b.IU(a2) o=i.style h="url(#_fcf"+$.eU+")" o.toString C.e.a_(o,C.e.R(o,"filter"),h,"") if(q===C.dQ){q=i.style o=H.cs(p) q.toString q.backgroundColor=o==null?"":o}break default:p=r.a i=document.createElement("div") g=i.style switch(q){case C.iW:case C.fr:g.position=a break case C.fh:case C.cb:g.position=a q=H.cs(p) g.backgroundColor=q==null?"":q break case C.j_:case C.fp:g.position=a q="url('"+H.c(a2.a.src)+"')" g.backgroundImage=q break default:g.position=a o="url('"+H.c(a2.a.src)+"')" g.backgroundImage=o q=H.RV(q) if(q==null)q="" C.e.a_(g,C.e.R(g,"background-blend-mode"),q,"") q=H.cs(p) g.backgroundColor=q==null?"":q break}break}}else i=b.IU(a2) q=i.style o=H.RV(s) if(o==null)o="" q.toString C.e.a_(q,C.e.R(q,"mix-blend-mode"),o,"") q=b.d if(q.b!=null){o=i.style o.removeProperty("width") o.removeProperty("height") o=q.b o.toString f=H.al_(o,i,a3,q.c) for(q=f.length,o=b.c,h=b.f,e=0;e>>16&255,q.gm(q)>>>8&255,q.gm(q)&255)) q.toString s.shadowColor=q}else{q=H.cs(C.t) q.toString s.shadowColor=q}s.translate(-5e4,0) m=new Float32Array(2) q=$.b4().x m[0]=5e4*(q==null?H.b0():q) q=j.b q.c.Pc(m) l=m[0] k=m[1] m[1]=0 m[0]=0 q.c.Pc(m) s.shadowOffsetX=l-m[0] s.shadowOffsetY=k-m[1]}}, lO:function(){var s=this,r=s.Q if((r==null?null:r.y)!=null){r=H.bV() r=r===C.W||!1}else r=!1 if(r)s.a.restore() r=s.ch if(r!=null){s.a.translate(-r.a,-r.b) s.ch=null}}, h2:function(a){var s=this.a if(a===C.ab)s.stroke() else s.fill()}, e7:function(a){var s=this,r=s.a r.fillStyle="" s.r=r.fillStyle r.strokeStyle="" s.x=r.strokeStyle r.shadowBlur=0 r.shadowColor="none" r.shadowOffsetX=0 r.shadowOffsetY=0 r.globalCompositeOperation="source-over" s.d=C.cb r.lineWidth=1 s.y=1 r.lineCap="butt" s.e=C.bK r.lineJoin="miter" s.f=C.cE s.ch=null}} H.Pk.prototype={ az:function(a){C.b.sl(this.a,0) this.b=null this.c=H.dt()}, bu:function(a){var s=this.c,r=new H.bt(new Float32Array(16)) r.bC(s) s=this.b s=s==null?null:P.bk(s,!0,t.F7) this.a.push(new H.Pj(r,s))}, bj:function(a){var s,r=this.a if(r.length===0)return s=r.pop() this.c=s.a this.b=s.b}, af:function(a,b,c){this.c.af(0,b,c)}, d_:function(a,b,c){this.c.d_(0,b,c)}, h5:function(a,b){this.c.OZ(0,$.atK(),b)}, b1:function(a,b){this.c.cz(0,new H.bt(b))}, jV:function(a,b){var s,r,q=this.b if(q==null)q=this.b=H.b([],t.EM) s=this.c r=new H.bt(new Float32Array(16)) r.bC(s) q.push(new H.oK(b,null,null,r))}, jU:function(a,b){var s,r,q=this.b if(q==null)q=this.b=H.b([],t.EM) s=this.c r=new H.bt(new Float32Array(16)) r.bC(s) q.push(new H.oK(null,b,null,r))}, fh:function(a,b){var s,r,q=this.b if(q==null)q=this.b=H.b([],t.EM) s=this.c r=new H.bt(new Float32Array(16)) r.bC(s) q.push(new H.oK(null,null,b,r))}} H.hC.prototype={ iI:function(a,b,c){J.amh(this.a,b.gZ(),$.Sb(),c)}, mV:function(a,b,c){J.ami(this.a,H.mi(b),$.Sb(),c)}, jW:function(a,b,c,d){J.amj(this.a,H.e6(b),$.am1()[c.a],d)}, eB:function(a,b,c,d){J.amm(this.a,b.a,b.b,c,d.gZ())}, fW:function(a,b,c,d){J.amn(this.a,H.mi(b),H.mi(c),d.gZ())}, i2:function(a,b,c,d){var s,r,q,p,o,n="canvasKit",m=d.cx,l=this.a if(m===C.jR)J.amo(l,a.gdI().gZ(),H.e6(b),H.e6(c),0.3333333333333333,0.3333333333333333,d.gZ()) else{s=a.gdI().gZ() r=H.e6(b) q=H.e6(c) p=$.c8 if(m===C.fO)p=J.amF(J.Sn(p===$?H.e(H.t(n)):p)) else p=J.Sp(J.Sn(p===$?H.e(H.t(n)):p)) o=$.c8 if(m===C.jQ)o=J.Sp(J.Sq(o===$?H.e(H.t(n)):o)) else o=J.aiO(J.Sq(o===$?H.e(H.t(n)):o)) J.amp(l,s,r,q,p,o,d.gZ())}}, hs:function(a,b,c,d){J.amq(this.a,b.a,b.b,c.a,c.b,d.gZ())}, pE:function(a,b){J.amr(this.a,b.gZ())}, eW:function(a,b,c){J.ams(this.a,b.gZ(),c.a,c.b)}, cj:function(a,b,c){J.amt(this.a,b.gZ(),c.gZ())}, pF:function(a,b){J.aiM(this.a,b.gZ())}, ct:function(a,b,c){J.amu(this.a,H.mi(b),c.gZ())}, ck:function(a,b,c){J.amv(this.a,H.e6(b),c.gZ())}, ht:function(a,b,c,d,e){var s=$.b4().x if(s==null)s=H.b0() H.as9(this.a,b,c,d,e,s)}, bj:function(a){J.an4(this.a)}, lL:function(a,b){J.an5(this.a,b)}, h5:function(a,b){J.an6(this.a,b*180/3.141592653589793,0,0)}, bu:function(a){return J.an7(this.a)}, eK:function(a,b,c){var s=c==null?null:c.gZ() J.an8(this.a,s,H.e6(b),null,null)}, d_:function(a,b,c){J.an9(this.a,b,c)}, b1:function(a,b){J.aml(this.a,H.asE(b))}, af:function(a,b,c){J.ane(this.a,b,c)}, gOk:function(){return null}} H.I_.prototype={ iI:function(a,b,c){this.Rh(0,b,c) this.b.b.push(new H.DN(b,c))}, mV:function(a,b,c){this.Ri(0,b,c) this.b.b.push(new H.DO(b,c))}, jW:function(a,b,c,d){this.Rj(0,b,c,d) this.b.b.push(new H.DP(b,c,d))}, eB:function(a,b,c,d){this.Rk(0,b,c,d) this.b.b.push(new H.DQ(b,c,d))}, fW:function(a,b,c,d){this.Rl(0,b,c,d) this.b.b.push(new H.DR(b,c,d))}, i2:function(a,b,c,d){var s,r this.Rm(a,b,c,d) s=a.gdI() r=new H.l_(s) r.V6(s) this.b.b.push(new H.DS(r,b,c,d))}, hs:function(a,b,c,d){this.Rn(0,b,c,d) this.b.b.push(new H.DT(b,c,d))}, pE:function(a,b){this.Ro(0,b) this.b.b.push(new H.DU(b))}, eW:function(a,b,c){this.Rp(0,b,c) this.b.b.push(new H.DV(b,c))}, cj:function(a,b,c){this.Rq(0,b,c) this.b.b.push(new H.DW(b,c))}, pF:function(a,b){this.Rr(0,b) this.b.b.push(new H.DX(b))}, ct:function(a,b,c){this.Rs(0,b,c) this.b.b.push(new H.DY(b,c))}, ck:function(a,b,c){this.Rt(0,b,c) this.b.b.push(new H.DZ(b,c))}, ht:function(a,b,c,d,e){this.Ru(0,b,c,d,e) this.b.b.push(new H.E_(b,c,d,e))}, bj:function(a){this.Rv(0) this.b.b.push(C.o0)}, lL:function(a,b){this.Rw(0,b) this.b.b.push(new H.E5(b))}, h5:function(a,b){this.Rx(0,b) this.b.b.push(new H.E6(b))}, bu:function(a){this.b.b.push(C.o1) return this.Ry(0)}, eK:function(a,b,c){this.Rz(0,b,c) this.b.b.push(new H.E8(b,c))}, d_:function(a,b,c){this.RA(0,b,c) this.b.b.push(new H.E9(b,c))}, b1:function(a,b){this.RB(0,b) this.b.b.push(new H.Eb(b))}, af:function(a,b,c){this.RC(0,b,c) this.b.b.push(new H.Ec(b,c))}, gOk:function(){return this.b}} H.Ua.prototype={ ae5:function(){var s,r,q,p,o=new self.window.flutterCanvasKit.PictureRecorder(),n=J.k(o),m=n.lc(o,H.e6(this.a)) for(s=this.b,r=s.length,q=0;q") s=new H.bI(s,r) return new H.bj(s,s.gl(s),r.h("bj"))}} H.Xq.prototype={ adu:function(a,b){var s,r,q,p=$.c8,o=J.am9(J.ama(J.amB(p===$?H.e(H.t("canvasKit")):p)),b) if(o==null){$.ck().$1("Failed to parse fallback font "+a+" as a font.") return}p=this.r p.bX(0,a,new H.Xs()) s=p.i(0,a) s.toString r=p.i(0,a) r.toString p.n(0,a,r+1) q=a+" "+H.c(s) this.e.push(H.aqw(b,q,o)) this.f.push(q)}} H.Xr.prototype={ $0:function(){return H.b([],t.Cz)}, $S:145} H.Xs.prototype={ $0:function(){return 0}, $S:60} H.ahF.prototype={ $1:function(a){return this.a.b.C(0,a)}, $S:43} H.ah1.prototype={ $0:function(){return H.b([],t.Cz)}, $S:145} H.ah6.prototype={ $1:function(a){var s,r,q for(s=P.ajR(a),s=new P.d8(s.a(),s.$ti.h("d8<1>"));s.q();){r=s.gw(s) if(J.p6(r," src:")){q=C.c.eF(r,"url(") if(q===-1){$.ck().$1("Unable to resolve Noto font URL: "+r) return null}return C.c.V(r,q+4,C.c.eF(r,")"))}}$.ck().$1("Unable to determine URL for Noto font") return null}, $S:195} H.ahH.prototype={ $1:function(a){return C.b.C($.atR(),a)}, $S:176} H.ahI.prototype={ $1:function(a){return this.a.a.d.c.a.uk(a)}, $S:43} H.nB.prototype={ pI:function(){var s=0,r=P.af(t.H),q=this,p,o,n var $async$pI=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:s=q.d==null?2:3 break case 2:p=q.c s=p==null?4:6 break case 4:q.c=new P.aH(new P.a1($.R,t.U),t.gR) p=$.p3().a o=q.a n=H s=7 return P.ak(p.AQ("https://fonts.googleapis.com/css2?family="+H.is(o," ","+")),$async$pI) case 7:q.d=n.aDY(b,o) q.c.ez(0) s=5 break case 6:s=8 return P.ak(p.a,$async$pI) case 8:case 5:case 3:return P.ad(null,r)}}) return P.ae($async$pI,r)}, gar:function(a){return this.a}} H.h0.prototype={ k:function(a,b){if(b==null)return!1 if(!(b instanceof H.h0))return!1 return b.a===this.a&&b.b===this.b}, gt:function(a){return P.a5(this.a,this.b,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){return"["+this.a+", "+this.b+"]"}} H.adD.prototype={ gar:function(a){return this.a}} H.oJ.prototype={ j:function(a){return"_ResolvedNotoSubset("+this.b+", "+this.a+")"}} H.Fp.prototype={ B:function(a,b){var s,r,q=this if(q.b.C(0,b)||q.c.am(0,b.a))return s=q.c r=s.gO(s) s.n(0,b.a,b) if(r)P.ci(C.G,q.gR1())}, kK:function(){var s=0,r=P.af(t.H),q=1,p,o=[],n=this,m,l,k,j,i,h,g,f,e var $async$kK=P.a9(function(a,b){if(a===1){p=b s=q}while(true)switch(s){case 0:g=t.N f=P.y(g,t.uz) e=P.y(g,t.H3) for(g=n.c,m=g.gaZ(g),m=m.gM(m),l=t.H;m.q();){k=m.gw(m) f.n(0,k.a,P.ayT(new H.WO(n,k,e),l))}s=2 return P.ak(P.pS(f.gaZ(f),l),$async$kK) case 2:m=e.gaj(e) m=P.an(m,!0,H.u(m).h("l.E")) C.b.ha(m) l=H.Y(m).h("bI<1>") j=P.an(new H.bI(m,l),!0,l.h("av.E")) m=j.length,i=0 case 3:if(!(i")),h=m.a,g=!1;j.q();){f=j.d e=J.ag(f) d=e.i(f,"family") d.toString c=e.i(f,"fonts") if(d==="Roboto")g=!0 for(f=J.as(c);f.q();)h.push(m.oU(a0.vY(J.aS(f.gw(f),"asset")),d))}if(!g)h.push(m.oU("https://fonts.gstatic.com/s/roboto/v20/KFOmCnqEu92Fr1Me5WZLCzYlKw.ttf","Roboto")) case 1:return P.ad(q,r) case 2:return P.ac(o,r)}}) return P.ae($async$j3,r)}, oU:function(a,b){return this.a46(a,b)}, a46:function(a,b){var s=0,r=P.af(t.gB),q,p=2,o,n=[],m=this,l,k,j,i,h,g,f var $async$oU=P.a9(function(c,d){if(c===1){o=d s=p}while(true)switch(s){case 0:g=null p=4 s=7 return P.ak(C.aB.AZ(window,a).bN(0,m.ga_n(),t.pI),$async$oU) case 7:g=d p=2 s=6 break case 4:p=3 f=o l=H.U(f) $.ck().$1("Failed to load font "+H.c(b)+" at "+H.c(a)) $.ck().$1(J.bB(l)) q=null s=1 break s=6 break case 3:s=2 break case 6:j=g j.toString i=H.cK(j,0,null) j=$.c8 h=J.am9(J.ama(J.amB(j===$?H.e(H.t("canvasKit")):j)),i) if(h!=null){q=H.aqw(i,b,h) s=1 break}else{$.ck().$1("Failed to load font "+H.c(b)+" at "+H.c(a)) $.ck().$1("Verify that "+H.c(a)+" contains a valid font.") q=null s=1 break}case 1:return P.ad(q,r) case 2:return P.ac(o,r)}}) return P.ae($async$oU,r)}, a_o:function(a){return J.ur(J.ame(a),new H.a5U(),t.pI)}} H.a5V.prototype={ $0:function(){return H.b([],t.TZ)}, $S:124} H.a5W.prototype={ $0:function(){return H.b([],t.TZ)}, $S:124} H.a5U.prototype={ $1:function(a){return t.pI.a(a)}, $S:155} H.tX.prototype={} H.FY.prototype={ j:function(a){return"ImageCodecException: "+this.a}, $icc:1} H.DM.prototype={ i_:function(){var s,r=$.c8 if(r===$)r=H.e(H.t("canvasKit")) s=J.auA(r,this.c) if(s==null)throw H.a(new H.FY("Failed to decode image data.\nImage source: "+this.b)) return s}, kA:function(){return this.i_()}, e1:function(a){var s=this.a if(s!=null)J.iu(s)}, gBe:function(){return J.awm(this.gZ())}, gCs:function(){return J.awz(this.gZ())}, qZ:function(){return P.dD(new H.D6(P.cJ(0,J.auV(this.gZ())),H.axZ(J.awl(this.gZ()))),t.Uy)}, $il0:1} H.l_.prototype={ V5:function(a){var s,r,q,p,o=this,n="canvasKit" if($.Si()){s=new H.rq(P.aZ(t.XY),null,t.im) s.Hw(o,a) r=$.aiv() q=s.d q.toString r.nH(0,s,q) o.sdI(s)}else{s=$.c8 s=J.amI(J.amx(s===$?H.e(H.t(n)):s)) r=$.c8 r=J.amJ(J.amy(r===$?H.e(H.t(n)):r)) p=H.ay_(s,self.window.flutterCanvasKit.ColorSpace.SRGB,r,C.k4,a) if(p==null){$.ck().$1("Unable to encode image to bytes. We will not be able to resurrect it once it has been garbage collected.") return}s=J.k(a) s=new H.rq(P.aZ(t.XY),new H.U4(s.CU(a),s.Bp(a),p),t.im) s.Hw(o,a) H.rr() $.S9().B(0,s) o.sdI(s)}}, V6:function(a){++this.gdI().a}, gdI:function(){var s=this.b return s===$?H.e(H.t("box")):s}, sdI:function(a){if(this.b===$)this.b=a else throw H.a(H.lj("box"))}, p:function(a){var s,r this.c=!0 s=this.gdI() if(--s.a===0){r=s.d if(r!=null)if($.Si())$.aiv().Lq(r) else{s.e1(0) s.AE()}s.e=s.d=s.c=null s.f=!0}}, dj:function(a){var s=new H.l_(this.gdI());++s.gdI().a return s}, BE:function(a){return a instanceof H.l_&&J.awE(a.gdI().gZ(),this.gdI().gZ())}, gay:function(a){return J.anf(this.gdI().gZ())}, gai:function(a){return J.amX(this.gdI().gZ())}, j:function(a){return"["+H.c(J.anf(this.gdI().gZ()))+"\xd7"+H.c(J.amX(this.gdI().gZ()))+"]"}} H.U4.prototype={ $0:function(){var s,r,q="canvasKit",p=$.c8,o=p===$?H.e(H.t(q)):p p=J.amI(J.amx(p)) s=$.c8 s=J.amJ(J.amy(s===$?H.e(H.t(q)):s)) r=this.a return J.auF(o,{width:r,height:this.b,alphaType:p,colorSpace:self.window.flutterCanvasKit.ColorSpace.SRGB,colorType:s},H.cK(this.c.buffer,0,null),4*r)}, $S:491} H.D6.prototype={ gMh:function(a){return this.a}, gfn:function(a){return this.b}, $iw2:1} H.ahW.prototype={ $1:function(a){return this.a.a=a}, $S:138} H.ahV.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("loadSubscription")):s}, $S:153} H.ahX.prototype={ $1:function(a){J.CS(this.a.$0()) J.axf(self.window.CanvasKitInit({locateFile:P.mf(new H.ahT())}),P.mf(new H.ahU(this.b)))}, $S:6} H.ahT.prototype={ $2:function(a,b){return C.c.U("https://unpkg.com/canvaskit-wasm@0.25.1/bin/",a)}, $C:"$2", $R:2, $S:358} H.ahU.prototype={ $1:function(a){$.c8=a self.window.flutterCanvasKit=a===$?H.e(H.t("canvasKit")):a this.a.ez(0)}, $S:351} H.G6.prototype={} H.Zy.prototype={ $2:function(a,b){var s,r,q,p,o for(s=J.as(b),r=this.a,q=this.b.h("iJ<0>");s.q();){p=s.gw(s) o=p.a p=p.b r.push(new H.iJ(a,o,p,p,q))}}, $S:function(){return this.b.h("~(0,v)")}} H.Zz.prototype={ $2:function(a,b){return a.b-b.b}, $S:function(){return this.a.h("p(iJ<0>,iJ<0>)")}} H.Zx.prototype={ $1:function(a){var s,r,q=a.length if(q===0)return null if(q===1)return C.b.gc5(a) s=q/2|0 r=a[s] r.e=this.$1(C.b.c2(a,0,s)) r.f=this.$1(C.b.fc(a,s+1)) return r}, $S:function(){return this.a.h("iJ<0>?(v>)")}} H.Zw.prototype={ $1:function(a){var s,r=this,q=a.e,p=q==null if(p&&a.f==null)a.d=a.c else if(p){q=a.f q.toString r.$1(q) a.d=Math.max(a.c,a.f.d)}else{p=a.f s=a.c if(p==null){r.$1(q) a.d=Math.max(s,a.e.d)}else{r.$1(p) q=a.e q.toString r.$1(q) a.d=Math.max(s,Math.max(a.e.d,a.f.d))}}}, $S:function(){return this.a.h("~(iJ<0>)")}} H.iJ.prototype={ Lz:function(a){return this.b<=a&&a<=this.c}, uk:function(a){var s,r=this if(a>r.d)return!1 if(r.Lz(a))return!0 s=r.e if((s==null?null:s.uk(a))===!0)return!0 if(ar.d)return s=r.e if(s!=null)s.rd(a,b) if(r.Lz(a))b.push(r.a) if(a=q.c||q.b>=q.d)q=o.b else{n=o.b if(!(n.a>=n.c||n.b>=n.d))q=q.ka(n)}}return q}, kt:function(a){var s,r,q,p,o for(s=this.c,r=s.length,q=0;q=o.c||o.b>=o.d))p.h2(a)}}} H.IE.prototype={ h2:function(a){this.kt(a)}} H.Ef.prototype={ j0:function(a,b){var s,r,q=null,p=this.f,o=a.c.a o.push(new H.hZ(C.l4,q,q,p,q,q)) s=this.lE(a,b) r=H.asd(J.aiT(p.gZ())) if(s.Cd(r))this.b=s.f_(r) o.pop()}, h2:function(a){var s,r=this,q=a.a q.bu(0) s=r.r q.iI(0,r.f,s!==C.ak) s=s===C.bR if(s)q.eK(0,r.b,null) r.kt(a) if(s)q.bj(0) q.bj(0)}, $iUh:1} H.Ej.prototype={ j0:function(a,b){var s,r=null,q=this.f,p=a.c.a p.push(new H.hZ(C.l2,q,r,r,r,r)) s=this.lE(a,b) if(s.Cd(q))this.b=s.f_(q) p.pop()}, h2:function(a){var s,r,q=a.a q.bu(0) s=this.f r=this.r q.jW(0,s,C.bP,r!==C.ak) r=r===C.bR if(r)q.eK(0,s,null) this.kt(a) if(r)q.bj(0) q.bj(0)}, $iUj:1} H.Eg.prototype={ j0:function(a,b){var s,r,q,p,o=null,n=this.f,m=a.c.a m.push(new H.hZ(C.l3,o,n,o,o,o)) s=this.lE(a,b) r=n.a q=n.b p=n.c n=n.d if(s.Cd(new P.x(r,q,p,n)))this.b=s.f_(new P.x(r,q,p,n)) m.pop()}, h2:function(a){var s,r=this,q=a.a q.bu(0) s=r.r q.mV(0,r.f,s!==C.ak) s=s===C.bR if(s)q.eK(0,r.b,null) r.kt(a) if(s)q.bj(0) q.bj(0)}, $iUi:1} H.H2.prototype={ j0:function(a,b){var s,r,q,p,o=this,n=null,m=new H.bt(new Float32Array(16)) m.bC(b) s=o.r r=s.a s=s.b m.af(0,r,s) q=H.dt() q.m2(r,s,0) p=a.c.a p.push(H.aoM(q)) p.push(new H.hZ(C.l6,n,n,n,n,o.f)) o.RI(a,m) p.pop() p.pop() o.b=o.b.af(0,r,s)}, h2:function(a){var s,r,q,p=this,o=H.b_() o.sap(0,P.aI(p.f,0,0,0)) s=a.a s.bu(0) r=p.r q=r.a r=r.b s.af(0,q,r) s.eK(0,p.b.bJ(new P.m(-q,-r)),o) p.kt(a) s.bj(0) s.bj(0)}, $ia0F:1} H.zi.prototype={ j0:function(a,b){var s=this.f,r=b.a4(0,s),q=a.c.a q.push(H.aoM(s)) this.b=H.S5(s,this.lE(a,r)) q.pop()}, h2:function(a){var s=a.a s.bu(0) s.b1(0,this.f.a) this.kt(a) s.bj(0)}, $iKi:1} H.H0.prototype={$ia0C:1} H.HF.prototype={ j0:function(a,b){this.b=this.c.b.bJ(this.d)}, h2:function(a){var s,r=a.b r.bu(0) s=this.d r.af(0,s.a,s.b) r.pF(0,this.c) r.bj(0)}} H.HD.prototype={ j0:function(a,b){var s,r=this r.lE(a,b) s=$.b4().x if(s==null)s=H.b0() r.b=H.aF5(r.y,r.f,s,b)}, h2:function(a){var s,r,q,p,o=this,n=o.f if(n!==0){s=o.x s.toString r=o.r a.b.ht(0,o.y,s,n,(r.gm(r)>>>24&255)!==255)}q=H.b_() q.sap(0,o.r) n=o.z s=n===C.bR if(!s)a.b.cj(0,o.y,q) r=a.a p=r.bu(0) switch(n){case C.ak:r.iI(0,o.y,!1) break case C.bQ:r.iI(0,o.y,!0) break case C.bR:r.iI(0,o.y,!0) r.eK(0,o.b,null) break case C.V:break default:throw H.a(H.j(u.I))}if(s)a.b.pE(0,q) o.kt(a) r.lL(0,p)}, $ia19:1} H.Gg.prototype={ p:function(a){}} H.a_a.prototype={ gpq:function(){var s=this.b return s===$?H.e(H.t("currentLayer")):s}, KU:function(a,b){throw H.a(P.ce(null))}, KV:function(a,b,c,d){var s=this.gpq(),r=new H.HF(t.Bn.a(b),a,C.Z) s.toString r.a=s s.c.push(r)}, KW:function(a){var s=this.gpq() t.L6.a(a) s.toString a.a=s s.c.push(a)}, bm:function(a){return new H.Gg(new H.a_b(this.a,$.b4().gij()))}, dr:function(a){var s,r=this if(r.gpq()===r.a)return s=r.gpq().a s.toString r.b=s}, Ot:function(a,b,c){return this.lG(new H.Ef(t.E_.a(a),b,H.b([],t.k5),C.Z))}, Ou:function(a,b,c){return this.lG(new H.Eg(a,b,H.b([],t.k5),C.Z))}, Ov:function(a,b,c){return this.lG(new H.Ej(a,b,H.b([],t.k5),C.Z))}, Ow:function(a,b,c){var s=H.dt() s.m2(a,b,0) return this.lG(new H.H0(s,H.b([],t.k5),C.Z))}, Ox:function(a,b,c){return this.lG(new H.H2(a,b,H.b([],t.k5),C.Z))}, Oz:function(a,b,c,d,e,f){return this.lG(new H.HD(c,b,f,t.E_.a(e),a,H.b([],t.k5),C.Z))}, qA:function(a,b){return this.lG(new H.zi(new H.bt(H.S4(a)),H.b([],t.k5),C.Z))}, DA:function(a){}, DB:function(a){}, DN:function(a){}, ade:function(a){var s=this.gpq() s.toString a.a=s s.c.push(a) return this.b=a}, lG:function(a){return this.ade(a,t.vn)}} H.a_b.prototype={ ad_:function(a,b){var s,r,q,p,o=H.b([],t.zR),n=a.a o.push(n) s=a.c.PF() for(r=0;r").a(s.b).Fb() s.toString r.c.n(0,b,s) if(q.b>r.a)H.aB_(r)}, adP:function(a){var s,r,q,p,o,n,m,l=this.a/2|0 for(s=this.c,r=this.b,q=r.$ti,p=q.h("oB<1>"),o=0;o").a(n.a).IE(0);--r.b s.u(0,m) m.e1(0) m.AE()}}} H.dG.prototype={} H.ez.prototype={ iy:function(a){var s=this,r=a==null?s.i_():a s.a=r if($.Si())$.aiv().nH(0,s,r) else if(s.gq7()){H.rr() $.S9().B(0,s)}else{H.rr() $.yw.push(s)}}, gZ:function(){var s,r=this,q=r.a if(q==null){s=r.kA() r.a=s if(r.gq7()){H.rr() $.S9().B(0,r)}else{H.rr() $.yw.push(r)}q=s}return q}, AE:function(){this.a=null}, gq7:function(){return!1}} H.rq.prototype={ Hw:function(a,b){this.d=this.c=b}, gZ:function(){var s=this,r=s.c if(r==null){r=s.e.$0() s.c=r s.d=t.Ep.a(r) H.rr() $.S9().B(0,s) r=s.gZ()}return r}, e1:function(a){var s=this.d if(s!=null)J.iu(s)}, AE:function(){this.d=this.c=null}} H.yN.prototype={ E5:function(a){return this.b.$2(this,new H.hC(J.aiU(this.a.a)))}} H.rC.prototype={ JJ:function(){var s,r=this.d if(r!=null){s=this.c if(s!=null)J.ax8(s,r)}}, KP:function(a){var s,r=this.YX(a),q=r.c if(q!=null){s=$.c8 J.aiW(s===$?H.e(H.t("canvasKit")):s,q)}return new H.yN(r,new H.a6I(this))}, YX:function(a){var s,r,q=this if(a.gO(a))throw H.a(H.anz("Cannot create surfaces of empty size.")) s=q.Q if(!q.b&&s!=null&&a.a<=s.a&&a.b<=s.b){r=$.b4().x if(r==null)r=H.b0() if(r!==q.ch)q.Kf() r=q.a r.toString return r}r=$.b4().x q.ch=r==null?H.b0():r q.Q=q.Q==null?a:a.a4(0,1.4) r=q.a if(r!=null)r.p(0) q.a=null q.y=!1 r=q.Q r.toString return q.a=q.YV(r)}, Kf:function(){var s,r,q=this.r,p=$.b4(),o=p.x if(o==null)o=H.b0() s=this.x p=p.x if(p==null)p=H.b0() r=this.f.style o=H.c(q/o)+"px" r.width=o q=H.c(s/p)+"px" r.height=q}, YV:function(a){var s,r,q,p,o=this,n="canvasKit",m=o.f if(m!=null)C.cU.c4(m) o.r=J.amg(a.a) m=J.amg(a.b) o.x=m s=o.f=W.v5(m,o.r) m=s.style m.position="absolute" o.Kf() C.cU.l9(s,"webglcontextlost",new H.a6H(o),!1) o.b=!1 o.e.appendChild(s) m=$.oS if(m==null){m=$.oS=H.agG() r=m}else r=m if(m===-1)return o.yM(s,"WebGL support not detected") else{m=$.c8 if(m===$)m=H.e(H.t(n)) q=J.auy(m,s,{anitalias:0,majorVersion:r}) if(q===0)return o.yM(s,"Failed to initialize WebGL context") m=$.c8 m=J.auE(m===$?H.e(H.t(n)):m,q) o.c=m if(m==null)throw H.a(H.anz("Failed to initialize CanvasKit. CanvasKit.MakeGrContext returned null.")) o.JJ() m=$.c8 if(m===$)m=H.e(H.t(n)) r=o.c r.toString p=J.auH(m,r,o.r,o.x,self.window.flutterCanvasKit.ColorSpace.SRGB) if(p==null)return o.yM(s,"Failed to initialize WebGL surface") return new H.Ea(p,o.c,q)}}, yM:function(a,b){var s if(!$.apI){$.ck().$1("WARNING: Falling back to CPU-only rendering. "+b+".") $.apI=!0}s=$.c8 return new H.Ea(J.auI(s===$?H.e(H.t("canvasKit")):s,a),null,null)}} H.a6I.prototype={ $2:function(a,b){var s,r=this.a,q=r.a.c if(q!=null){s=$.c8 J.aiW(s===$?H.e(H.t("canvasKit")):s,q)}J.auZ(r.a.a) return!0}, $S:344} H.a6H.prototype={ $1:function(a){P.uk("Flutter: restoring WebGL context.") this.a.b=!0 $.bw().BD() a.stopPropagation() a.preventDefault()}, $S:4} H.Ea.prototype={ p:function(a){var s,r,q=this if(q.d)return s=q.c if(s!=null){r=$.c8 J.aiW(r===$?H.e(H.t("canvasKit")):r,s)}J.Sl(q.a) s=q.b if(s!=null){r=J.k(s) r.adA(s) r.e1(s)}q.d=!0}} H.E2.prototype={} H.vc.prototype={ gDZ:function(){var s=this,r=s.go if(r===$){r=new H.Ub(s).$0() if(s.go===$)s.go=r else r=H.e(H.bS("skTextStyle"))}return r}} H.Ub.prototype={ $0:function(){var s,r,q,p,o,n,m,l,k="canvasKit",j=this.a,i=j.a,h=j.b,g=j.c,f=j.d,e=j.e,d=j.f,c=j.x,b=j.Q,a=j.ch,a0=j.cx,a1=j.cy,a2=j.dx,a3=j.dy,a4=j.fr,a5=H.apC(null) if(a2!=null)a5.backgroundColor=H.uj(a2.x) if(i!=null)a5.color=H.uj(i) if(h!=null){s=$.c8 r=J.avJ(s===$?H.e(H.t(k)):s) s=h.a if((s|1)===s){q=$.c8 r=(r|J.aw7(q===$?H.e(H.t(k)):q))>>>0}if((s|2)===s){q=$.c8 r=(r|J.avM(q===$?H.e(H.t(k)):q))>>>0}if((s|4)===s){s=$.c8 r=(r|J.avB(s===$?H.e(H.t(k)):s))>>>0}a5.decoration=r}if(e!=null)a5.decorationThickness=e if(g!=null)a5.decorationColor=H.uj(g) if(f!=null)a5.decorationStyle=$.aud()[f.a] if(c!=null)a5.textBaseline=$.auc()[c.a] if(b!=null)a5.fontSize=b if(a!=null)a5.letterSpacing=a if(a0!=null)a5.wordSpacing=a0 if(a1!=null)a5.heightMultiplier=a1 s=j.fy if(s===$){s=H.al9(j.y,j.z) if(j.fy===$)j.fy=s else s=H.e(H.bS("effectiveFontFamilies"))}a5.fontFamilies=s if(d!=null||!1)a5.fontStyle=H.alN(d,j.r) if(a3!=null)a5.foregroundColor=H.uj(a3.x) if(a4!=null){p=H.b([],t.tA) for(o=0;o<1;++o){n=a4[o] m=H.aAZ(null) m.color=H.uj(n.a) j=n.b l=new Float32Array(2) l[0]=j.a l[1]=j.b m.offset=l m.blurRadius=n.c p.push(m)}a5.shadows=p}j=$.c8 return J.auK(j===$?H.e(H.t(k)):j,a5)}, $S:325} H.va.prototype={ i_:function(){return this.b}, kA:function(){var s,r,q,p,o,n,m,l,k,j=this,i=null,h=H.anE(j.c) for(s=j.d,r=s.length,q=h.c,p=h.a,o=J.k(p),n=0;n=q.gE1(r)&&p<=q.gMm(r))return new P.eM(q.gE1(r),q.gMm(r))}return new P.eM(-1,-1)}} H.U6.prototype={ Gt:function(a){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b a.toString s=P.Gp(new P.y9(a),t.Dc.h("l.E")) r=P.an(s,!0,H.u(s).h("cQ.E")) if(this.Yn(r))return if(this.Yo(r))return s=a.length p=0 while(!0){if(!(p=160){q=!1 break}++p}if(q)return o=C.b.gL(this.f) n=H.b([],t.s) s=o.y if(s!=null)n.push(s) s=o.z if(s!=null)C.b.J(n,s) m=H.b([],t.TZ) for(s=n.length,l=0;l127&&c<160 else c=!0}else c=!0 i[p]=C.d3.r7(d,c)}}if(C.b.hX(i,new H.U9())){b=H.b([],t._) for(p=0;p127&&f<160 else f=!0}else f=!0 r[g]=C.d3.r7(e,f)}}c=0 while(!0){if(!(c=0;--g)if(r[g])C.b.eH(a,g) return!1}, Yo:function(a){var s=$.p0() if(!!a.fixed$length)H.e(P.F("removeWhere")) C.b.mA(a,new H.U8(s),!0) return a.length===0}, jL:function(a,b){this.Gt(b) this.c.push(new H.m4(C.iE,b,null,null)) J.amc(this.a,b)}, bm:function(a){var s=new H.va(this.Fi(),this.b,this.c) s.iy(null) return s}, Fi:function(){var s=this.a,r=J.k(s),q=r.bm(s) r.e1(s) return q}, gCi:function(){return this.e}, dr:function(a){var s=this.f if(s.length<=1)return this.c.push(C.HB) s.pop() J.awN(this.a)}, kx:function(a4,a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0=this,a1=null,a2=a0.f,a3=C.b.gL(a2) t.BQ.a(a5) s=a5.a if(s==null)s=a3.a r=a5.b if(r==null)r=a3.b q=a5.c if(q==null)q=a3.c p=a5.d if(p==null)p=a3.d o=a5.e if(o==null)o=a3.e n=a5.f if(n==null)n=a3.f m=a5.x if(m==null)m=a3.x l=a5.y if(l==null)l=a3.y k=a5.z if(k==null)k=a3.z j=a5.Q if(j==null)j=a3.Q i=a5.ch if(i==null)i=a3.ch h=a5.cx if(h==null)h=a3.cx g=a5.cy if(g==null)g=a3.cy f=a5.dx if(f==null)f=a3.dx e=a5.dy if(e==null)e=a3.dy d=a5.fr if(d==null)d=a3.fr c=H.aj9(f,s,r,q,p,o,l,k,a3.fx,j,a3.r,n,e,g,i,a3.db,d,m,h) a2.push(c) a0.c.push(new H.m4(C.mG,a1,a5,a1)) a2=c.dy s=a2==null if(!s||c.dx!=null){b=s?a1:a2.gZ() if(b==null){b=$.asQ() a2=c.a a2=a2==null?a1:a2.gm(a2) J.aiV(b,a2==null?4278190080:a2)}a2=c.dx a=a2==null?a1:a2.gZ() if(a==null)a=$.asP() J.awO(a0.a,c.gDZ(),b,a)}else J.an0(a0.a,c.gDZ())}} H.U9.prototype={ $1:function(a){return!a}, $S:309} H.U7.prototype={ $1:function(a){return this.a.c.C(0,a)}, $S:43} H.U8.prototype={ $1:function(a){return this.a.b.C(0,a)}, $S:43} H.m4.prototype={ d4:function(a){return this.b.$0()}} H.tT.prototype={ j:function(a){return this.b}} H.agL.prototype={ $1:function(a){return this.a==a}, $S:29} H.DE.prototype={ j:function(a){return"CanvasKitError: "+this.a}} H.El.prototype={ Qw:function(a,b){var s={} s.a=!1 this.a.o0(0,J.aS(a.b,"text")).bN(0,new H.Un(s,b),t.P).jR(new H.Uo(s,b))}, PH:function(a){this.b.qW(0).bN(0,new H.Ul(a),t.P).jR(new H.Um(a))}} H.Un.prototype={ $1:function(a){var s=this.b if(a){s.toString s.$1(C.ad.c8([!0]))}else{s.toString s.$1(C.ad.c8(["copy_fail","Clipboard.setData failed",null])) this.a.a=!0}}, $S:69} H.Uo.prototype={ $1:function(a){var s if(!this.a.a){s=this.b s.toString s.$1(C.ad.c8(["copy_fail","Clipboard.setData failed",null]))}}, $S:5} H.Ul.prototype={ $1:function(a){var s=P.aj(["text",a],t.N,t.z),r=this.a r.toString r.$1(C.ad.c8([s]))}, $S:206} H.Um.prototype={ $1:function(a){var s P.uk("Could not get text from clipboard: "+H.c(a)) s=this.a s.toString s.$1(C.ad.c8(["paste_fail","Clipboard.getData failed",null]))}, $S:5} H.Ek.prototype={ o0:function(a,b){return this.Qv(a,b)}, Qv:function(a,b){var s=0,r=P.af(t.y),q,p=2,o,n=[],m,l,k,j var $async$o0=P.a9(function(c,d){if(c===1){o=d s=p}while(true)switch(s){case 0:p=4 l=window.navigator.clipboard l.toString b.toString s=7 return P.ak(P.hw(l.writeText(b),t.z),$async$o0) case 7:p=2 s=6 break case 4:p=3 j=o m=H.U(j) P.uk("copy is not successful "+H.c(m)) l=P.dD(!1,t.y) q=l s=1 break s=6 break case 3:s=2 break case 6:q=P.dD(!0,t.y) s=1 break case 1:return P.ad(q,r) case 2:return P.ac(o,r)}}) return P.ae($async$o0,r)}} H.Uk.prototype={ qW:function(a){var s=0,r=P.af(t.N),q var $async$qW=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)switch(s){case 0:q=P.hw(window.navigator.clipboard.readText(),t.N) s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$qW,r)}} H.Fk.prototype={ o0:function(a,b){return P.dD(this.a52(b),t.y)}, a52:function(a){var s,r,q,p,o="-99999px",n="transparent",m=document,l=m.createElement("textarea"),k=l.style k.position="absolute" k.top=o k.left=o C.e.a_(k,C.e.R(k,"opacity"),"0","") k.color=n k.backgroundColor=n k.background=n m.body.appendChild(l) s=l s.value=a J.av_(s) J.awY(s) r=!1 try{r=m.execCommand("copy") if(!r)P.uk("copy is not successful")}catch(p){q=H.U(p) P.uk("copy is not successful "+H.c(q))}finally{J.c9(s)}return r}} H.WK.prototype={ qW:function(a){throw H.a(P.ce("Paste is not implemented for this browser."))}} H.VA.prototype={ ld:function(a,b,c){throw H.a(P.ce(null))}, jU:function(a,b){throw H.a(P.ce(null))}, fh:function(a,b){throw H.a(P.ce(null))}, hs:function(a,b,c,d){throw H.a(P.ce(null))}, ck:function(a,b,c){var s=this.pU$ s=s.length===0?this.a:C.b.gL(s) s.appendChild(H.Cv(b,c,"draw-rect",this.iR$))}, ct:function(a,b,c){var s,r=H.Cv(new P.x(b.a,b.b,b.c,b.d),c,"draw-rrect",this.iR$) H.ar1(r.style,b) s=this.pU$;(s.length===0?this.a:C.b.gL(s)).appendChild(r)}, eB:function(a,b,c,d){throw H.a(P.ce(null))}, cj:function(a,b,c){throw H.a(P.ce(null))}, ht:function(a,b,c,d,e){throw H.a(P.ce(null))}, i2:function(a,b,c,d){throw H.a(P.ce(null))}, eW:function(a,b,c){var s=H.arg(b,c,this.iR$),r=this.pU$;(r.length===0?this.a:C.b.gL(r)).appendChild(s)}, n3:function(){}} H.F2.prototype={ OO:function(a){var s=this.x if(a==null?s!=null:a!==s){if(s!=null)J.c9(s) this.x=a s=this.f s.toString a.toString s.appendChild(a)}}, iK:function(a,b){var s=document.createElement(b) return s}, e7:function(a){var s,r,q,p,o,n,m,l,k,j,i=this,h="0",g="none",f="absolute",e="defineProperty",d={},c=i.c if(c!=null)C.m5.c4(c) c=document s=c.createElement("style") i.c=s c.head.appendChild(s) r=t.IP.a(i.c.sheet) s=H.bV() q=s===C.W s=H.bV() p=s===C.bw if(p)r.insertRule("flt-ruler-host p, flt-scene p { margin: 0; line-height: 100%;}",r.cssRules.length) else r.insertRule("flt-ruler-host p, flt-scene p { margin: 0; }",r.cssRules.length) r.insertRule("flt-semantics input[type=range] {\n appearance: none;\n -webkit-appearance: none;\n width: 100%;\n position: absolute;\n border: none;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}",r.cssRules.length) if(q)r.insertRule("flt-semantics input[type=range]::-webkit-slider-thumb { -webkit-appearance: none;}",r.cssRules.length) if(p){r.insertRule("input::-moz-selection { background-color: transparent;}",r.cssRules.length) r.insertRule("textarea::-moz-selection { background-color: transparent;}",r.cssRules.length)}else{r.insertRule("input::selection { background-color: transparent;}",r.cssRules.length) r.insertRule("textarea::selection { background-color: transparent;}",r.cssRules.length)}r.insertRule('flt-semantics input,\nflt-semantics textarea,\nflt-semantics [contentEditable="true"] {\n caret-color: transparent;\n}\n',r.cssRules.length) if(q)r.insertRule("flt-glass-pane * {\n -webkit-tap-highlight-color: transparent;\n}\n",r.cssRules.length) s=H.bV() if(s!==C.bv){s=H.bV() if(s!==C.bN){s=H.bV() s=s===C.W}else s=!0}else s=!0 if(s)r.insertRule(".transparentTextEditing:-webkit-autofill,\n.transparentTextEditing:-webkit-autofill:hover,\n.transparentTextEditing:-webkit-autofill:focus,\n.transparentTextEditing:-webkit-autofill:active {\n -webkit-transition-delay: 99999s;\n}\n",r.cssRules.length) s=c.body s.toString o=H.aF() s.setAttribute("flt-renderer",(o?"canvaskit":"html")+" (auto-selected)") s.setAttribute("flt-build-mode","release") H.cA(s,"position","fixed") H.cA(s,"top",h) H.cA(s,"right",h) H.cA(s,"bottom",h) H.cA(s,"left",h) H.cA(s,"overflow","hidden") H.cA(s,"padding",h) H.cA(s,"margin",h) H.cA(s,"user-select",g) H.cA(s,"-webkit-user-select",g) H.cA(s,"-ms-user-select",g) H.cA(s,"-moz-user-select",g) H.cA(s,"touch-action",g) H.cA(s,"font","normal normal 14px sans-serif") H.cA(s,"color","red") s.spellcheck=!1 for(o=t.xl,n=new W.oD(c.head.querySelectorAll('meta[name="viewport"]'),o),o=new H.bj(n,n.gl(n),o.h("bj"));o.q();){n=o.d m=n.parentNode if(m!=null)m.removeChild(n)}o=i.d if(o!=null)C.xe.c4(o) o=c.createElement("meta") o.setAttribute("flt-viewport","") o.name="viewport" o.content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" i.d=o c.head.appendChild(o) o=i.z if(o!=null)J.c9(o) l=i.z=i.iK(0,"flt-glass-pane") o=l.style o.position=f o.top=h o.right=h o.bottom=h o.left=h s.appendChild(l) i.f=i.iK(0,"flt-scene-host") k=i.iK(0,"flt-semantics-host") s=k.style s.position=f C.e.a_(s,C.e.R(s,"transform-origin"),"0 0 0","") i.r=k i.Pl() l.appendChild(k) s=i.f.style s.toString C.e.a_(s,C.e.R(s,"pointer-events"),g,"") s=i.f s.toString l.appendChild(s) s=$.dR l.insertBefore((s==null?$.dR=H.l7():s).r.a.Om(),i.f) if($.ap4==null){s=new H.HK(l,new H.a1m(P.y(t.S,t.mm))) s.d=s.YM() $.ap4=s}if($.aoy==null){s=new H.Ge(P.y(t.N,t.lG)) s.a56() $.aoy=s}i.f.setAttribute("aria-hidden","true") if(window.visualViewport==null&&q){s=window.innerWidth s.toString d.a=0 P.a7l(C.at,new H.VE(d,i,s))}s=H.aF() if(s){s=i.e if(s!=null)C.lG.c4(s) s=c.createElement("script") i.e=s s.src=$.aul() s=$.p2() j=s.i(0,"Object") if(s.i(0,"exports")==null)j.jQ(e,[s,"exports",P.aow(P.aj(["get",P.mf(new H.VF(i,j)),"set",P.mf(new H.VG()),"configurable",!0],t.N,t.K))]) if(s.i(0,"module")==null)j.jQ(e,[s,"module",P.aow(P.aj(["get",P.mf(new H.VH(i,j)),"set",P.mf(new H.VI()),"configurable",!0],t.N,t.K))]) c=c.head c.toString s=i.e s.toString c.appendChild(s)}c=i.ga30() s=t.E2 if(window.visualViewport!=null){o=window.visualViewport o.toString i.a=W.bN(o,"resize",c,!1,s)}else i.a=W.bN(window,"resize",c,!1,s) i.b=W.bN(window,"languagechange",i.ga2F(),!1,s) c=$.bw() c.a=c.a.LG(H.aji())}, Pl:function(){var s=this.r.style,r="scale("+H.c(1/window.devicePixelRatio)+")" s.toString C.e.a_(s,C.e.R(s,"transform"),r,"")}, I_:function(a){var s this.Pl() s=H.el() if(!J.fW(C.hR.a,s)&&!$.b4().abz()&&$.um().e){$.b4().Lv() $.bw().BD()}else{s=$.b4() s.FP() s.Lv() $.bw().BD()}}, a2G:function(a){var s=$.bw() s.a=s.a.LG(H.aji()) s=$.b4().b.id if(s!=null)s.$0()}, jT:function(a){var s,r for(;s=a.lastChild,s!=null;){r=s.parentNode if(r!=null)r.removeChild(s)}}, QC:function(a){var s,r,q,p,o=window.screen.orientation if(o!=null){a.toString q=J.ag(a) if(q.gO(a)){q=o q.toString J.axn(q) return P.dD(!0,t.y)}else{s=H.ayp(q.gI(a)) if(s!=null){r=new P.aH(new P.a1($.R,t.tr),t.VY) try{P.hw(o.lock(s),t.z).bN(0,new H.VK(r),t.P).jR(new H.VL(r))}catch(p){H.U(p) q=P.dD(!1,t.y) return q}return r.a}}}return P.dD(!1,t.y)}} H.VE.prototype={ $1:function(a){var s=++this.a.a if(this.c!=window.innerWidth){a.aH(0) this.b.I_(null)}else if(s>5)a.aH(0)}, $S:76} H.VF.prototype={ $0:function(){var s=document.currentScript,r=this.a.e if(s==null?r==null:s===r)return P.aov(this.b) else return $.p2().i(0,"_flutterWebCachedExports")}, $C:"$0", $R:0, $S:42} H.VG.prototype={ $1:function(a){$.p2().n(0,"_flutterWebCachedExports",a)}, $S:5} H.VH.prototype={ $0:function(){var s=document.currentScript,r=this.a.e if(s==null?r==null:s===r)return P.aov(this.b) else return $.p2().i(0,"_flutterWebCachedModule")}, $C:"$0", $R:0, $S:42} H.VI.prototype={ $1:function(a){$.p2().n(0,"_flutterWebCachedModule",a)}, $S:5} H.VK.prototype={ $1:function(a){this.a.ci(0,!0)}, $S:5} H.VL.prototype={ $1:function(a){this.a.ci(0,!1)}, $S:5} H.Wo.prototype={} H.Pj.prototype={} H.oK.prototype={} H.Pi.prototype={} H.a3M.prototype={ bu:function(a){var s,r,q=this,p=q.pU$ p=p.length===0?q.a:C.b.gL(p) s=q.iR$ r=new H.bt(new Float32Array(16)) r.bC(s) q.MH$.push(new H.Pi(p,r))}, bj:function(a){var s,r,q,p=this,o=p.MH$ if(o.length===0)return s=o.pop() p.iR$=s.b o=p.pU$ r=s.a q=p.a while(!0){if(!((o.length===0?q:C.b.gL(o))==null?r!=null:(o.length===0?q:C.b.gL(o))!==r))break o.pop()}}, af:function(a,b,c){this.iR$.af(0,b,c)}, d_:function(a,b,c){this.iR$.d_(0,b,c)}, h5:function(a,b){this.iR$.OZ(0,$.at8(),b)}, b1:function(a,b){this.iR$.cz(0,new H.bt(b))}} H.fp.prototype={} H.Eu.prototype={ a87:function(){var s,r,q=this,p=q.b if(p!=null)for(p=p.gaZ(p),p=p.gM(p);p.q();)for(s=J.as(p.gw(p));s.q();){r=s.gw(s) r.b.$1(r.a)}q.b=q.a q.a=null}, F_:function(a,b){var s,r=this,q=r.a if(q==null)q=r.a=P.y(t.N,r.$ti.h("v>")) s=q.i(0,a) if(s==null){s=H.b([],r.$ti.h("o>")) q.n(0,a,s) q=s}else q=s q.push(b)}, adU:function(a){var s,r,q=this.b if(q==null)return null s=q.i(0,a) if(s==null||s.length===0)return null r=(s&&C.b).eH(s,0) this.F_(a,r) return r.a}} H.tb.prototype={} H.a6B.prototype={ bu:function(a){var s=this.a s.a.Dl() s.c.push(C.jj);++s.r}, eK:function(a,b,c){var s=this.a t.Vh.a(c) s.d.c=!0 s.c.push(C.jj) s.a.Dl();++s.r}, bj:function(a){var s,r,q=this.a if(!q.f&&q.r>1){s=q.a s.z=s.r.pop() r=s.x.pop() if(r!=null){s.ch=r.a s.cx=r.b s.cy=r.c s.db=r.d s.Q=!0}else if(s.Q)s.Q=!1}s=q.c if(s.length!==0&&C.b.gL(s) instanceof H.xl)s.pop() else s.push(C.os);--q.r}, af:function(a,b,c){var s=this.a,r=s.a if(b!==0||c!==0)r.y=!1 r.z.af(0,b,c) s.c.push(new H.Hn(b,c))}, d_:function(a,b,c){var s=c==null?b:c,r=this.a,q=r.a if(b!==1||s!==1)q.y=!1 q.z.d_(0,b,s) r.c.push(new H.Hl(b,s)) return null}, h5:function(a,b){var s,r,q,p,o,n,m,l,k,j,i,h=this.a,g=h.a if(b!==0)g.y=!1 g=g.z s=Math.cos(b) r=Math.sin(b) g=g.a q=g[0] p=g[4] o=g[1] n=g[5] m=g[2] l=g[6] k=g[3] j=g[7] i=-r g[0]=q*s+p*r g[1]=o*s+n*r g[2]=m*s+l*r g[3]=k*s+j*r g[4]=q*i+p*s g[5]=o*i+n*s g[6]=m*i+l*s g[7]=k*i+j*s h.c.push(new H.Hk(b))}, b1:function(a,b){var s=H.S4(b),r=this.a,q=r.a q.z.cz(0,new H.bt(s)) q.y=q.z.q6(0) r.c.push(new H.Hm(s))}, ph:function(a,b,c,d){var s=this.a,r=new H.H9(b,c,-1/0,-1/0,1/0,1/0) switch(c){case C.bP:s.a.ld(0,b,r) break case C.jp:break default:H.e(H.j(u.I))}s.d.c=!0 s.c.push(r)}, jV:function(a,b){return this.ph(a,b,C.bP,!0)}, Lp:function(a,b,c){return this.ph(a,b,C.bP,c)}, ui:function(a,b,c){var s=this.a,r=new H.H8(b,-1/0,-1/0,1/0,1/0) s.a.ld(0,new P.x(b.a,b.b,b.c,b.d),r) s.d.c=!0 s.c.push(r)}, jU:function(a,b){return this.ui(a,b,!0)}, uh:function(a,b,c){var s,r=this.a t.Ci.a(b) s=new H.H7(b,-1/0,-1/0,1/0,1/0) r.a.ld(0,b.dt(0),s) r.d.c=!0 r.c.push(s)}, fh:function(a,b){return this.uh(a,b,!0)}, hs:function(a,b,c,d){var s,r,q,p,o,n,m=this.a t.Vh.a(d) s=Math.max(H.Cz(d),1) d.b=!0 r=new H.Hd(b,c,d.a,-1/0,-1/0,1/0,1/0) q=b.a p=c.a o=b.b n=c.b m.a.m_(Math.min(H.B(q),H.B(p))-s,Math.min(H.B(o),H.B(n))-s,Math.max(H.B(q),H.B(p))+s,Math.max(H.B(o),H.B(n))+s,r) m.e=m.d.c=!0 m.c.push(r)}, ck:function(a,b,c){this.a.ck(0,b,t.Vh.a(c))}, ct:function(a,b,c){this.a.ct(0,b,t.Vh.a(c))}, fW:function(a,b,c,d){this.a.fW(0,b,c,t.Vh.a(d))}, eB:function(a,b,c,d){var s,r,q,p,o,n=this.a t.Vh.a(d) n.e=n.d.c=!0 s=H.Cz(d) d.b=!0 r=new H.Ha(b,c,d.a,-1/0,-1/0,1/0,1/0) q=c+s p=b.a o=b.b n.a.m_(p-q,o-q,p+q,o+q,r) n.c.push(r)}, cj:function(a,b,c){this.a.cj(0,b,t.Vh.a(c))}, i2:function(a,b,c,d){var s,r,q=this.a t.Vh.a(d) s=q.d d.b=q.e=s.a=s.c=!0 r=new H.Hc(a,b,c,d.a,-1/0,-1/0,1/0,1/0) q.a.nZ(c,r) q.c.push(r)}, eW:function(a,b,c){this.a.eW(0,b,c)}, ht:function(a,b,c,d,e){var s,r,q=this.a q.e=q.d.c=!0 s=H.aF4(b.dt(0),d) r=new H.Hi(t.Ci.a(b),c,d,e,-1/0,-1/0,1/0,1/0) q.a.nZ(s,r) q.c.push(r)}} H.tg.prototype={ gfS:function(){return this.cu$}, bK:function(a){var s=this.uu("flt-clip"),r=W.eR("flt-clip-interior",null) this.cu$=r r=r.style r.position="absolute" r=this.cu$ r.toString s.appendChild(r) return s}, L5:function(a,b){var s if(b!==C.V){s=a.style s.overflow="hidden" s.zIndex="0"}}} H.xp.prototype={ h4:function(){var s=this s.f=s.e.f if(s.fy!==C.V)s.x=s.go else s.x=null s.r=s.y=null}, bK:function(a){var s=this.wT(0) s.setAttribute("clip-type","rect") return s}, eV:function(){var s,r=this,q=r.d.style,p=r.go,o=p.a,n=H.c(o)+"px" q.left=n n=p.b s=H.c(n)+"px" q.top=s s=H.c(p.c-o)+"px" q.width=s p=H.c(p.d-n)+"px" q.height=p q=r.d q.toString r.L5(q,r.fy) q=r.cu$.style o=H.c(-o)+"px" q.left=o p=H.c(-n)+"px" q.top=p}, b5:function(a,b){var s=this s.kN(0,b) if(!J.d(s.go,b.go)||s.fy!==b.fy){s.x=null s.eV()}}, $iUj:1} H.Hx.prototype={ h4:function(){var s,r=this r.f=r.e.f if(r.go!==C.V){s=r.fy r.x=new P.x(s.a,s.b,s.c,s.d)}else r.x=null r.r=r.y=null}, bK:function(a){var s=this.wT(0) s.setAttribute("clip-type","rrect") return s}, eV:function(){var s,r=this,q=r.d.style,p=r.fy,o=p.a,n=H.c(o)+"px" q.left=n n=p.b s=H.c(n)+"px" q.top=s s=H.c(p.c-o)+"px" q.width=s s=H.c(p.d-n)+"px" q.height=s s=H.c(p.e)+"px" C.e.a_(q,C.e.R(q,"border-top-left-radius"),s,"") s=H.c(p.r)+"px" C.e.a_(q,C.e.R(q,"border-top-right-radius"),s,"") s=H.c(p.y)+"px" C.e.a_(q,C.e.R(q,"border-bottom-right-radius"),s,"") p=H.c(p.Q)+"px" C.e.a_(q,C.e.R(q,"border-bottom-left-radius"),p,"") p=r.d p.toString r.L5(p,r.go) p=r.cu$.style o=H.c(-o)+"px" p.left=o o=H.c(-n)+"px" p.top=o}, b5:function(a,b){var s=this s.kN(0,b) if(!J.d(s.fy,b.fy)||s.go!==b.go){s.x=null s.eV()}}, $iUi:1} H.xs.prototype={ h4:function(){var s,r,q,p,o=this o.f=o.e.f if(o.k3!==C.V){s=o.fy r=s.a q=r.db?r.t3():null if(q!=null)o.x=new P.x(q.a,q.b,q.c,q.d) else{p=s.a.r4() if(p!=null)o.x=p else o.x=null}}else o.x=null o.r=o.y=null}, bK:function(a){var s=this.wT(0) s.setAttribute("clip-type","physical-shape") return s}, eV:function(){this.F9()}, F9:function(){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a=this,a0="border-radius",a1="hidden",a2=a.d.style,a3=a.k1,a4=H.cs(a3) a2.toString a2.backgroundColor=a4==null?"":a4 a2=a.fy a4=a2.a s=a4.db?a4.t3():null if(s!=null){r=H.c(s.e)+"px "+H.c(s.r)+"px "+H.c(s.y)+"px "+H.c(s.Q)+"px" q=a.d.style a2=s.a a3=H.c(a2)+"px" q.left=a3 a3=s.b a4=H.c(a3)+"px" q.top=a4 a4=H.c(s.c-a2)+"px" q.width=a4 a4=H.c(s.d-a3)+"px" q.height=a4 C.e.a_(q,C.e.R(q,a0),r,"") a4=a.cu$.style a2=H.c(-a2)+"px" a4.left=a2 a2=H.c(-a3)+"px" a4.top=a2 if(a.k3!==C.V)q.overflow=a1 H.alp(a.d,a.go,a.id,a.k2) return}else{p=a2.a.r4() if(p!=null){q=a.d.style a2=p.a a3=H.c(a2)+"px" q.left=a3 a3=p.b a4=H.c(a3)+"px" q.top=a4 a4=H.c(p.c-a2)+"px" q.width=a4 a4=H.c(p.d-a3)+"px" q.height=a4 C.e.a_(q,C.e.R(q,a0),"","") a4=a.cu$.style a2=H.c(-a2)+"px" a4.left=a2 a2=H.c(-a3)+"px" a4.top=a2 if(a.k3!==C.V)q.overflow=a1 H.alp(a.d,a.go,a.id,a.k2) return}else{a4=a2.a o=(a4.cy?a4.fr:-1)===-1?null:a4.dt(0) if(o!=null){a2=o.c a3=o.a n=(a2-a3)/2 a2=o.d a4=o.b m=(a2-a4)/2 r=n===m?H.c(n)+"px ":H.c(n)+"px "+H.c(m)+"px " q=a.d.style a2=H.c(a3)+"px" q.left=a2 a2=H.c(a4)+"px" q.top=a2 a2=H.c(n*2)+"px" q.width=a2 a2=H.c(m*2)+"px" q.height=a2 C.e.a_(q,C.e.R(q,a0),r,"") a2=a.cu$.style a3=H.c(-a3)+"px" a2.left=a3 a3=H.c(-a4)+"px" a2.top=a3 if(a.k3!==C.V)q.overflow=a1 H.alp(a.d,a.go,a.id,a.k2) return}}}a4=a.id l=a4===0 k=a.go if(l){j=k.a i=k.b h=k.c g=k.d f=H.alh(a2,-j,-i,1/(h-j),1/(g-i)) i=g j=h}else{j=k.c i=k.d f=H.alh(a2,0,0,1/j,1/i)}h=a.k4 if(h!=null)J.c9(h) h=a.r1 if(h!=null)J.c9(h) h=W.vH(f,new H.oI(),null) a.k4=h g=$.bD() e=a.d e.toString h.toString g.toString e.appendChild(h) if(l){a2=a.d a2.toString H.VJ(a2,"url(#svgClip"+$.RL+")") d=a.d.style d.overflow="" a2=k.a a3=H.c(a2)+"px" d.left=a3 a3=k.b a4=H.c(a3)+"px" d.top=a4 a4=H.c(j-a2)+"px" d.width=a4 a4=H.c(i-a3)+"px" d.height=a4 C.e.a_(d,C.e.R(d,a0),"","") a4=a.cu$.style a2="-"+H.c(a2)+"px" a4.left=a2 a2="-"+H.c(a3)+"px" a4.top=a2 return}l=a.cu$ l.toString H.VJ(l,"url(#svgClip"+$.RL+")") d=a.d.style d.overflow="" l=k.a h=H.c(l)+"px" d.left=h h=k.b g=H.c(h)+"px" d.top=g g=H.c(j-l)+"px" d.width=g g=H.c(i-h)+"px" d.height=g C.e.a_(d,C.e.R(d,a0),"","") g=a.cu$.style l="-"+H.c(l)+"px" g.left=l l="-"+H.c(h)+"px" g.top=l l=H.c(j)+"px" g.width=l l=H.c(i)+"px" g.height=l c=a2.dt(0) l=new H.aT() l.b=C.aA l.r=a3 l=H.arD(a2,l,H.c(c.c),H.c(c.d)) a.r1=l a2=a.d a2.toString l.toString a2.insertBefore(l,a.cu$) a4=H.alv(k,a4) a4.toString b=H.alM(a.k2) k=a.r1.style l=a4.b a2=b.a a2="drop-shadow("+H.c(l.a)+"px "+H.c(l.b)+"px "+H.c(a4.a)+"px rgba("+(a2>>>16&255)+", "+(a2>>>8&255)+", "+(a2&255)+", "+H.c((a2>>>24&255)/255)+"))" k.toString C.e.a_(k,C.e.R(k,"filter"),a2,"") a2="translate(-"+H.c(c.a)+"px, -"+H.c(c.b)+"px)" C.e.a_(k,C.e.R(k,"transform"),a2,"") a2=a.d.style a2.backgroundColor=""}, b5:function(a,b){var s,r,q,p=this p.kN(0,b) s=b.fy==p.fy if(!s)p.x=null s=!s||b.id!=p.id||!b.k2.k(0,p.k2)||!b.k1.k(0,p.k1) r=b.k4 if(s){if(r!=null)J.c9(r) b.k4=null s=b.r1 if(s!=null)J.c9(s) b.r1=null s=p.k4 if(s!=null)J.c9(s) p.k4=null s=p.r1 if(s!=null)J.c9(s) p.r1=null s=p.d s.toString H.VJ(s,"") p.F9()}else{p.k4=r if(r!=null){s=$.bD() q=p.d q.toString s.toString q.appendChild(r)}b.k4=null s=p.r1=b.r1 if(s!=null)p.d.insertBefore(s,p.cu$)}}, $ia19:1} H.xo.prototype={ bK:function(a){return this.uu("flt-clippath")}, h4:function(){var s=this s.Sq() if(s.go!==C.V){if(s.x==null)s.x=s.fy.dt(0)}else s.x=null}, eV:function(){var s,r,q=this,p=q.id if(p!=null)J.c9(p) p=W.vH(H.as1(t.C.a(q.d),q.fy),new H.oI(),null) q.id=p s=$.bD() r=q.d r.toString p.toString s.toString r.appendChild(p)}, b5:function(a,b){var s,r=this r.kN(0,b) if(b.fy!=r.fy){r.x=null s=b.id if(s!=null)J.c9(s) r.eV()}else r.id=b.id b.id=null}, i1:function(){var s=this.id if(s!=null)J.c9(s) this.id=null this.rs()}, $iUh:1} H.xq.prototype={ h4:function(){var s,r,q=this,p=q.e.f q.f=p s=q.fy if(s!==0||q.go!==0){p.toString r=new H.bt(new Float32Array(16)) r.bC(p) q.f=r r.af(0,s,q.go)}q.y=q.r=null}, gqa:function(){var s=this,r=s.y if(r==null){r=H.dt() r.m2(-s.fy,-s.go,0) s.y=r}return r}, bK:function(a){var s=document.createElement("flt-offset") H.cA(s,"position","absolute") H.cA(s,"transform-origin","0 0 0") return s}, eV:function(){var s,r=this.d r.toString s="translate("+H.c(this.fy)+"px, "+H.c(this.go)+"px)" r.style.transform=s}, b5:function(a,b){var s=this s.kN(0,b) if(b.fy!==s.fy||b.go!==s.go)s.eV()}, $ia0C:1} H.xr.prototype={ h4:function(){var s,r,q,p=this,o=p.e.f p.f=o s=p.go r=s.a q=s.b if(r!==0||q!==0){o.toString s=new H.bt(new Float32Array(16)) s.bC(o) p.f=s s.af(0,r,q)}p.r=p.y=null}, gqa:function(){var s,r=this.y if(r==null){r=this.go s=H.dt() s.m2(-r.a,-r.b,0) this.y=s r=s}return r}, bK:function(a){var s=$.bD().iK(0,"flt-opacity") H.cA(s,"position","absolute") H.cA(s,"transform-origin","0 0 0") return s}, eV:function(){var s,r=this.d r.toString H.cA(r,"opacity",H.c(this.fy/255)) s=this.go s="translate("+H.c(s.a)+"px, "+H.c(s.b)+"px)" r.style.transform=s}, b5:function(a,b){var s=this s.kN(0,b) if(s.fy!=b.fy||!s.go.k(0,b.go))s.eV()}, $ia0F:1} H.aR.prototype={ sLe:function(a){var s=this if(s.b){s.a=s.a.dj(0) s.b=!1}s.a.a=a}, sdf:function(a,b){var s=this if(s.b){s.a=s.a.dj(0) s.b=!1}s.a.b=b}, shL:function(a){var s=this if(s.b){s.a=s.a.dj(0) s.b=!1}s.a.c=a}, sE4:function(a){var s=this if(s.b){s.a=s.a.dj(0) s.b=!1}s.a.d=a}, sni:function(a){var s=this if(s.b){s.a=s.a.dj(0) s.b=!1}s.a.f=a}, gap:function(a){var s=this.a.r return s==null?C.t:s}, sap:function(a,b){var s,r=this if(r.b){r.a=r.a.dj(0) r.b=!1}s=r.a s.r=J.N(b)===C.G6?b:new P.C(b.gm(b))}, sve:function(a){}, sDV:function(a){var s=this if(s.b){s.a=s.a.dj(0) s.b=!1}s.a.x=a}, sBU:function(a){var s=this if(s.b){s.a=s.a.dj(0) s.b=!1}s.a.y=a}, suR:function(a){var s=this if(s.b){s.a=s.a.dj(0) s.b=!1}s.a.z=a}, sLr:function(a){var s=this if(s.b){s.a=s.a.dj(0) s.b=!1}s.a.Q=a}, j:function(a){var s,r,q=this,p=q.a.b,o=p==null if((o?C.aA:p)===C.ab){p="Paint("+(o?C.aA:p).j(0) o=q.a.c s=o==null if((s?0:o)!==0)p+=" "+H.c(s?0:o) else p+=" hairline" o=q.a.d s=o==null if((s?C.bK:o)!==C.bK)p+=" "+(s?C.bK:o).j(0) r="; "}else{r="" p="Paint("}o=q.a if(!o.f){p+=r+"antialias off" r="; "}o=o.r if(!(o==null?C.t:o).k(0,C.t)){o=q.a.r p+=r+(o==null?C.t:o).j(0)}p+=")" return p.charCodeAt(0)==0?p:p}, $iaka:1} H.aT.prototype={ dj:function(a){var s=this,r=new H.aT() r.a=s.a r.z=s.z r.y=s.y r.x=s.x r.f=s.f r.r=s.r r.Q=s.Q r.c=s.c r.b=s.b r.e=s.e r.d=s.d return r}, j:function(a){var s=this.bP(0) return s}} H.h1.prototype={ CB:function(){var s,r,q,p,o,n,m,l,k,j=this,i=H.b([],t.yv),h=j.YH(0.25),g=C.f.a58(1,h) i.push(new P.m(j.a,j.b)) if(h===5){s=new H.LA() j.Fx(s) r=s.a r.toString q=s.b q.toString p=r.c if(p==r.e&&r.d==r.f&&q.a==q.c&&q.b==q.d){o=new P.m(p,r.d) i.push(o) i.push(o) i.push(o) i.push(new P.m(q.e,q.f)) g=2 n=!0}else n=!1}else n=!1 if(!n)H.ajc(j,h,i) m=2*g+1 k=0 while(!0){if(!(k=0)s.d=-r s.f=s.e=-1}, jK:function(a,b){this.tV(b,0,0)}, td:function(){var s,r=this.a,q=r.x for(r=r.r,s=0;s=c||d>=b)g.tV(a,0,3) else if(H.aDP(a2))g.EX(a,0,3) else{r=c-e q=b-d p=Math.max(0,a0) o=Math.max(0,a2.r) n=Math.max(0,a2.Q) m=Math.max(0,a2.y) l=Math.max(0,a2.f) k=Math.max(0,a2.x) j=Math.max(0,a2.ch) i=Math.max(0,a2.z) h=H.ags(j,i,q,H.ags(l,k,q,H.ags(n,m,r,H.ags(p,o,r,1)))) a0=b-h*j g.e5(0,e,a0) g.cG(0,e,d+h*l) g.fT(0,e,d,e+h*p,d,0.707106781) g.cG(0,c-h*o,d) g.fT(0,c,d,c,d+h*k,0.707106781) g.cG(0,c,b-h*i) g.fT(0,c,b,c-h*m,b,0.707106781) g.cG(0,e+h*n,b) g.fT(0,e,b,e,a0,0.707106781) g.aT(0) g.f=f?0:-1 e=g.a e.db=f e.dy=!1 e.fr=6}}, C:function(a4,a5){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3=this if(a3.a.x===0)return!1 s=a3.dt(0) r=a5.a q=a5.b if(rs.c||q>s.d)return!1 p=a3.a o=new H.a11(p,r,q,new Float32Array(18)) o.a6I() n=C.ew===a3.b m=o.d if((n?m&1:m)!==0)return!0 l=o.e if(l<=1)return C.d3.UV(l!==0,!1) p=l&1 if(p!==0||n)return p!==0 k=H.ap_(a3.a,!0) j=new Float32Array(18) i=H.b([],t.yv) p=k.a h=!1 do{g=i.length switch(k.kq(0,j)){case 0:case 5:break case 1:H.aGa(j,r,q,i) break case 2:H.aGb(j,r,q,i) break case 3:f=k.f H.aG8(j,r,q,p.z[f],i) break case 4:H.aG9(j,r,q,i) break case 6:h=!0 break}f=i.length if(f>g){e=f-1 d=i[e] c=d.a b=d.b if(Math.abs(c*c+b*b-0)<0.000244140625)C.b.u(i,e) else for(a=0;a0?1:0 if(f<=0){f=b*a1 if(f<0)f=-1 else f=f>0?1:0 f=f<=0}else f=!1}else f=!1 if(f){a2=C.b.eH(i,e) if(a!==i.length)i[a]=a2 break}}}}while(!h) return i.length!==0||!1}, bJ:function(a){var s,r=a.a,q=a.b,p=this.a,o=H.azJ(p,r,q),n=p.e,m=new Uint8Array(n) C.a0.Dx(m,0,p.r) o=new H.qx(o,m) n=p.y o.y=n o.Q=p.Q s=p.z if(s!=null){n=new Float32Array(n) o.z=n C.xj.Dx(n,0,s)}o.e=p.e o.x=p.x o.c=p.c o.d=p.d n=p.ch o.ch=n if(!n){o.a=p.a.af(0,r,q) n=p.b o.b=n==null?null:n.af(0,r,q) o.cx=p.cx}o.fx=p.fx o.cy=p.cy o.db=p.db o.dx=p.dx o.dy=p.dy o.fr=p.fr r=new H.oe(o,C.bp) r.FW(this) return r}, dt:function(e2){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,e0=this,e1=e0.a if((e1.db?e1.fr:-1)===-1)s=(e1.cy?e1.fr:-1)!==-1 else s=!0 if(s)return e1.dt(0) if(!e1.ch&&e1.b!=null){e1=e1.b e1.toString return e1}r=new H.nF(e1) r.ol(e1) q=e0.a.f for(p=!1,o=0,n=0,m=0,l=0,k=0,j=0,i=0,h=0,g=null,f=null,e=null;d=r.aci(),d!==6;){c=r.e switch(d){case 0:j=q[c] h=q[c+1] i=h k=j break case 1:j=q[c+2] h=q[c+3] i=h k=j break case 2:if(f==null)f=new H.ade() b=c+1 a=q[c] a0=b+1 a1=q[b] b=a0+1 a2=q[a0] a0=b+1 a3=q[b] a4=q[a0] a5=q[a0+1] s=f.a=Math.min(a,a4) a6=f.b=Math.min(a1,a5) a7=f.c=Math.max(a,a4) a8=f.d=Math.max(a1,a5) a9=a-2*a2+a4 if(Math.abs(a9)>0.000244140625){b0=(a-a2)/a9 if(b0>=0&&b0<=1){b1=1-b0 b2=b1*b1 b3=2*b0*b1 b0*=b0 b4=b2*a+b3*a2+b0*a4 b5=b2*a1+b3*a3+b0*a5 s=Math.min(s,b4) f.a=s a7=Math.max(a7,b4) f.c=a7 a6=Math.min(a6,b5) f.b=a6 a8=Math.max(a8,b5) f.d=a8}}a9=a1-2*a3+a5 if(Math.abs(a9)>0.000244140625){b6=(a1-a3)/a9 if(b6>=0&&b6<=1){b7=1-b6 b2=b7*b7 b3=2*b6*b7 b6*=b6 b8=b2*a+b3*a2+b6*a4 b9=b2*a1+b3*a3+b6*a5 s=Math.min(s,b8) f.a=s a7=Math.max(a7,b8) f.c=a7 a6=Math.min(a6,b9) f.b=a6 a8=Math.max(a8,b9) f.d=a8}h=a8 j=a7 i=a6 k=s}else{h=a8 j=a7 i=a6 k=s}break case 3:if(e==null)e=new H.a9w() s=e1.z[r.b] b=c+1 a=q[c] a0=b+1 a1=q[b] b=a0+1 a2=q[a0] a0=b+1 a3=q[b] a4=q[a0] a5=q[a0+1] e.a=Math.min(a,a4) e.b=Math.min(a1,a5) e.c=Math.max(a,a4) e.d=Math.max(a1,a5) c0=new H.kw() c1=a4-a c2=s*(a2-a) if(c0.kc(s*c1-c1,c1-2*c2,c2)!==0){a6=c0.a a6.toString if(a6>=0&&a6<=1){c3=2*(s-1) a9=(-c3*a6+c3)*a6+1 c4=a2*s b4=(((a4-2*c4+a)*a6+2*(c4-a))*a6+a)/a9 c4=a3*s b5=(((a5-2*c4+a1)*a6+2*(c4-a1))*a6+a1)/a9 e.a=Math.min(e.a,b4) e.c=Math.max(e.c,b4) e.b=Math.min(e.b,b5) e.d=Math.max(e.d,b5)}}c5=a5-a1 c6=s*(a3-a1) if(c0.kc(s*c5-c5,c5-2*c6,c6)!==0){a6=c0.a a6.toString if(a6>=0&&a6<=1){c3=2*(s-1) a9=(-c3*a6+c3)*a6+1 c4=a2*s b8=(((a4-2*c4+a)*a6+2*(c4-a))*a6+a)/a9 c4=a3*s b9=(((a5-2*c4+a1)*a6+2*(c4-a1))*a6+a1)/a9 e.a=Math.min(e.a,b8) e.c=Math.max(e.c,b8) e.b=Math.min(e.b,b9) e.d=Math.max(e.d,b9)}}k=e.a i=e.b j=e.c h=e.d break case 4:if(g==null)g=new H.a9z() b=c+1 c7=q[c] a0=b+1 c8=q[b] b=a0+1 c9=q[a0] a0=b+1 d0=q[b] b=a0+1 d1=q[a0] a0=b+1 d2=q[b] d3=q[a0] d4=q[a0+1] s=Math.min(c7,d3) g.a=s g.c=Math.min(c8,d4) a6=Math.max(c7,d3) g.b=a6 g.d=Math.max(c8,d4) if(!(c7c9&&c9>d1&&d1>d3 else a7=!0 if(!a7){a7=-c7 d5=a7+3*(c9-d1)+d3 d6=2*(c7-2*c9+d1) d7=d6*d6-4*d5*(a7+c9) if(d7>=0&&Math.abs(d5)>0.000244140625){a7=-d6 a8=2*d5 if(d7===0){d8=a7/a8 b1=1-d8 if(d8>=0&&d8<=1){a7=3*b1 b4=b1*b1*b1*c7+a7*b1*d8*c9+a7*d8*d8*d1+d8*d8*d8*d3 g.a=Math.min(b4,s) g.b=Math.max(b4,a6)}}else{d7=Math.sqrt(d7) d8=(a7-d7)/a8 b1=1-d8 if(d8>=0&&d8<=1){s=3*b1 b4=b1*b1*b1*c7+s*b1*d8*c9+s*d8*d8*d1+d8*d8*d8*d3 g.a=Math.min(b4,g.a) g.b=Math.max(b4,g.b)}d8=(a7+d7)/a8 b1=1-d8 if(d8>=0&&d8<=1){s=3*b1 b4=b1*b1*b1*c7+s*b1*d8*c9+s*d8*d8*d1+d8*d8*d8*d3 g.a=Math.min(b4,g.a) g.b=Math.max(b4,g.b)}}}}if(!(c8d0&&d0>d2&&d2>d4 else s=!0 if(!s){s=-c8 d5=s+3*(d0-d2)+d4 d6=2*(c8-2*d0+d2) d7=d6*d6-4*d5*(s+d0) if(d7>=0&&Math.abs(d5)>0.000244140625){s=-d6 a6=2*d5 if(d7===0){d8=s/a6 b1=1-d8 if(d8>=0&&d8<=1){s=3*b1 b5=b1*b1*b1*c8+s*b1*d8*d0+s*d8*d8*d2+d8*d8*d8*d4 g.c=Math.min(b5,g.c) g.d=Math.max(b5,g.d)}}else{d7=Math.sqrt(d7) d8=(s-d7)/a6 b1=1-d8 if(d8>=0&&d8<=1){a7=3*b1 b5=b1*b1*b1*c8+a7*b1*d8*d0+a7*d8*d8*d2+d8*d8*d8*d4 g.c=Math.min(b5,g.c) g.d=Math.max(b5,g.d)}s=(s+d7)/a6 b7=1-s if(s>=0&&s<=1){a6=3*b7 b5=b7*b7*b7*c8+a6*b7*s*d0+a6*s*s*d2+s*s*s*d4 g.c=Math.min(b5,g.c) g.d=Math.max(b5,g.d)}}}}k=g.a i=g.c j=g.b h=g.d break}if(!p){l=h m=j n=i o=k p=!0}else{o=Math.min(o,k) m=Math.max(m,j) n=Math.min(n,i) l=Math.max(l,h)}}d9=p?new P.x(o,n,m,l):C.Z e0.a.dt(0) return e0.a.b=d9}, j:function(a){var s=this.bP(0) return s}, $iakb:1} H.aex.prototype={ Mp:function(a){return(this.a*a+this.c)*a+this.e}, Mq:function(a){return(this.b*a+this.d)*a+this.f}} H.qx.prototype={ eM:function(a,b,c){var s=a*2,r=this.f r[s]=b r[s+1]=c}, fQ:function(a){var s=this.f,r=a*2 return new P.m(s[r],s[r+1])}, r4:function(){var s=this if(s.dx)return new P.x(s.fQ(0).a,s.fQ(0).b,s.fQ(1).a,s.fQ(2).b) else return s.x===4?s.Zb():null}, dt:function(a){var s if(this.ch)this.xt() s=this.a s.toString return s}, Zb:function(){var s,r,q,p,o,n,m=this,l=null,k=m.fQ(0).a,j=m.fQ(0).b,i=m.fQ(1).a,h=m.fQ(1).b if(m.r[1]!==1||h!=j)return l s=i-k r=m.fQ(2).a q=m.fQ(2).b if(m.r[2]!==1||r!==i)return l p=q-h o=m.fQ(3) n=m.fQ(3).b if(m.r[3]!==1||n!==q)return l if(r-o.a!==s||n-j!==p)return l return new P.x(k,j,k+s,j+p)}, Q9:function(){var s,r,q,p,o if(this.x===2){s=this.r s=s[0]!==0||s[1]!==1}else s=!0 if(s)return null s=this.f r=s[0] q=s[1] p=s[2] o=s[3] if(q===o||r===p)return new P.x(r,q,p,o) return null}, t3:function(){var s,r,q,p,o,n,m,l,k,j,i,h,g=this.dt(0),f=H.b([],t.kG),e=new H.nF(this) e.ol(this) s=new Float32Array(8) e.kq(0,s) for(r=0;q=e.kq(0,s),q!==6;)if(3===q){p=s[2] o=s[3] n=p-s[0] m=o-s[1] l=s[4] k=s[5] if(n!==0){j=Math.abs(n) i=Math.abs(k-o)}else{i=Math.abs(m) j=m!==0?Math.abs(l-p):Math.abs(n)}f.push(new P.c2(j,i));++r}l=f[0] k=f[1] h=f[2] return P.a1I(g,f[3],h,l,k)}, k:function(a,b){if(b==null)return!1 if(this===b)return!0 if(J.N(b)!==H.E(this))return!1 return this.a9G(t.vH.a(b))}, a9G:function(a){var s,r,q,p,o,n,m,l=this if(l.fx!==a.fx)return!1 s=l.d if(s!==a.d)return!1 for(r=s*2,q=l.f,p=a.f,o=0;oq.c){s=a+10 q.c=s r=new Float32Array(s*2) r.set.apply(r,[q.f]) q.f=r}q.d=a}, a4w:function(a){var s,r,q=this if(a>q.e){s=a+8 q.e=s r=new Uint8Array(s) r.set.apply(r,[q.r]) q.r=r}q.x=a}, a4u:function(a){var s,r,q=this if(a>q.y){s=a+4 q.y=s r=new Float32Array(s) s=q.z if(s!=null)r.set.apply(r,[s]) q.z=r}q.Q=a}, xt:function(){var s,r,q,p,o,n,m,l,k,j,i=this,h=i.d i.ch=!1 i.b=null if(h===0){i.a=C.Z i.cx=!0}else{s=i.f r=s[0] q=s[1] p=0*r*q for(o=2*h,n=q,m=r,l=2;lm){l.a=m l.b=s}else if(s===m)return 1}return o}} H.a11.prototype={ a6I:function(){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e=this,d=e.a,c=H.ap_(d,!0) for(s=e.f,r=t.td;q=c.kq(0,s),q!==6;)switch(q){case 0:case 5:break case 1:e.YF() break case 2:p=!H.ap1(s)?H.azK(s):0 o=e.FO(s[0],s[1],s[2],s[3],s[4],s[5]) e.d+=p>0?o+e.FO(s[4],s[5],s[6],s[7],s[8],s[9]):o break case 3:n=d.z[c.f] m=s[0] l=s[1] k=s[2] j=s[3] i=s[4] h=s[5] g=H.ap1(s) f=H.b([],r) new H.h1(m,l,k,j,i,h,n).a7Q(f) e.FN(f[0]) if(!g&&f.length===2)e.FN(f[1]) break case 4:e.YD() break}}, YF:function(){var s,r,q,p,o,n=this,m=n.f,l=m[0],k=m[1],j=m[2],i=m[3] if(k>i){s=k r=i q=-1}else{s=i r=k q=1}m=n.c if(ms)return p=n.b if(H.a12(p,m,l,k,j,i)){++n.e return}if(m===s)return o=(j-l)*(m-k)-(i-k)*(p-l) if(o===0){if(p!==j||m!==i)++n.e q=0}else if(H.aAD(o)===q)q=0 n.d+=q}, FO:function(a,b,c,d,e,f){var s,r,q,p,o,n,m,l,k=this if(b>f){s=b r=f q=-1}else{s=f r=b q=1}p=k.c if(ps)return 0 o=k.b if(H.a12(o,p,a,b,e,f)){++k.e return 0}if(p===s)return 0 n=new H.kw() if(0===n.kc(b-2*d+f,2*(d-b),b-p))m=q===1?a:e else{l=n.a l.toString m=((e-2*c+a)*l+2*(c-a))*l+a}if(Math.abs(m-o)<0.000244140625)if(o!==e||p!==f){++k.e return 0}return mf){s=g r=f q=-1}else{s=f r=g q=1}p=h.c if(ps)return o=h.b n=a.a m=a.e if(H.a12(o,p,n,g,m,f)){++h.e return}if(p===s)return l=a.r k=a.d*l-p*l+p j=new H.kw() if(0===j.kc(f+(g-2*k),2*(k-g),g-p))n=q===1?n:m else{i=j.a i.toString n=H.aD8(n,a.c,m,l,i)/H.aD7(l,i)}if(Math.abs(n-o)<0.000244140625)if(o!==m||p!==a.f){++h.e return}p=h.d h.d=p+(nq){p=b o=q n=-1}else{p=q o=b n=1}m=g.c if(mp)return l=g.b if(H.a12(l,m,d,b,r,q)){++g.e return}if(m===p)return k=Math.min(d,Math.min(a,Math.min(s,r))) j=Math.max(d,Math.max(a,Math.max(s,r))) if(lj){g.d+=n return}i=H.ar7(f,a0,m) if(i==null)return h=H.ari(d,a,s,r,i) if(Math.abs(h-l)<0.000244140625)if(l!==r||m!==q){++g.e return}f=g.d g.d=f+(h1,o=null,n=1/0,m=0;m<$.kF.length;++m){l=$.kF[m] k=window.devicePixelRatio j=k==null||k===0?1:k if(l.z!==j)continue j=l.a i=j.c-j.a j=j.d-j.b h=i*j g=c.k3 k=window.devicePixelRatio if(l.r>=C.d.ey(s*(k==null||k===0?1:k))+2){k=window.devicePixelRatio f=l.x>=C.d.ey(r*(k==null||k===0?1:k))+2&&l.dx===g}else f=!1 e=h4)){if(i===b&&j===a){o=l break}n=h o=l}}if(o!=null){C.b.u($.kF,o) o.sLf(0,a0) o.b=c.r1 return o}d=H.axz(a0,c.id.a.d,c.k3) d.b=c.r1 return d}, Fa:function(){var s=this.d.style,r="translate("+H.c(this.fy)+"px, "+H.c(this.go)+"px)" s.toString C.e.a_(s,C.e.R(s,"transform"),r,"")}, eV:function(){this.Fa() this.rC(null)}, bm:function(a){this.xv(null) this.k4=!0 this.Eq(0)}, b5:function(a,b){var s,r,q=this q.Eu(0,b) q.r1=b.r1 if(b!==q)b.r1=null if(q.fy!=b.fy||q.go!=b.go)q.Fa() q.xv(b) if(q.id==b.id){s=q.fx r=s instanceof H.jp&&q.k3!==s.dx if(q.k4||r)q.rC(b) else q.fx=b.fx}else q.rC(b)}, kB:function(){var s=this s.Et() s.xv(s) if(s.k4)s.rC(s)}, i1:function(){H.RR(this.fx) this.fx=null this.Er()}} H.a16.prototype={ $0:function(){var s,r,q=this.a,p=q.r2 p.toString s=q.fx=q.a_4(p) s.b=q.r1 p=$.bD() r=q.d r.toString p.jT(r) q.d.appendChild(s.c) s.az(0) r=q.id.a r.toString q=q.r2 q.toString r.zX(s,q) s.n3()}, $S:0} H.a22.prototype={ zX:function(a,b){var s,r,q,p,o,n,m,l try{m=this.b m.toString if(H.asz(b,m))for(s=0,m=this.c,r=m.length;sq||l>p||k>o||j>n)return d.e=d.d.c=!0 i=H.Cz(a6) a6.b=!0 h=new H.Hb(a4,a5,a6.a,-1/0,-1/0,1/0,1/0) g=P.dh() g.sMI(C.ew) g.hp(0,a4) g.hp(0,a5) g.aT(0) h.y=g f=Math.min(H.B(b),H.B(a0)) e=Math.max(H.B(b),H.B(a0)) d.a.m_(f-i,Math.min(H.B(a),H.B(a1))-i,e+i,Math.max(H.B(a),H.B(a1))+i,h) d.c.push(h)}, cj:function(a,b,c){var s,r,q,p,o,n,m,l,k,j=this if(c.a.x==null){t.Ci.a(b) s=b.a.r4() if(s!=null){j.ck(0,s,c) return}r=b.a q=r.db?r.t3():null if(q!=null){j.ct(0,q,c) return}}t.Ci.a(b) if(b.a.x!==0){j.e=j.d.c=!0 p=b.dt(0) o=H.Cz(c) if(o!==0)p=p.hz(o) r=b.a n=new H.qx(r.f,r.r) n.e=r.e n.x=r.x n.c=r.c n.d=r.d n.y=r.y n.Q=r.Q n.z=r.z m=r.ch n.ch=m if(!m){n.a=r.a n.b=r.b n.cx=r.cx}n.fx=r.fx n.cy=r.cy n.db=r.db n.dx=r.dx n.dy=r.dy n.fr=r.fr l=new H.oe(n,C.bp) l.FW(b) c.b=!0 k=new H.Hf(l,c.a,-1/0,-1/0,1/0,1/0) j.a.nZ(p,k) l.b=b.b j.c.push(k)}}, eW:function(a,b,c){var s,r,q,p=this t.ia.a(b) if(!b.gNz())return p.e=!0 if(b.gN7())p.d.c=!0 p.d.b=!0 s=c.a r=c.b q=new H.He(b,c,-1/0,-1/0,1/0,1/0) p.a.m_(s,r,s+b.gay(b),r+b.gai(b),q) p.c.push(q)}} H.cL.prototype={} H.vF.prototype={ abw:function(a){var s=this if(s.a)return!0 return s.ea.d||s.da.c}} H.xl.prototype={ bk:function(a){a.bu(0)}, j:function(a){var s=this.bP(0) return s}} H.Hj.prototype={ bk:function(a){a.bj(0)}, j:function(a){var s=this.bP(0) return s}} H.Hn.prototype={ bk:function(a){a.af(0,this.a,this.b)}, j:function(a){var s=this.bP(0) return s}} H.Hl.prototype={ bk:function(a){a.d_(0,this.a,this.b)}, j:function(a){var s=this.bP(0) return s}} H.Hk.prototype={ bk:function(a){a.h5(0,this.a)}, j:function(a){var s=this.bP(0) return s}} H.Hm.prototype={ bk:function(a){a.b1(0,this.a)}, j:function(a){var s=this.bP(0) return s}} H.H9.prototype={ bk:function(a){a.ld(0,this.f,this.r)}, j:function(a){var s=this.bP(0) return s}} H.H8.prototype={ bk:function(a){a.jU(0,this.f)}, j:function(a){var s=this.bP(0) return s}} H.H7.prototype={ bk:function(a){a.fh(0,this.f)}, j:function(a){var s=this.bP(0) return s}} H.Hd.prototype={ bk:function(a){a.hs(0,this.f,this.r,this.x)}, j:function(a){var s=this.bP(0) return s}} H.Hh.prototype={ bk:function(a){a.ck(0,this.f,this.r)}, j:function(a){var s=this.bP(0) return s}} H.Hg.prototype={ bk:function(a){a.ct(0,this.f,this.r)}, j:function(a){var s=this.bP(0) return s}} H.Hb.prototype={ bk:function(a){var s=this.x if(s.b==null)s.b=C.aA a.cj(0,this.y,s)}, j:function(a){var s=this.bP(0) return s}} H.Ha.prototype={ bk:function(a){a.eB(0,this.f,this.r,this.x)}, j:function(a){var s=this.bP(0) return s}} H.Hf.prototype={ bk:function(a){a.cj(0,this.f,this.r)}, j:function(a){var s=this.bP(0) return s}} H.Hi.prototype={ bk:function(a){var s=this a.ht(0,s.f,s.r,s.x,s.y)}, j:function(a){var s=this.bP(0) return s}} H.Hc.prototype={ bk:function(a){var s=this a.i2(s.f,s.r,s.x,s.y)}, j:function(a){var s=this.bP(0) return s}} H.He.prototype={ bk:function(a){a.eW(0,this.f,this.r)}, j:function(a){var s=this.bP(0) return s}} H.ad0.prototype={ ld:function(a,b,c){var s,r,q,p,o=this,n=b.a,m=b.b,l=b.c,k=b.d if(!o.y){s=$.alV() s[0]=n s[1]=m s[2]=l s[3]=k H.alO(o.z,s) n=s[0] m=s[1] l=s[2] k=s[3]}if(!o.Q){o.ch=n o.cx=m o.cy=l o.db=k o.Q=!0 r=k q=l p=m s=n}else{s=o.ch if(n>s){o.ch=n s=n}p=o.cx if(m>p){o.cx=m p=m}q=o.cy if(l=q||p>=r)c.a=!0 else{c.b=s c.c=p c.d=q c.e=r}}, nZ:function(a,b){this.m_(a.a,a.b,a.c,a.d,b)}, m_:function(a,b,c,d,e){var s,r,q,p,o,n,m,l,k,j=this if(a==c||b==d){e.a=!0 return}if(!j.y){s=$.alV() s[0]=a s[1]=b s[2]=c s[3]=d H.alO(j.z,s) r=s[0] q=s[1] p=s[2] o=s[3]}else{o=d p=c q=b r=a}if(j.Q){n=j.cy if(r>n){e.a=!0 return}m=j.ch if(pl){e.a=!0 return}k=j.cx if(on)p=n if(ql)o=l}e.b=r e.c=q e.d=p e.e=o if(j.b){j.c=Math.min(Math.min(j.c,H.B(r)),H.B(p)) j.e=Math.max(Math.max(j.e,H.B(r)),H.B(p)) j.d=Math.min(Math.min(j.d,H.B(q)),H.B(o)) j.f=Math.max(Math.max(j.f,H.B(q)),H.B(o))}else{j.c=Math.min(H.B(r),H.B(p)) j.e=Math.max(H.B(r),H.B(p)) j.d=Math.min(H.B(q),H.B(o)) j.f=Math.max(H.B(q),H.B(o))}j.b=!0}, Dl:function(){var s=this,r=s.z,q=new H.bt(new Float32Array(16)) q.bC(r) s.r.push(q) r=s.Q?new P.x(s.ch,s.cx,s.cy,s.db):null s.x.push(r)}, a8b:function(){var s,r,q,p,o,n,m,l,k,j,i=this if(!i.b)return C.Z s=i.a r=s.a r.toString if(isNaN(r))q=-1/0 else q=r r=s.c r.toString if(isNaN(r))p=1/0 else p=r r=s.b r.toString if(isNaN(r))o=-1/0 else o=r s=s.d s.toString if(isNaN(s))n=1/0 else n=s s=i.c r=i.e m=Math.min(s,r) l=Math.max(s,r) r=i.d s=i.f k=Math.min(r,s) j=Math.max(r,s) if(l1;)s.pop() t.IF.a(C.b.gI(s)).qv()}, $S:0} H.a6F.prototype={ $0:function(){var s,r,q=t.IF,p=this.a.a if($.a6D==null)q.a(C.b.gI(p)).bm(0) else{s=q.a(C.b.gI(p)) r=$.a6D r.toString s.b5(0,r)}H.aF1(q.a(C.b.gI(p))) $.a6D=q.a(C.b.gI(p)) return new H.rD(q.a(C.b.gI(p)).d)}, $S:193} H.a0q.prototype={ QJ:function(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g,f=this for(s=f.d,r=f.c,q=a.a,p=f.b,o=b.a,n=0;n11920929e-14)b6.bp(0,1/a7) c3=b8.f if(c3!=null){c3=c3.a b6.d_(0,1,-1) b6.af(0,-c4.gbn().a,-c4.gbn().b) b6.cz(0,new H.bt(c3)) b6.af(0,c4.gbn().a,c4.gbn().b) b6.d_(0,1,-1)}b6.cz(0,b4) b6.cz(0,b3) j.QJ(k,b) c3=b.a q=k.a q.uniformMatrix4fv.apply(q,[k.lZ(0,c3,c1),!1,b6.a]) q.uniform2f.apply(q,[k.lZ(0,c3,c0),s,p]) c3=$.alb c3.a9l(new P.x(0,0,0+c2,0+r),k,b,j,s,p) b7=k.adp() q.bindBuffer.apply(q,[k.gq8(),null]) q.bindBuffer.apply(q,[k.gBL(),null]) b7.toString return b7}} H.J7.prototype={ zQ:function(a,b){var s=new H.nX(b,a,1) this.b.push(s) return s}, jM:function(a,b){var s=new H.nX(b,a,2) this.b.push(s) return s}, KM:function(a,b){var s,r,q=this,p="varying ",o=b.c switch(o){case 0:q.cx.a+="const " break case 1:if(q.z)s="in " else s=q.Q?p:"attribute " q.cx.a+=s break case 2:q.cx.a+="uniform " break case 3:s=q.z?"out ":p q.cx.a+=s break}s=q.cx r=s.a+=H.aAN(b.b)+" "+b.a if(o===0)o=s.a=r+" = " else o=r s.a=o+";\n"}, bm:function(a){var s,r,q,p=this,o=p.z if(o)p.cx.a+="#version 300 es\n" s=p.e if(s!=null){if(s===0)s="lowp" else s=s===1?"mediump":"highp" p.cx.a+="precision "+s+" float;\n"}if(o&&p.ch!=null){o=p.ch o.toString p.KM(p.cx,o)}for(o=p.b,s=o.length,r=p.cx,q=0;q=0;--r,o=m){a.toString n=C.b.eF(a,r)!==-1&&C.b.C(l,r) m=p.a(s[r].d) if(!n)if(o==null)q.appendChild(m) else q.insertBefore(m,o)}}, a2Q:function(a1){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d=this.z,c=d.length,b=a1.z,a=b.length,a0=H.b([],t.g) for(s=0;s=97&&q<=122))q=q>=65&&q<=90 else q=!0 o=!(q&&f.length>1) if(o)n=f else n=null m=new H.a_1(a,n,f,p).$0() if(g.type!=="keydown")if(h.b){f=g.code f.toString f=f==="CapsLock" l=f}else l=!1 else l=!0 f=h.d k=f.i(0,p) if(h.b){q=g.code q.toString q=q==="CapsLock"}else q=!1 if(q){h.J1(C.G,new H.a_2(r,p,m),new H.a_3(h,p)) j=C.e6}else if(l)if(k!=null){q=g.repeat if(q!==!0)return j=C.fW}else j=C.e6 else{if(k==null)return j=C.bW}switch(j){case C.e6:i=m break case C.bW:i=null break case C.fW:i=k break default:throw H.a(H.j(u.I))}q=i==null if(q)f.u(0,p) else f.n(0,p,i) $.atY().K(0,new H.a_4(h,a,r)) if(o)if(!q)h.a5u(p,m,r) else{f=h.e.u(0,p) if(f!=null)f.$0()}f=k==null?m:k q=j===C.bW?null:n if(h.a.$1(new P.iL(j,p,f,q)))g.preventDefault()}} H.ZX.prototype={ $1:function(a){var s=this if(!s.a.a&&!s.b.c){s.c.$0() s.b.a.$1(s.d.$0())}}, $S:24} H.ZY.prototype={ $0:function(){this.a.a=!0}, $C:"$0", $R:0, $S:0} H.ZZ.prototype={ $0:function(){return new P.iL(C.bW,this.c,this.d,null)}, $S:148} H.a__.prototype={ $0:function(){this.a.d.u(0,this.b)}, $S:0} H.a_1.prototype={ $0:function(){var s,r,q,p,o,n,m,l=this,k=l.a.a,j=k.key j.toString if(C.kU.am(0,j)){j=k.key j.toString j=C.kU.i(0,j) if(j==null)s=null else{k=k.location k.toString s=j[k]}s.toString return s}j=l.b if(j!=null){s=C.c.W(j,0)&65535 if(j.length===2)s+=C.c.W(j,1)<<16>>>0 return s>=65&&s<=90?s+97-65:s}j=l.c if(j==="Dead"){r=k.altKey q=k.ctrlKey p=k.shiftKey o=k.metaKey k=r?70368744177664:0 j=q?17592186044416:0 n=p?35184372088832:0 m=o?140737488355328:0 return l.d+(k+j+n+m)+34359738368+1099511627776}k=C.x1.i(0,j) return k==null?J.a3(j)+34359738368+1099511627776:k}, $S:60} H.a_2.prototype={ $0:function(){return new P.iL(C.bW,this.b,this.c,null)}, $S:148} H.a_3.prototype={ $0:function(){this.a.d.u(0,this.b)}, $S:0} H.a_4.prototype={ $2:function(a,b){var s=this.a,r=s.d if(r.a8j(0,a)&&!b.$1(this.b))r.adG(r,new H.a_0(s,a,this.c))}, $S:205} H.a_0.prototype={ $2:function(a,b){var s=this.b if(b!=s)return!1 this.a.a.$1(new P.iL(C.bW,a,s,null)) return!0}, $S:208} H.a_U.prototype={} H.Tv.prototype={ ga6j:function(){var s=this.a return s===$?H.e(H.t("_unsubscribe")):s}, Jk:function(a){this.a=a.p5(0,t.lG.a(this.gOa(this)))}, pJ:function(){var s=0,r=P.af(t.H),q=this var $async$pJ=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:s=q.glS()!=null?2:3 break case 2:s=4 return P.ak(q.hG(),$async$pJ) case 4:s=5 return P.ak(q.glS().kG(0,-1),$async$pJ) case 5:case 3:return P.ad(null,r)}}) return P.ae($async$pJ,r)}, giL:function(){var s=this.glS() s=s==null?null:s.r_(0) return s==null?"/":s}, gas:function(){var s=this.glS() return s==null?null:s.r6(0)}, K5:function(){return this.ga6j().$0()}} H.x0.prototype={ Wg:function(a){var s,r=this,q=r.c if(q==null)return r.Jk(q) if(!r.yw(r.gas())){s=t.z q.j5(0,P.aj(["serialCount",0,"state",r.gas()],s,s),"flutter",r.giL())}r.d=r.gxE()}, gyG:function(){var s=this.d return s===$?H.e(H.t("_lastSeenSerialCount")):s}, gxE:function(){if(this.yw(this.gas()))return H.oR(J.aS(t.f.a(this.gas()),"serialCount")) return 0}, yw:function(a){return t.f.b(a)&&J.aS(a,"serialCount")!=null}, rk:function(a,b){var s,r=this,q=r.c if(q!=null){r.d=r.gyG()+1 s=t.z s=P.aj(["serialCount",r.gyG(),"state",b],s,s) a.toString q.qz(0,s,"flutter",a)}}, DO:function(a){return this.rk(a,null)}, Ca:function(a,b){var s,r,q,p,o=this if(!o.yw(new P.fQ([],[]).hr(b.state,!0))){s=o.c s.toString r=new P.fQ([],[]).hr(b.state,!0) q=t.z s.j5(0,P.aj(["serialCount",o.gyG()+1,"state",r],q,q),"flutter",o.giL())}o.d=o.gxE() s=$.bw() r=o.giL() q=new P.fQ([],[]).hr(b.state,!0) q=q==null?null:J.aS(q,"state") p=t.z s.ia("flutter/navigation",C.aN.i4(new H.hX("pushRouteInformation",P.aj(["location",r,"state",q],p,p))),new H.a02())}, hG:function(){var s=0,r=P.af(t.H),q,p=this,o,n,m var $async$hG=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:if(p.b||p.c==null){s=1 break}p.b=!0 p.K5() o=p.gxE() s=o>0?3:4 break case 3:s=5 return P.ak(p.c.kG(0,-o),$async$hG) case 5:case 4:n=t.f.a(p.gas()) m=p.c m.toString m.j5(0,J.aS(n,"state"),"flutter",p.giL()) case 1:return P.ad(q,r)}}) return P.ae($async$hG,r)}, glS:function(){return this.c}} H.a02.prototype={ $1:function(a){}, $S:15} H.ys.prototype={ WK:function(a){var s,r=this,q=r.c if(q==null)return r.Jk(q) s=r.giL() if(!r.HD(new P.fQ([],[]).hr(window.history.state,!0))){q.j5(0,P.aj(["origin",!0,"state",r.gas()],t.N,t.z),"origin","") r.zb(q,s,!1)}}, HD:function(a){return t.f.b(a)&&J.d(J.aS(a,"flutter"),!0)}, rk:function(a,b){var s=this.c if(s!=null)this.zb(s,a,!0)}, DO:function(a){return this.rk(a,null)}, Ca:function(a,b){var s=this,r="flutter/navigation",q=new P.fQ([],[]).hr(b.state,!0) if(t.f.b(q)&&J.d(J.aS(q,"origin"),!0)){q=s.c q.toString s.a57(q) $.bw().ia(r,C.aN.i4(C.xf),new H.a4S())}else if(s.HD(new P.fQ([],[]).hr(b.state,!0))){q=s.e q.toString s.e=null $.bw().ia(r,C.aN.i4(new H.hX("pushRoute",q)),new H.a4T())}else{s.e=s.giL() s.c.kG(0,-1)}}, zb:function(a,b,c){var s if(b==null)b=this.giL() s=this.d if(c)a.j5(0,s,"flutter",b) else a.qz(0,s,"flutter",b)}, a57:function(a){return this.zb(a,null,!1)}, hG:function(){var s=0,r=P.af(t.H),q,p=this,o var $async$hG=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:if(p.b||p.c==null){s=1 break}p.b=!0 p.K5() o=p.c s=3 return P.ak(o.kG(0,-1),$async$hG) case 3:o.j5(0,J.aS(t.f.a(p.gas()),"state"),"flutter",p.giL()) case 1:return P.ad(q,r)}}) return P.ae($async$hG,r)}, glS:function(){return this.c}} H.a4S.prototype={ $1:function(a){}, $S:15} H.a4T.prototype={ $1:function(a){}, $S:15} H.ni.prototype={} H.a7J.prototype={} H.Yb.prototype={ p5:function(a,b){C.aB.jJ(window,"popstate",b) return new H.Yf(this,b)}, r_:function(a){var s=window.location.hash if(s==null)s="" if(s.length===0||s==="#")return"/" return C.c.bw(s,1)}, r6:function(a){return new P.fQ([],[]).hr(window.history.state,!0)}, On:function(a,b){var s,r if(b.length===0){s=window.location.pathname s.toString r=window.location.search r.toString r=s+r s=r}else s="#"+b return s}, qz:function(a,b,c,d){var s=this.On(0,d),r=window.history r.toString r.pushState(new P.PY([],[]).je(b),c,s)}, j5:function(a,b,c,d){var s=this.On(0,d),r=window.history r.toString r.replaceState(new P.PY([],[]).je(b),c,s)}, kG:function(a,b){window.history.go(b) return this.a6H()}, a6H:function(){var s={},r=new P.a1($.R,t.U) s.a=$ new H.Yd(s).$1(this.p5(0,new H.Ye(new H.Yc(s),new P.aH(r,t.gR)))) return r}} H.Yf.prototype={ $0:function(){C.aB.vG(window,"popstate",this.b) return null}, $C:"$0", $R:0, $S:0} H.Yd.prototype={ $1:function(a){return this.a.a=a}, $S:136} H.Yc.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("unsubscribe")):s}, $S:130} H.Ye.prototype={ $1:function(a){this.a.$0().$0() this.b.ez(0)}, $S:4} H.V4.prototype={ p5:function(a,b){return J.auO(this.a,b)}, r_:function(a){return J.awv(this.a)}, r6:function(a){return J.awA(this.a)}, qz:function(a,b,c,d){return J.awP(this.a,b,c,d)}, j5:function(a,b,c,d){return J.awV(this.a,b,c,d)}, kG:function(a,b){return J.awC(this.a,b)}} H.a1i.prototype={} H.Tw.prototype={ gb9:function(a){return new P.fQ([],[]).hr(window.history.state,!0)}} H.Fc.prototype={ gLY:function(){var s=this.b return s===$?H.e(H.t("cullRect")):s}, lc:function(a,b){var s,r,q=this q.b=b q.c=!0 s=q.gLY() r=H.b([],t.EO) if(s==null)s=C.eE return q.a=new H.a22(new H.ad0(s,H.b([],t.rE),H.b([],t.cA),H.dt()),r,new H.a37())}, gND:function(){return this.c}, uL:function(){var s,r=this if(!r.c)r.lc(0,C.eE) r.c=!1 s=r.a s.b=s.a.a8b() s.f=!0 s=r.a r.gLY() return new H.Fb(s)}} H.Fb.prototype={} H.Ws.prototype={ BD:function(){var s=this.f if(s!=null)H.S_(s,this.r)}, abq:function(a,b){b.$1(!1)}, ia:function(a,b,c){var s,r,q,p,o,n,m,l,k,j="Invalid arguments for 'resize' method sent to dev.flutter/channel-buffers (arguments must be a two-element list, channel name and new capacity)",i="Invalid arguments for 'overflow' method sent to dev.flutter/channel-buffers (arguments must be a two-element list, channel name and flag state)" if(a==="dev.flutter/channel-buffers")try{s=$.Sj() b.toString s.toString r=H.cK(b.buffer,b.byteOffset,b.byteLength) if(r[0]===7){q=r[1] if(q>=254)H.e(P.cF("Unrecognized message sent to dev.flutter/channel-buffers (method name too long)")) p=2+q o=C.U.c7(0,C.a0.c2(r,2,p)) switch(o){case"resize":if(r[p]!==12)H.e(P.cF(j)) n=p+1 if(r[n]<2)H.e(P.cF(j));++n if(r[n]!==7)H.e(P.cF("Invalid arguments for 'resize' method sent to dev.flutter/channel-buffers (first argument must be a string)"));++n m=r[n] if(m>=254)H.e(P.cF("Invalid arguments for 'resize' method sent to dev.flutter/channel-buffers (channel name must be less than 254 characters long)"));++n p=n+m l=C.U.c7(0,C.a0.c2(r,n,p)) if(r[p]!==3)H.e(P.cF("Invalid arguments for 'resize' method sent to dev.flutter/channel-buffers (second argument must be an integer in the range 0 to 2147483647)")) s.OU(0,l,b.getUint32(p+1,C.af===$.d0())) break case"overflow":if(r[p]!==12)H.e(P.cF(i)) n=p+1 if(r[n]<2)H.e(P.cF(i));++n if(r[n]!==7)H.e(P.cF("Invalid arguments for 'overflow' method sent to dev.flutter/channel-buffers (first argument must be a string)"));++n m=r[n] if(m>=254)H.e(P.cF("Invalid arguments for 'overflow' method sent to dev.flutter/channel-buffers (channel name must be less than 254 characters long)"));++n s=n+m C.U.c7(0,C.a0.c2(r,n,s)) s=r[s] if(s!==1&&s!==2)H.e(P.cF("Invalid arguments for 'overflow' method sent to dev.flutter/channel-buffers (second argument must be a boolean)")) break default:H.e(P.cF("Unrecognized method '"+o+"' sent to dev.flutter/channel-buffers"))}}else{k=H.b(C.U.c7(0,r).split("\r"),t.s) if(k.length===3&&J.d(k[0],"resize"))s.OU(0,k[1],P.e5(k[2],null)) else H.e(P.cF("Unrecognized message "+H.c(k)+" sent to dev.flutter/channel-buffers."))}}finally{c.$1(null)}else{s=this.fr if(s!=null)H.kI(s,this.fx,a,b,c) else $.Sj().Os(a,b,c)}}, Xl:function(a,b,c){var s,r,q,p,o,n,m,l,k,j,i,h=this switch(a){case"flutter/skia":s=C.aN.fV(b) switch(s.a){case"Skia.setResourceCacheMaxBytes":r=H.aF() if(r){q=H.oR(s.b) r=h.gvD().a r.d=q r.JJ()}h.eU(c,C.ad.c8([H.b([!0],t.HZ)])) break}return case"flutter/assets":p=C.U.c7(0,H.cK(b.buffer,0,null)) $.RK.dD(0,p).f6(0,new H.Ww(h,c),new H.Wx(h,c),t.P) return case"flutter/platform":s=C.aN.fV(b) switch(s.a){case"SystemNavigator.pop":h.d.i(0,0).gu5().pJ().bN(0,new H.Wy(h,c),t.P) return case"HapticFeedback.vibrate":r=$.bD() o=h.a_y(s.b) r.toString n=window.navigator if("vibrate" in n)n.vibrate.apply(n,H.b([o],t.a0)) h.eU(c,C.ad.c8([!0])) return case u.F:m=s.b r=$.bD() o=J.ag(m) l=o.i(m,"label") r.toString r=document r.title=l o=o.i(m,"primaryColor") k=t.iI.a(r.querySelector("#flutterweb-theme")) if(k==null){k=r.createElement("meta") k.id="flutterweb-theme" k.name="theme-color" r.head.appendChild(k)}r=H.cs(new P.C(o>>>0)) r.toString k.content=r h.eU(c,C.ad.c8([!0])) return case"SystemChrome.setPreferredOrientations":$.bD().QC(s.b).bN(0,new H.Wz(h,c),t.P) return case"SystemSound.play":h.eU(c,C.ad.c8([!0])) return case"Clipboard.setData":r=window.navigator.clipboard!=null?new H.Ek():new H.Fk() new H.El(r,H.aoY()).Qw(s,c) return case"Clipboard.getData":r=window.navigator.clipboard!=null?new H.Ek():new H.Fk() new H.El(r,H.aoY()).PH(c) return}break case"flutter/service_worker":r=window j=document.createEvent("Event") j.initEvent("flutter-first-frame",!0,!0) r.dispatchEvent(j) return case"flutter/textinput":r=$.um() r.gug(r).aaS(b,c) return case"flutter/mousecursor":s=C.bx.fV(b) switch(s.a){case"activateSystemCursor":$.ajY.toString r=J.aS(s.b,"kind") o=$.bD().z o.toString r=C.wZ.i(0,r) H.cA(o,"cursor",r==null?"default":r) break}return case"flutter/web_test_e2e":h.eU(c,C.ad.c8([H.aDF(C.aN,b)])) return case"flutter/platform_views":r=H.aF() if(r)h.gvD().a.z.aaN(b,c) else{b.toString c.toString P.aFt(b,c)}return case"flutter/accessibility":i=new H.JL() $.auk().aaF(i,b) h.eU(c,i.c8(!0)) return case"flutter/navigation":h.d.i(0,0).q1(b).bN(0,new H.WA(h,c),t.P) h.y2="/" return}r=$.asw if(r!=null){r.$3(a,b,c) return}h.eU(c,null)}, a_y:function(a){switch(a){case"HapticFeedbackType.lightImpact":return 10 case"HapticFeedbackType.mediumImpact":return 20 case"HapticFeedbackType.heavyImpact":return 30 case"HapticFeedbackType.selectionClick":return 10 default:return 50}}, it:function(){var s=$.asB if(s==null)throw H.a(P.cF("scheduleFrameCallback must be initialized first.")) s.$0()}, adI:function(a,b){var s=H.aF() if(s){H.arl() H.arm() t.h_.a(a) s=this.gvD() s.toString s.a9e(a.a)}else{t._P.a(a) $.bD().OO(a.a)}H.aDv()}, Kl:function(a){var s=this,r=s.a if(r.d!==a){s.a=r.a8r(a) H.S_(null,null) H.S_(s.r2,s.rx)}}, Xv:function(){var s,r=this,q=r.k4 r.Kl(q.matches?C.a2:C.a3) s=new H.Wt(r) r.r1=s C.l0.aQ(q,s) $.hu.push(new H.Wu(r))}, gAy:function(){var s=this.y2 return s==null?this.y2=this.d.i(0,0).gu5().giL():s}, gvD:function(){var s,r,q,p,o=this.ac if(o===$){o=H.aF() if(o){o=t.S s=t.bo r=t._ q=H.b([],r) r=H.b([],r) p=$.b4().gij() p=new H.a1J(new H.rC(W.eR("flt-canvas-container",null),new H.YQ(P.y(o,t.wW),P.y(o,t.GB),P.y(s,t.h),P.y(s,t.ro),P.y(o,t.NU),P.aZ(o),P.aZ(o),q,r,P.y(o,o),p)),new H.Uu(),H.b([],t.u)) o=p}else o=null o=this.ac=o}return o}, eU:function(a,b){P.ajF(C.G,null,t.H).bN(0,new H.Wv(a,b),t.P)}} H.WB.prototype={ $1:function(a){this.a.lN(this.b,a,t.CD)}, $S:15} H.Ww.prototype={ $1:function(a){this.a.eU(this.b,a)}, $S:249} H.Wx.prototype={ $1:function(a){$.ck().$1("Error while trying to load an asset: "+H.c(a)) this.a.eU(this.b,null)}, $S:5} H.Wy.prototype={ $1:function(a){this.a.eU(this.b,C.ad.c8([!0]))}, $S:24} H.Wz.prototype={ $1:function(a){this.a.eU(this.b,C.ad.c8([a]))}, $S:69} H.WA.prototype={ $1:function(a){var s=this.b if(a)this.a.eU(s,C.ad.c8([!0])) else if(s!=null)s.$1(null)}, $S:69} H.Wt.prototype={ $1:function(a){var s=t.oh.a(a).matches s.toString s=s?C.a2:C.a3 this.a.Kl(s)}, $S:4} H.Wu.prototype={ $0:function(){var s=this.a,r=s.k4;(r&&C.l0).T(r,s.r1) s.r1=null}, $C:"$0", $R:0, $S:0} H.Wv.prototype={ $1:function(a){var s=this.a if(s!=null)s.$1(this.b)}, $S:24} H.ai1.prototype={ $0:function(){var s=this s.a.$3(s.b,s.c,s.d)}, $C:"$0", $R:0, $S:0} H.HK.prototype={ YM:function(){var s,r=this if("PointerEvent" in window){s=new H.ad2(P.y(t.S,t.ZW),r.a,r.gyV(),r.c) s.o2() return s}if("TouchEvent" in window){s=new H.afi(P.aZ(t.S),r.a,r.gyV(),r.c) s.o2() return s}if("MouseEvent" in window){s=new H.acN(new H.oy(),r.a,r.gyV(),r.c) s.o2() return s}throw H.a(P.F("This browser does not support pointer, touch, or mouse events."))}, a3g:function(a){var s=H.b(a.slice(0),H.Y(a)),r=$.bw() H.S0(r.ch,r.cx,new P.qA(s),t.kf)}} H.a1s.prototype={ j:function(a){return"pointers:"+("PointerEvent" in window)+", touch:"+("TouchEvent" in window)+", mouse:"+("MouseEvent" in window)}} H.a8Q.prototype={ zO:function(a,b,c,d){var s=new H.a8R(this,d,c) $.aBT.n(0,b,s) C.aB.l9(window,b,s,!0)}, jJ:function(a,b,c){return this.zO(a,b,c,!1)}} H.a8R.prototype={ $1:function(a){var s if(!this.b&&!this.a.a.contains(t.ZR.a(J.aiR(a))))return s=$.dR if((s==null?$.dR=H.l7():s).OB(a))this.c.$1(a)}, $S:4} H.QY.prototype={ F0:function(a){var s,r={},q=P.mf(new H.afY(a)) $.aBU.n(0,"wheel",q) r.passive=!1 s=this.a s.addEventListener.apply(s,["wheel",q,r])}, Ho:function(a){var s,r,q,p,o,n,m,l,k,j,i,h t.V6.a(a) s=(a&&C.il).ga8Z(a) r=C.il.ga9_(a) switch(C.il.ga8Y(a)){case 1:q=$.ar0 if(q==null){q=document p=q.createElement("div") o=p.style o.fontSize="initial" o.display="none" q.body.appendChild(p) n=window.getComputedStyle(p,"").fontSize if(C.c.C(n,"px"))m=H.apb(H.is(n,"px","")) else m=null C.dZ.c4(p) q=$.ar0=m==null?16:m/4}s*=q r*=q break case 2:q=$.b4() s*=q.gij().a r*=q.gij().b break case 0:default:break}l=H.b([],t.v) q=a.timeStamp q.toString q=H.t6(q) o=a.clientX a.clientY o.toString k=$.b4() j=k.x if(j==null)j=H.b0() a.clientX i=a.clientY i.toString k=k.x if(k==null)k=H.b0() h=a.buttons h.toString this.c.a8l(l,h,C.bY,-1,C.ap,o*j,i*k,1,1,0,s,r,C.hF,q) this.b.$1(l) if(a.getModifierState("Control")){q=H.el() if(q!==C.bH){q=H.el() q=q!==C.bG}else q=!1}else q=!1 if(q)return a.preventDefault()}} H.afY.prototype={ $1:function(a){return this.a.$1(a)}, $S:44} H.kx.prototype={ j:function(a){return H.E(this).j(0)+"(change: "+this.a.j(0)+", buttons: "+this.b+")"}} H.oy.prototype={ Dj:function(a,b){var s if(this.a!==0)return this.w7(b) s=(b===0&&a>-1?H.aF6(a):b)&1073741823 this.a=s return new H.kx(C.eD,s)}, w7:function(a){var s=a&1073741823,r=this.a if(r===0&&s!==0)return new H.kx(C.bY,r) this.a=s return new H.kx(s===0?C.bY:C.bZ,s)}, r8:function(a){if(this.a!==0&&(a&1073741823)===0){this.a=0 return new H.kx(C.dl,0)}return null}, Dk:function(a){var s if(this.a===0)return null s=this.a=(a==null?0:a)&1073741823 if(s===0)return new H.kx(C.dl,s) else return new H.kx(C.bZ,s)}} H.ad2.prototype={ Gu:function(a){return this.d.bX(0,a,new H.ad4())}, IL:function(a){if(a.pointerType==="touch")this.d.u(0,a.pointerId)}, x0:function(a,b,c){this.zO(0,a,new H.ad3(b),c)}, EY:function(a,b){return this.x0(a,b,!1)}, o2:function(){var s=this s.EY("pointerdown",new H.ad5(s)) s.x0("pointermove",new H.ad6(s),!0) s.x0("pointerup",new H.ad7(s),!0) s.EY("pointercancel",new H.ad8(s)) s.F0(new H.ad9(s))}, fI:function(a,b,c){var s,r,q,p,o,n,m,l=c.pointerType l.toString s=this.Ip(l) l=c.tiltX l.toString r=c.tiltY r.toString if(!(Math.abs(l)>Math.abs(r)))l=r r=c.timeStamp r.toString q=H.t6(r) r=this.oF(c) p=c.clientX c.clientY p.toString o=$.b4() n=o.x if(n==null)n=H.b0() c.clientX m=c.clientY m.toString o=o.x if(o==null)o=H.b0() this.c.a8k(a,b.b,b.a,r,s,p*n,m*o,c.pressure,1,0,C.bI,l/180*3.141592653589793,q)}, ZM:function(a){var s if("getCoalescedEvents" in a){s=J.CT(a.getCoalescedEvents(),t.W2) if(!s.gO(s))return s}return H.b([a],t.Y2)}, Ip:function(a){switch(a){case"mouse":return C.ap case"pen":return C.aJ case"touch":return C.an default:return C.aU}}, oF:function(a){var s=a.pointerType s.toString if(this.Ip(s)===C.ap)s=-1 else{s=a.pointerId s.toString}return s}} H.ad4.prototype={ $0:function(){return new H.oy()}, $S:253} H.ad3.prototype={ $1:function(a){return this.a.$1(t.W2.a(a))}, $S:44} H.ad5.prototype={ $1:function(a){var s,r,q=this.a,p=q.oF(a),o=H.b([],t.v),n=q.Gu(p),m=a.buttons m.toString s=n.r8(m) if(s!=null)q.fI(o,s,a) m=a.button r=a.buttons r.toString q.fI(o,n.Dj(m,r),a) q.b.$1(o)}, $S:65} H.ad6.prototype={ $1:function(a){var s,r,q,p,o=this.a,n=o.Gu(o.oF(a)),m=H.b([],t.v) for(s=J.as(o.ZM(a));s.q();){r=s.gw(s) q=r.buttons q.toString p=n.r8(q) if(p!=null)o.fI(m,p,r) q=r.buttons q.toString o.fI(m,n.w7(q),r)}o.b.$1(m)}, $S:65} H.ad7.prototype={ $1:function(a){var s,r=this.a,q=r.oF(a),p=H.b([],t.v),o=r.d.i(0,q) o.toString s=o.Dk(a.buttons) r.IL(a) if(s!=null){r.fI(p,s,a) r.b.$1(p)}}, $S:65} H.ad8.prototype={ $1:function(a){var s=this.a,r=s.oF(a),q=H.b([],t.v),p=s.d.i(0,r) p.toString p.a=0 s.IL(a) s.fI(q,new H.kx(C.dj,0),a) s.b.$1(q)}, $S:65} H.ad9.prototype={ $1:function(a){this.a.Ho(a)}, $S:4} H.afi.prototype={ rB:function(a,b){this.jJ(0,a,new H.afj(b))}, o2:function(){var s=this s.rB("touchstart",new H.afk(s)) s.rB("touchmove",new H.afl(s)) s.rB("touchend",new H.afm(s)) s.rB("touchcancel",new H.afn(s))}, rI:function(a,b,c,d,e){var s,r,q,p,o,n=e.identifier n.toString s=C.d.aO(e.clientX) C.d.aO(e.clientY) r=$.b4() q=r.x if(q==null)q=H.b0() C.d.aO(e.clientX) p=C.d.aO(e.clientY) r=r.x if(r==null)r=H.b0() o=c?1:0 this.c.LA(b,o,a,n,C.an,s*q,p*r,1,1,0,C.bI,d)}} H.afj.prototype={ $1:function(a){return this.a.$1(t.wv.a(a))}, $S:44} H.afk.prototype={ $1:function(a){var s,r,q,p,o,n,m,l,k=a.timeStamp k.toString s=H.t6(k) r=H.b([],t.v) for(k=a.changedTouches,q=k.length,p=this.a,o=p.d,n=0;nq){r.d=q+1 r=$.bw() H.kI(r.x2,r.y1,this.b.go,C.lM,null)}else if(sq){s=s.b s.toString if((s&32)!==0||(s&16)!==0){s=$.bw() H.kI(s.x2,s.y1,p,C.dr,n)}else{s=$.bw() H.kI(s.x2,s.y1,p,C.dt,n)}}else{s=s.b s.toString if((s&32)!==0||(s&16)!==0){s=$.bw() H.kI(s.x2,s.y1,p,C.ds,n)}else{s=$.bw() H.kI(s.x2,s.y1,p,C.du,n)}}}}, jb:function(a){var s,r,q,p=this if(p.d==null){s=p.b r=s.k1 q=r.style q.toString C.e.a_(q,C.e.R(q,"touch-action"),"none","") p.GL() s=s.id s.d.push(new H.a4b(p)) q=new H.a4c(p) p.c=q s.ch.push(q) q=new H.a4d(p) p.d=q J.aiL(r,"scroll",q)}}, gGh:function(){var s=this.b,r=s.b r.toString r=(r&32)!==0||(r&16)!==0 s=s.k1 if(r)return C.d.aO(s.scrollTop) else return C.d.aO(s.scrollLeft)}, I3:function(){var s=this.b,r=s.k1,q=s.b q.toString if((q&32)!==0||(q&16)!==0){r.scrollTop=10 s.r2=this.e=C.d.aO(r.scrollTop) s.rx=0}else{r.scrollLeft=10 q=C.d.aO(r.scrollLeft) this.e=q s.r2=0 s.rx=q}}, GL:function(){var s="overflow-y",r="overflow-x",q=this.b,p=q.k1 switch(q.id.z){case C.be:q=q.b q.toString if((q&32)!==0||(q&16)!==0){q=p.style q.toString C.e.a_(q,C.e.R(q,s),"scroll","")}else{q=p.style q.toString C.e.a_(q,C.e.R(q,r),"scroll","")}break case C.e4:q=q.b q.toString if((q&32)!==0||(q&16)!==0){q=p.style q.toString C.e.a_(q,C.e.R(q,s),"hidden","")}else{q=p.style q.toString C.e.a_(q,C.e.R(q,r),"hidden","")}break default:throw H.a(H.j(u.I))}}, p:function(a){var s,r=this,q=r.b,p=q.k1,o=p.style o.removeProperty("overflowY") o.removeProperty("overflowX") o.removeProperty("touch-action") s=r.d if(s!=null)J.an2(p,"scroll",s) C.b.u(q.id.ch,r.c) r.c=null}} H.a4b.prototype={ $0:function(){this.a.I3()}, $C:"$0", $R:0, $S:0} H.a4c.prototype={ $1:function(a){this.a.GL()}, $S:142} H.a4d.prototype={ $1:function(a){this.a.a45()}, $S:4} H.a4E.prototype={} H.J5.prototype={} H.i2.prototype={ j:function(a){return this.b}} H.ah7.prototype={ $1:function(a){return H.az0(a)}, $S:306} H.ah8.prototype={ $1:function(a){return new H.qZ(a)}, $S:347} H.ah9.prototype={ $1:function(a){return new H.q9(a)}, $S:348} H.aha.prototype={ $1:function(a){return new H.rI(a)}, $S:392} H.ahb.prototype={ $1:function(a){var s,r,q,p=new H.rN(a),o=a.a o.toString s=(o&524288)!==0?document.createElement("textarea"):W.Zr() o=new H.a4D(a,$.um(),H.b([],t.Iu)) o.RP(s) p.c=o r=o.c r.spellcheck=!1 r.setAttribute("autocorrect","off") r.setAttribute("autocomplete","off") r.setAttribute("data-semantics-role","text-field") r=o.c.style r.position="absolute" r.top="0" r.left="0" q=a.z q=H.c(q.c-q.a)+"px" r.width=q q=a.z q=H.c(q.d-q.b)+"px" r.height=q o=o.c o.toString a.k1.appendChild(o) o=H.bV() switch(o){case C.bv:case C.bN:case C.jb:case C.cQ:case C.bw:case C.cQ:case C.jc:p.Hx() break case C.W:p.a2o() break default:H.e(H.j(u.I))}return p}, $S:400} H.ahc.prototype={ $1:function(a){return new H.pk(H.aD3(a),a)}, $S:416} H.ahd.prototype={ $1:function(a){return new H.pY(a)}, $S:419} H.ahe.prototype={ $1:function(a){return new H.qd(a)}, $S:434} H.fF.prototype={} H.cB.prototype={ wU:function(a,b){var s=this.k1,r=s.style r.position="absolute" if(this.go===0&&!0){r=s.style r.toString C.e.a_(r,C.e.R(r,"filter"),"opacity(0%)","") s=s.style s.color="rgba(0,0,0,0)"}}, De:function(){var s,r=this if(r.k3==null){s=W.eR("flt-semantics-container",null) r.k3=s s=s.style s.position="absolute" s=r.k3 s.toString r.k1.appendChild(s)}return r.k3}, gNH:function(){var s,r=this.a r.toString if((r&16384)!==0){s=this.b s.toString r=(s&1)===0&&(r&8)===0}else r=!1 return r}, Mk:function(){var s=this.a s.toString if((s&64)!==0)if((s&128)!==0)return C.qu else return C.fN else return C.qt}, fA:function(a,b){var s if(b)this.k1.setAttribute("role",a) else{s=this.k1 if(s.getAttribute("role")===a)s.removeAttribute("role")}}, jG:function(a,b){var s=this.r1,r=s.i(0,a) if(b){if(r==null){r=$.au4().i(0,a).$1(this) s.n(0,a,r)}r.jb(0)}else if(r!=null){r.p(0) s.u(0,a)}}, OD:function(){var s,r,q,p,o,n,m,l,k=this,j={},i=k.k1,h=i.style,g=k.z g=H.c(g.c-g.a)+"px" h.width=g g=k.z g=H.c(g.d-g.b)+"px" h.height=g h=k.fr s=h!=null&&!C.eu.gO(h)?k.De():null h=k.z r=h.b===0&&h.a===0 q=k.dy h=q==null p=h||H.air(q)===C.mk if(r&&p&&k.r2===0&&k.rx===0){H.a4v(i) if(s!=null)H.a4v(s) return}j.a=$ g=new H.a4w(j) j=new H.a4x(j) if(!r)if(h){h=k.z o=h.a n=h.b h=H.dt() h.m2(o,n,0) j.$1(h) m=o===0&&n===0}else{h=new H.bt(new Float32Array(16)) h.bC(new H.bt(q)) l=k.z h.CF(0,l.a,l.b,0) j.$1(h) m=J.awF(g.$0())}else if(!p){j.$1(new H.bt(q)) m=!1}else m=!0 if(!m){j=i.style j.toString C.e.a_(j,C.e.R(j,"transform-origin"),"0 0 0","") g=H.ir(g.$0().a) C.e.a_(j,C.e.R(j,"transform"),g,"")}else H.a4v(i) if(s!=null)if(!r||k.r2!==0||k.rx!==0){j=k.z i=j.a h=k.rx j=j.b g=k.r2 l=s.style g=H.c(-j+g)+"px" l.top=g j=H.c(-i+h)+"px" l.left=j}else H.a4v(s)}, a6l:function(){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1=this,a2="flt-semantics",a3=a1.fr if(a3==null||a3.length===0){s=a1.ry if(s==null||s.length===0){a1.ry=a3 return}r=s.length for(a3=a1.id,s=a3.a,q=0;q=0;--q){a0=a1.fr[q] p=s.i(0,a0) if(p==null){p=new H.cB(a0,a3,W.eR(a2,null),P.y(n,m)) p.wU(a0,a3) s.n(0,a0,p)}if(!C.b.C(b,a0)){l=p.k1 if(a==null)o.appendChild(l) else o.insertBefore(l,a) p.k4=a1 a3.b.n(0,p.go,a1)}a=p.k1}a1.ry=a1.fr}, j:function(a){var s=this.bP(0) return s}} H.a4x.prototype={ $1:function(a){return this.a.a=a}, $S:442} H.a4w.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("effectiveTransform")):s}, $S:454} H.SA.prototype={ j:function(a){return this.b}} H.n4.prototype={ j:function(a){return this.b}} H.WC.prototype={ Vt:function(){$.hu.push(new H.WD(this))}, ZW:function(){var s,r,q,p,o,n,m,l=this for(s=l.c,r=s.length,q=l.a,p=0;p>>0}l=m.dy if(k.cx!=l){k.cx=l k.k2=(k.k2|4096)>>>0}l=m.db if(k.Q!=l){k.Q=l k.k2=(k.k2|1024)>>>0}l=m.cy if(!J.d(k.z,l)){k.z=l k.k2=(k.k2|512)>>>0}l=m.go if(k.dy!==l){k.dy=l k.k2=(k.k2|65536)>>>0}l=m.Q if(k.r!==l){k.r=l k.k2=(k.k2|64)>>>0}l=k.b j=m.c if(l!==j){k.b=j k.k2=(k.k2|2)>>>0 l=j}j=m.f if(k.c!=j){k.c=j k.k2=(k.k2|4)>>>0}j=m.r if(k.d!=j){k.d=j k.k2=(k.k2|8)>>>0}j=m.y if(k.e!==j){k.e=j k.k2=(k.k2|16)>>>0}j=m.z if(k.f!==j){k.f=j k.k2=(k.k2|32)>>>0}j=m.ch if(k.x!==j){k.x=j k.k2=(k.k2|128)>>>0}j=m.cx if(k.y!==j){k.y=j k.k2=(k.k2|256)>>>0}j=m.dx if(k.ch!=j){k.ch=j k.k2=(k.k2|2048)>>>0}j=m.fr if(k.cy!=j){k.cy=j k.k2=(k.k2|8192)>>>0}j=m.fx if(k.db!=j){k.db=j k.k2=(k.k2|16384)>>>0}j=m.fy if(k.dx!=j){k.dx=j k.k2=(k.k2|32768)>>>0}j=k.fx i=m.k1 if(j==null?i!=null:j!==i){k.fx=i k.k2=(k.k2|1048576)>>>0}j=k.fr i=m.id if(j==null?i!=null:j!==i){k.fr=i k.k2=(k.k2|524288)>>>0}j=k.fy i=m.k2 if(j==null?i!=null:j!==i){k.fy=i k.k2=(k.k2|2097152)>>>0}j=k.Q if(!(j!=null&&j.length!==0)){j=k.cx j=j!=null&&j.length!==0}else j=!0 if(j){j=k.a j.toString if((j&16384)!==0){l.toString l=(l&1)===0&&(j&8)===0}else l=!1 l=!l}else l=!1 k.jG(C.lt,l) l=k.a l.toString k.jG(C.lv,(l&16)!==0) l=k.b l.toString if((l&1)===0){l=k.a l.toString l=(l&8)!==0}else l=!0 k.jG(C.lu,l) l=k.b l.toString k.jG(C.lr,(l&64)!==0||(l&128)!==0) l=k.b l.toString k.jG(C.ls,(l&32)!==0||(l&16)!==0||(l&4)!==0||(l&8)!==0) l=k.a l.toString k.jG(C.lw,(l&1)!==0||(l&65536)!==0) l=k.a l.toString if((l&16384)!==0){j=k.b j.toString l=(j&1)===0&&(l&8)===0}else l=!1 k.jG(C.lx,l) l=k.a l.toString k.jG(C.ly,(l&32768)!==0&&(l&8192)===0) k.a6l() l=k.k2 if((l&512)!==0||(l&65536)!==0||(l&64)!==0)k.OD() k.k2=0}if(h.e==null){s=q.i(0,0).k1 h.e=s $.bD().r.appendChild(s)}h.ZW()}} H.WD.prototype={ $0:function(){var s=this.a.e if(s!=null)J.c9(s)}, $C:"$0", $R:0, $S:0} H.WF.prototype={ $0:function(){return new P.er(Date.now(),!1)}, $S:154} H.WE.prototype={ $0:function(){var s=this.a if(s.z===C.be)return s.z=C.be s.I4()}, $S:0} H.vK.prototype={ j:function(a){return this.b}} H.a4r.prototype={} H.a4n.prototype={ QN:function(a){if(!this.gNI())return!0 else return this.vT(a)}} H.Vg.prototype={ gNI:function(){return this.b!=null}, vT:function(a){var s,r,q=this if(q.d){s=q.b s.toString J.c9(s) q.a=q.b=null return!0}s=$.dR if((s==null?$.dR=H.l7():s).x)return!0 if(!J.fW(C.C1.a,a.type))return!0 if(++q.c>=20)return q.d=!0 if(q.a!=null)return!1 s=J.aiR(a) r=q.b if(s==null?r==null:s===r){q.a=P.ci(C.aE,new H.Vi(q)) return!1}return!0}, Om:function(){var s,r=this.b=W.eR("flt-semantics-placeholder",null) J.CR(r,"click",new H.Vh(this),!0) r.setAttribute("role","button") r.setAttribute("aria-live","true") r.setAttribute("tabindex","0") r.setAttribute("aria-label","Enable accessibility") s=r.style s.position="absolute" s.left="-1px" s.top="-1px" s.width="1px" s.height="1px" return r}} H.Vi.prototype={ $0:function(){var s=$.dR;(s==null?$.dR=H.l7():s).sDw(!0) this.a.d=!0}, $C:"$0", $R:0, $S:0} H.Vh.prototype={ $1:function(a){this.a.vT(a)}, $S:4} H.a_N.prototype={ gNI:function(){return this.b!=null}, vT:function(a){var s,r,q,p,o,n,m,l,k,j,i,h,g=this if(g.d){s=H.bV() if(s===C.W){s=a.type r=s==="touchend"||s==="pointerup"||s==="click"}else r=!0 if(r){s=g.b s.toString J.c9(s) g.a=g.b=null}return!0}s=$.dR if((s==null?$.dR=H.l7():s).x)return!0 if(++g.c>=20)return g.d=!0 if(!J.fW(C.C0.a,a.type))return!0 if(g.a!=null)return!1 s=H.bV() if(s!==C.bv){s=H.bV() s=s===C.bN}else s=!0 if(s){s=$.dR q=(s==null?$.dR=H.l7():s).z===C.be}else q=!1 s=H.bV() if(s===C.W){switch(a.type){case"click":p=J.amT(t.Tl.a(a)) break case"touchstart":case"touchend":s=t.wv.a(a).changedTouches s.toString s=C.dA.gI(s) p=new P.fC(C.d.aO(s.clientX),C.d.aO(s.clientY),t.i6) break case"pointerdown":case"pointerup":t.W2.a(a) p=new P.fC(a.clientX,a.clientY,t.i6) break default:return!0}o=$.bD().z.getBoundingClientRect() s=o.left s.toString n=o.right n.toString m=o.top m.toString l=o.bottom l.toString k=p.a k.toString j=k-(s+(n-s)/2) s=p.b s.toString i=s-(m+(l-m)/2) h=j*j+i*i<1&&!0}else h=!1 if(q||h){g.a=P.ci(C.aE,new H.a_P(g)) return!1}return!0}, Om:function(){var s,r=this.b=W.eR("flt-semantics-placeholder",null) J.CR(r,"click",new H.a_O(this),!0) r.setAttribute("role","button") r.setAttribute("aria-label","Enable accessibility") s=r.style s.position="absolute" s.left="0" s.top="0" s.right="0" s.bottom="0" return r}} H.a_P.prototype={ $0:function(){var s=$.dR;(s==null?$.dR=H.l7():s).sDw(!0) this.a.d=!0}, $C:"$0", $R:0, $S:0} H.a_O.prototype={ $1:function(a){this.a.vT(a)}, $S:4} H.rI.prototype={ jb:function(a){var s=this,r=s.b,q=r.k1,p=r.a p.toString r.fA("button",(p&8)!==0) if(r.Mk()===C.fN){p=r.a p.toString p=(p&8)!==0}else p=!1 if(p){q.setAttribute("aria-disabled","true") s.zi()}else{p=r.b p.toString if((p&1)!==0){r=r.a r.toString r=(r&16)===0}else r=!1 if(r){if(s.c==null){r=new H.a6W(s) s.c=r J.aiL(q,"click",r)}}else s.zi()}}, zi:function(){var s=this.c if(s==null)return J.an2(this.b.k1,"click",s) this.c=null}, p:function(a){this.zi() this.b.fA("button",!1)}} H.a6W.prototype={ $1:function(a){var s,r=this.a.b if(r.id.z!==C.be)return s=$.bw() H.kI(s.x2,s.y1,r.go,C.dq,null)}, $S:4} H.a4D.prototype={ k0:function(a){var s,r,q=this q.b=!1 q.r=q.f=null for(s=q.z,r=0;r=this.b)throw H.a(P.bY(b,this,null,null,null)) return this.a[b]}, n:function(a,b,c){if(b>=this.b)throw H.a(P.bY(b,this,null,null,null)) this.a[b]=c}, sl:function(a,b){var s,r,q,p=this,o=p.b if(bo){if(o===0)q=new Uint8Array(b) else q=p.wV(b) C.a0.cV(q,0,p.b,p.a) p.a=q}}p.b=b}, dG:function(a,b){var s=this,r=s.b if(r===s.a.length)s.ER(r) s.a[s.b++]=b}, B:function(a,b){var s=this,r=s.b if(r===s.a.length)s.ER(r) s.a[s.b++]=b}, iE:function(a,b,c,d){P.cV(c,"start") if(d!=null&&c>d)throw H.a(P.bz(d,c,null,"end",null)) this.Xh(b,c,d)}, J:function(a,b){return this.iE(a,b,0,null)}, Xh:function(a,b,c){var s,r,q,p=this if(H.u(p).h("v").b(a))c=c==null?a.length:c if(c!=null){p.Xj(p.b,a,b,c) return}for(s=J.as(a),r=0;s.q();){q=s.gw(s) if(r>=b)p.dG(0,q);++r}if(ro.gl(b)||d>o.gl(b))throw H.a(P.a4("Too few elements")) s=d-c r=p.b+s p.Xi(r) o=p.a q=a+s C.a0.b3(o,q,p.b+s,o,a) C.a0.b3(p.a,a,q,b,c) p.b=r}, Xi:function(a){var s,r=this if(a<=r.a.length)return s=r.wV(a) C.a0.cV(s,0,r.b,r.a) r.a=s}, wV:function(a){var s=this.a.length*2 if(a!=null&&ss)throw H.a(P.bz(c,0,s,null,null)) s=this.a if(H.u(this).h("jl").b(d))C.a0.b3(s,b,c,d.a,e) else C.a0.b3(s,b,c,d,e)}, cV:function(a,b,c,d){return this.b3(a,b,c,d,0)}} H.Nh.prototype={} H.Kn.prototype={} H.hX.prototype={ j:function(a){return H.E(this).j(0)+"("+this.a+", "+H.c(this.b)+")"}} H.G9.prototype={ c8:function(a){return H.ha(C.cg.c6(C.Q.d1(a)).buffer,0,null)}, fj:function(a){if(a==null)return a return C.Q.c7(0,C.cJ.c6(H.cK(a.buffer,0,null)))}} H.Ga.prototype={ i4:function(a){return C.ad.c8(P.aj(["method",a.a,"args",a.b],t.N,t.z))}, fV:function(a){var s,r,q,p=null,o=C.ad.fj(a) if(!t.f.b(o))throw H.a(P.bx("Expected method call Map, got "+H.c(o),p,p)) s=J.ag(o) r=s.i(o,"method") q=s.i(o,"args") if(typeof r=="string")return new H.hX(r,q) throw H.a(P.bx("Invalid method call: "+H.c(o),p,p))}} H.JL.prototype={ c8:function(a){var s=H.akB() this.dF(0,s,!0) return s.k5()}, fj:function(a){var s,r if(a==null)return null s=new H.HY(a) r=this.h3(0,s) if(s.bg.gqb()){a=H.c(g.gdH().c)+"px" b.width=a}a=c.e s=a==null if(!s||c.Q!=null){C.e.a_(b,C.e.R(b,"overflow-y"),"hidden","") r=H.c(g.gdH().d)+"px" b.height=r}if(c.Q!=null)c=s||a===1 else c=!1 if(c){c=H.c(g.gdH().c)+"px" b.width=c C.e.a_(b,C.e.R(b,"overflow-x"),"hidden","") C.e.a_(b,C.e.R(b,"text-overflow"),"ellipsis","")}f.a=$ q=new H.TU(f) p=new H.TV(f) o=g.gdH().Q for(n=null,m=0;m0){c=$.bD() a=q.$0() c.toString l=document.createElement("br") a.appendChild(l)}for(c=o[m].f,a=c.length,k=0;k=q.c&&p")),h=t.N;j.q();){g=j.d f=J.ag(g) e=f.i(g,"family") for(g=J.as(f.i(g,"fonts"));g.q();){d=g.gw(g) f=J.ag(d) c=f.i(d,"asset") b=P.y(h,h) for(a=J.as(f.gaj(d));a.q();){a0=a.gw(a) if(a0!=="asset")b.n(0,a0,H.c(f.i(d,a0)))}f=m.a f.toString e.toString f.OE(e,"url("+H.c(a3.vY(c))+")",b)}}case 1:return P.ad(q,r) case 2:return P.ac(o,r)}}) return P.ae($async$j3,r)}, hv:function(){var s=0,r=P.af(t.H),q=this,p var $async$hv=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:p=q.a s=2 return P.ak(p==null?null:P.pS(p.a,t.H),$async$hv) case 2:p=q.b s=3 return P.ak(p==null?null:P.pS(p.a,t.H),$async$hv) case 3:return P.ad(null,r)}}) return P.ae($async$hv,r)}} H.FJ.prototype={ OE:function(a,b,c){var s=$.at2().b if(typeof a!="string")H.e(H.bZ(a)) if(s.test(a)||$.at1().R4(a)!=a)this.HM("'"+H.c(a)+"'",b,c) this.HM(a,b,c)}, HM:function(a,b,c){var s,r,q try{s=W.ayP(a,b,c) this.a.push(P.hw(s.load(),t.Y8).f6(0,new H.Xt(s),new H.Xu(a),t.H))}catch(q){r=H.U(q) $.ck().$1('Error while loading font family "'+H.c(a)+'":\n'+H.c(r))}}} H.Xt.prototype={ $1:function(a){document.fonts.add(this.a)}, $S:471} H.Xu.prototype={ $1:function(a){$.ck().$1('Error while trying to load font family "'+H.c(this.a)+'":\n'+H.c(a))}, $S:5} H.OF.prototype={ OE:function(a,b,c){var s,r,q,p,o,n,m,l="style",k="weight",j={},i=document,h=i.createElement("p"),g=h.style g.position="absolute" g=h.style g.visibility="hidden" g=h.style g.fontSize="72px" g=H.bV() s=g===C.cQ?"Times New Roman":"sans-serif" g=h.style g.fontFamily=s if(c.i(0,l)!=null){g=h.style r=c.i(0,l) g.toString g.fontStyle=r==null?"":r}if(c.i(0,k)!=null){g=h.style r=c.i(0,k) g.toString g.fontWeight=r==null?"":r}h.textContent="giItT1WQy@!-/#" i.body.appendChild(h) q=C.d.aO(h.offsetWidth) g=h.style r="'"+H.c(a)+"', "+s g.fontFamily=r g=new P.a1($.R,t.U) j.a=$ r=t.N p=P.y(r,t.ob) p.n(0,"font-family","'"+H.c(a)+"'") p.n(0,"src",b) if(c.i(0,l)!=null)p.n(0,"font-style",c.i(0,l)) if(c.i(0,k)!=null)p.n(0,"font-weight",c.i(0,k)) o=p.gaj(p) n=H.jT(o,new H.add(p),H.u(o).h("l.E"),r).bI(0," ") m=i.createElement("style") m.type="text/css" C.m5.DJ(m,"@font-face { "+n+" }") i.head.appendChild(m) if(C.c.C(a.toLowerCase(),"icon")){C.lj.c4(h) return}new H.adb(j).$1(new P.er(Date.now(),!1)) new H.adc(h,q,new P.aH(g,t.gR),new H.ada(j),a).$0() this.a.push(g)}} H.adb.prototype={ $1:function(a){return this.a.a=a}, $S:466} H.ada.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("_fontLoadStart")):s}, $S:154} H.adc.prototype={ $0:function(){var s=this,r=s.a if(C.d.aO(r.offsetWidth)!==s.b){C.lj.c4(r) s.c.ez(0)}else if(P.cJ(0,Date.now()-s.d.$0().a).a>2e6){s.c.ez(0) throw H.a(P.cF("Timed out trying to load font: "+H.c(s.e)))}else P.ci(C.cZ,s)}, $C:"$0", $R:0, $S:0} H.add.prototype={ $1:function(a){return H.c(a)+": "+H.c(this.a.i(0,a))+";"}, $S:45} H.a78.prototype={ vx:function(a2){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c=this,b=c.a,a=b.a,a0=a.length,a1=c.c=a2.a c.d=0 c.e=null c.r=c.f=0 c.z=!1 s=c.Q C.b.sl(s,0) if(a0===0)return r=new H.a66(b,c.b) q=H.ajQ(b,r,0,0,a1,new H.dc(0,0,0,C.d4)) for(p=b.b,o=0;!0;){if(o===a0){if(q.a.length!==0||q.y.d!==C.aR){q.aa0() s.push(q.bm(0))}break}n=a[o] r.smZ(n) m=n.c l=H.alE(q.d.c,q.y.a,m) k=q.PA(l) if(q.z+k<=a1){q.pL(l) if(l.d===C.bj){s.push(q.bm(0)) q=q.vr()}}else{j=p.Q i=j!=null if((i&&p.e==null||s.length+1===p.e)&&i){q.MP(l,!0,j) s.push(q.Lg(0,j)) break}else if(q.a.length===0){q.aao(l,!1) s.push(q.bm(0)) q=q.vr()}else{s.push(q.bm(0)) q=q.vr()}}if(q.y.a>=m){q.LT();++o}if(s.length===p.e)break}for(p=s.length,h=0;h=b)++o d=C.b.gL(q.a).d if(c.f=b||a<0||b<0)return H.b([],t.G) s=this.a.c.length if(a>s||b>s)return H.b([],t.G) r=H.b([],t.G) for(q=this.Q,p=q.length,o=0;o=n+p.cx)return new P.aV(p.e,C.aK) s=o-n for(o=p.f,n=o.length,r=0;r=n)){r=p.a r.smZ(p.b) q-=r.iC(c,n)}n=a.cy return new P.f8(s+n,o,q+n,o+p.r,p.y)}, PZ:function(a){var s,r,q,p,o=this,n=o.a n.smZ(o.b) a-=o.e s=o.c.a r=o.d.b q=n.Bd(s,r,!0,a) if(q===r)return new P.aV(q,C.aK) p=q+1 if(a-n.iC(s,q)=0 if(!(s&&o[r].d===0))break q+=o[r].e;--r}if(s){o=o[r] q+=o.e-o.d}p.z-=q}}return n}, MP:function(a,b,c){var s,r,q,p,o,n=this if(c==null){s=n.Q r=a.c q=n.e.Bd(n.y.a,r,b,n.c-s) if(q===r)n.pL(a) else n.pL(new H.dc(q,q,q,C.d4)) return}s=n.e p=n.c-H.me(s.b,c,0,c.length,null) o=n.xC(a) r=n.a while(!0){if(!(r.length!==0&&n.Q>p))break o=n.a3Z()}s.smZ(o.a) q=s.Bd(o.b.a,o.c.a,b,p-n.Q) n.pL(new H.dc(q,q,q,C.d4)) s=n.b while(!0){if(s.length>0){r=C.b.gL(s) r=r.gaX(r).a>q}else r=!1 if(!r)break s.pop()}}, aao:function(a,b){return this.MP(a,b,null)}, gXW:function(){var s=this.b if(s.length===0)return this.f s=C.b.gL(s) return s.gaX(s)}, gXV:function(){var s=this.b if(s.length===0)return 0 s=C.b.gL(s) return s.gqJ(s)}, LT:function(){var s,r,q,p,o,n,m=this,l=m.gXW(),k=m.y,j=l.a if(j===k.a)return s=m.e r=m.gXV() q=m.d.b.b if(q==null)q=C.m p=s.e p.toString o=s.d o=o.gai(o) n=s.d n=n.gfg(n) m.b.push(new H.oc(s,p,l,k,r,s.iC(j,k.b),o,n,q))}, Lg:function(a,b){var s,r,q,p,o,n,m,l,k,j,i=this i.LT() s=b==null?0:H.me(i.e.b,b,0,b.length,null) r=i.f.a q=i.y p=Math.max(r,q.b) if(q.d!==C.aR&&i.ga2B())o=!1 else{q=i.y.d o=q===C.bj||q===C.aR}q=i.y n=i.z m=i.Q l=i.ga76() k=i.ch j=i.cx return new H.mQ(null,b,r,q.a,p,i.b,o,k,j,k+j,n+s,m+s,l,i.x+k,i.r)}, bm:function(a){return this.Lg(a,null)}, vr:function(){var s=this,r=s.y return H.ajQ(s.d,s.e,s.x+(s.ch+s.cx),s.r+1,s.c,r)}, say:function(a,b){return this.z=b}} H.a66.prototype={ smZ:function(a){var s,r,q,p,o,n,m=this if(a==m.e)return m.e=a if(a==null){m.d=null return}s=a.a r=s.id if(r===$){q=s.goA() p=s.cx if(p==null)p=14 p=new H.rO(q,p,s.dx,null) if(s.id===$){s.id=p r=p}else{q=H.e(H.bS("heightStyle")) r=q}}o=$.apG.i(0,r) if(o==null){o=H.apO(r,$.atf()) $.apG.n(0,r,o)}m.d=o n=s.gmY() if(m.c!==n){m.c=n m.b.font=n}}, Bd:function(a,b,c,d){var s,r,q,p this.e.toString if(d<=0)return c?a:a+1 s=b r=a do{q=C.f.cr(r+s,2) p=this.iC(a,q) if(pd?r:q s=q}}while(s-r>1) return r===a&&!c?r+1:r}, iC:function(a,b){return H.me(this.b,this.a.c,a,b,this.e.a.cy)}} H.bl.prototype={ j:function(a){return this.b}} H.qa.prototype={ j:function(a){return this.b}} H.dc.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof H.dc&&b.a===s.a&&b.b===s.b&&b.c===s.c&&b.d===s.d}, j:function(a){var s=this.bP(0) return s}} H.y8.prototype={ EM:function(){var s=this.a,r=s.style r.position="fixed" r.visibility="hidden" r.overflow="hidden" r.top="0" r.left="0" r.width="0" r.height="0" document.body.appendChild(s) $.hu.push(this.gdJ(this))}, p:function(a){J.c9(this.a)}} H.a3G.prototype={ a4S:function(){if(!this.d){this.d=!0 P.eV(new H.a3I(this))}}, ZI:function(){this.c.K(0,new H.a3H()) this.c=P.y(t.UY,t.R3)}, a7U:function(){var s,r,q,p,o,n=this,m=$.b4().gij() if(m.gO(m)){n.ZI() return}m=n.c s=n.b if(m.gl(m)>s){m=n.c m=m.gaZ(m) r=P.an(m,!0,H.u(m).h("l.E")) C.b.d5(r,new H.a3J()) n.c=P.y(t.UY,t.R3) for(q=0;qk)k=g o.b5(0,i) if(i.d===C.aR)m=!0}a0=a3.gjD() f=a0.gfg(a0) a0=p.d e=a0.length r=a3.gjD() d=r.gai(r) c=e*d b=s.x a=b==null?c:Math.min(e,b)*d return H.ajW(q,f,a,f*1.1662499904632568,e===1,d,a0,o.d,k,c,H.b([],t.G),a1.e,a1.f,q)}, nq:function(a,b,c){var s,r,q=a.c q.toString s=a.b r=this.b r.font=s.gmY() return H.me(r,q,b,c,s.y)}, Dh:function(a,b,c){return C.CF}, gNu:function(){return!0}} H.a_e.prototype={ b5:function(a1,a2){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c=this,b=a2.a,a=a2.b,a0=a2.c for(s=c.b,r=s.b,q=r.ch,p=q!=null,o=c.c,n=c.a,m=s.c,l=r.y,r=r.x,k=r==null,j=c.d;!c.r;){i=c.f m.toString if(H.me(n,m,i.a,a0,l)<=o)break i=c.e h=c.f.a g=p&&k||j.length+1===r c.r=g if(g&&p){i=c.x if(i==null)i=c.x=C.d.aO(n.measureText(q).width*100)/100 f=c.MQ(a0,o-i,c.f.a) i=H.me(n,m,c.f.a,f,l) h=c.x e=i+(h==null?c.x=C.d.aO(n.measureText(q).width*100)/100:h) d=H.akZ(e,o,s) i=c.f.a j.push(new H.mQ(C.c.V(m,i,f)+q,null,i,b,a,null,!1,1/0,1/0,1/0,e,e,d,1/0,j.length))}else if(i.a===h){f=c.MQ(a0,o,h) if(f===a0)break c.wY(new H.dc(f,f,f,C.cn))}else c.wY(i)}if(c.r)return s=a2.d if(s===C.bj||s===C.aR)c.wY(a2) c.e=a2}, wY:function(a){var s,r,q=this,p=q.d,o=p.length,n=q.BX(q.f.a,a.c),m=a.b,l=q.BX(q.f.a,m),k=q.b,j=H.akZ(n,q.c,k),i=k.c i.toString s=q.f.a i=C.c.V(i,s,m) r=a.d r=r===C.bj||r===C.aR p.push(H.ao2(i,a.a,m,r,j,o,s,n,l)) q.f=q.e=a if(p.length===k.b.x)q.r=!0}, BX:function(a,b){var s=this.b,r=s.c r.toString return H.me(this.a,r,a,b,s.b.y)}, MQ:function(a,b,c){var s,r,q=this.b.b.ch!=null?c:c+1,p=a do{s=C.f.cr(q+p,2) r=this.BX(c,s) if(rb?q:s p=s}}while(p-q>1) return q}} H.a_z.prototype={ b5:function(a,b){var s,r=this,q=b.d if(!(q===C.bj||q===C.aR))return s=H.me(r.a,r.b,r.e,b.b,r.c.y) if(s>r.d)r.d=s r.e=b.a}} H.a7a.prototype={ aD:function(a,b){var s,r,q,p,o,n,m=this.a.gdH().Q for(s=m.length,r=0;rr.gai(r)}else r.z=!1 if(r.y.b)switch(r.e){case C.c4:r.ch=(q-r.glx())/2 break case C.c3:r.ch=q-r.glx() break case C.ag:r.ch=r.f===C.p?q-r.glx():0 break case C.cF:r.ch=r.f===C.m?q-r.glx():0 break default:r.ch=0 break}}, gN7:function(){return this.b.ch!=null}, aD:function(a,b){var s,r,q,p,o,n,m,l=this,k=l.r if(k!=null){s=b.a r=b.b q=l.gay(l) p=l.gai(l) k.b=!0 a.ck(0,new P.x(s,r,s+q,r+p),k.a)}s=l.y.Q s.toString a.DF(l.b.gmY()) r=l.d r.b=!0 r=r.a q=a.d q.gcQ().kI(r,null) o=b.b+l.gfg(l) n=s.length for(r=b.a,m=0;mr||b>r)return H.b([],t.G) if(!d.goI()){H.rP(d) q=d.Q q.toString p=d.ch return $.rQ.uU(d.b).acb(s,q,p,b,a,d.f)}s=d.y.Q s.toString if(a>=C.b.gL(s).d)return H.b([],t.G) o=d.yd(a) n=d.yd(b) if(b===n.c)n=s[n.dx-1] m=H.b([],t.G) for(l=o.dx,q=n.dx,p=d.f;l<=q;++l){k=s[l] j=k.c i=a<=j?0:H.rP(d).nq(d,j,a) j=k.e h=b>=j?0:H.rP(d).nq(d,b,j) j=d.y g=j==null f=g?null:j.f if(f==null)f=0 e=k.dx*f f=k.cy j=g?null:j.f if(j==null)j=0 m.push(new P.f8(f+i,e,f+k.cx-h,e+j,p))}return m}, qT:function(a,b,c){return this.jf(a,b,c,C.bu)}, fa:function(a){var s,r,q,p,o,n,m,l,k,j,i,h,g=this,f=g.y.Q if(!g.goI())return H.rP(g).Dh(g,g.Q,a) s=a.b if(s<0)return new P.aV(0,C.l) r=g.y.f r.toString q=C.d.hM(s,r) if(q>=f.length)return new P.aV(g.c.length,C.aK) p=f[q] o=p.cy s=a.a if(s<=o)return new P.aV(p.c,C.l) if(s>=o+p.ch)return new P.aV(p.e,C.aK) n=s-o m=H.rP(g) l=p.c k=p.e j=l do{i=C.f.cr(j+k,2) h=m.nq(g,l,i) if(hn?j:i k=i}}while(k-j>1) if(j===k)return new P.aV(k,C.aK) if(n-m.nq(g,l,j)=q.c&&a=k.length){k=c7.a H.agg(k,!1,c2) n=n?C.m:o q=q?C.ag:r j=t.aE return new H.mM(k,new H.jZ(n,q,d0,d1,d2,s,f,c9.e,d,e,H.alk(a2,a0),c9.Q,i),"",j.a(c3),p,m,j.a(c2.fr),0)}if(typeof k[a4]!="string")return c8 c4=new P.c6("") j="" while(!0){if(!(a4"));s.q();){p=s.d.getBoundingClientRect() o=p.left o.toString n=p.top n.toString m=p.right m.toString l=p.bottom l.toString q.push(new P.f8(o,n,m,l,this.ch.f))}return q}, Bs:function(a,b){var s,r,q,p,o,n,m,l,k=this k.NT(a) s=k.x.a r=H.b([],t.f2) k.FF(s.childNodes,r) for(q=r.length-1,p=t.h;q>=0;--q){o=p.a(r[q].parentNode).getBoundingClientRect() n=b.a m=b.b l=o.left l.toString if(n>=l){l=o.right l.toString if(n=l){l=o.bottom l.toString l=m"),p=P.an(new H.bI(a,q),!0,q.h("av.E")) for(s=0;!0;){r=C.b.em(p) q=r.childNodes C.b.J(p,new H.bI(q,H.bv(q).h("bI"))) if(r===b)break if(r.nodeType===3)s+=r.textContent.length}return s}, AI:function(){var s,r=this if(r.ch.c==null){s=$.bD() s.jT(r.d.a) s.jT(r.f.a) s.jT(r.x.a)}r.ch=null}, acb:function(a,b,c,a0,a1,a2){var s,r,q,p,o,n,m,l,k,j,i,h=J.e7(a,0,a1),g=C.c.V(a,a1,a0),f=C.c.bw(a,a0),e=document,d=e.createElement("span") d.textContent=g s=this.x r=s.a $.bD().jT(r) r.appendChild(e.createTextNode(h)) r.appendChild(d) r.appendChild(e.createTextNode(f)) s.Ph(b.a,null) q=d.getClientRects() if(q.prototype==null)q.prototype=Object.create(null) p=H.b([],t.G) e=this.a.x if(e==null)o=1/0 else{s=this.gjD() o=e*s.gai(s)}for(e=q.length,n=null,m=0;m=o)break k=s.gnm(l) k.toString j=s.gnO(l) i=s.gqJ(l) i.toString p.push(new P.f8(k+c,j,i+c,s.ga7s(l),a2)) n=l}$.bD().jT(r) return p}, p:function(a){var s=this C.dZ.c4(s.c) C.dZ.c4(s.e) C.dZ.c4(s.r) J.c9(s.gjD().gHt())}, a7D:function(a,b){var s,r,q=a.c,p=this.cx,o=p.i(0,q) if(o==null){o=H.b([],t.Rl) p.n(0,q,o)}o.push(b) if(o.length>8)C.b.eH(o,0) s=this.cy s.push(q) if(s.length>2400){for(r=0;r<100;++r)p.u(0,s[r]) C.b.fu(s,0,100)}}, a7C:function(a,b){var s,r,q,p,o,n,m,l=a.c if(l==null)return null s=this.cx.i(0,l) if(s==null)return null r=s.length for(q=b.a,p=a.e,o=a.f,n=0;nthis.b)return C.my return C.mx}} H.Kp.prototype={ uS:function(a,b,c){var s=H.ahM(b,c) return s==null?this.b:this.pY(s)}, pY:function(a){var s,r,q,p,o=this if(a==null)return o.b s=o.c r=s.i(0,a) if(r!=null)return r q=o.XU(a) p=q===-1?o.b:o.a[q].c s.n(0,a,p) return p}, XU:function(a){var s,r,q=this.a,p=q.length for(s=0;s=0&&a.c>=0) else s=!0 if(s)return a.toString s=this.c s.toString a.e_(s)}, ik:function(){this.c.focus()}, qt:function(){var s,r=this.gcf().r r.toString s=this.c s.toString r=r.a r.appendChild(s) $.bD().z.appendChild(r) this.Q=!0}, ES:function(a){var s,r=this,q=r.c q.toString s=H.anW(q,r.gcf().x) if(!s.k(0,r.e)){r.e=s r.x.$1(s)}}, a2Y:function(a){var s if(t.JG.b(a))if(this.gcf().a.gE6()&&a.keyCode===13){a.preventDefault() s=this.y s.toString s.$1(this.gcf().b)}}, Cj:function(){var s,r=this,q=r.z,p=r.c p.toString s=t.J0.c q.push(W.bN(p,"mousedown",new H.Vd(),!1,s)) p=r.c p.toString q.push(W.bN(p,"mouseup",new H.Ve(),!1,s)) p=r.c p.toString q.push(W.bN(p,"mousemove",new H.Vf(),!1,s))}} H.Vc.prototype={ $1:function(a){this.a.c.focus()}, $S:6} H.Vd.prototype={ $1:function(a){a.preventDefault()}, $S:67} H.Ve.prototype={ $1:function(a){a.preventDefault()}, $S:67} H.Vf.prototype={ $1:function(a){a.preventDefault()}, $S:67} H.YV.prototype={ nf:function(a,b,c){var s,r,q=this q.wG(a,b,c) s=a.a r=q.c r.toString s.Ly(r) if(q.gcf().r!=null)q.qt() s=a.x r=q.c r.toString s.Dy(r)}, vc:function(){var s=this.c.style s.toString C.e.a_(s,C.e.R(s,"transform"),"translate(-9999px, -9999px)","") this.k2=!1}, p3:function(){var s,r,q,p=this if(p.gcf().r!=null)C.b.J(p.z,p.gcf().r.p4()) s=p.z r=p.c r.toString q=p.gom() s.push(W.bN(r,"input",q,!1,t.L.c)) r=p.c r.toString s.push(W.bN(r,"keydown",p.goN(),!1,t.rM.c)) s.push(W.bN(document,"selectionchange",q,!1,t.E2)) q=p.c q.toString q=J.awh(q) s.push(W.bN(q.a,q.b,new H.YY(p),!1,q.$ti.c)) p.XH() q=p.c q.toString q=J.Su(q) s.push(W.bN(q.a,q.b,new H.YZ(p),!1,q.$ti.c))}, Pj:function(a){var s=this s.r=a if(s.b&&s.k2)s.ik()}, k0:function(a){var s this.RO(0) s=this.k1 if(s!=null)s.aH(0) this.k1=null}, XH:function(){var s=this.c s.toString this.z.push(W.bN(s,"click",new H.YW(this),!1,t.J0.c))}, J3:function(){var s=this.k1 if(s!=null)s.aH(0) this.k1=P.ci(C.at,new H.YX(this))}, ik:function(){var s,r this.c.focus() s=this.r if(s!=null){r=this.c r.toString s.e_(r)}}} H.YY.prototype={ $1:function(a){this.a.J3()}, $S:6} H.YZ.prototype={ $1:function(a){this.a.a.we()}, $S:6} H.YW.prototype={ $1:function(a){var s,r=this.a if(r.k2){s=r.c.style s.toString C.e.a_(s,C.e.R(s,"transform"),"translate(-9999px, -9999px)","") r.k2=!1 r.J3()}}, $S:67} H.YX.prototype={ $0:function(){var s=this.a s.k2=!0 s.ik()}, $C:"$0", $R:0, $S:0} H.SG.prototype={ nf:function(a,b,c){var s,r,q=this q.wG(a,b,c) s=a.a r=q.c r.toString s.Ly(r) if(q.gcf().r!=null)q.qt() else{s=$.bD().z s.toString r=q.c r.toString s.appendChild(r)}s=a.x r=q.c r.toString s.Dy(r)}, p3:function(){var s,r,q,p=this if(p.gcf().r!=null)C.b.J(p.z,p.gcf().r.p4()) s=p.z r=p.c r.toString q=p.gom() s.push(W.bN(r,"input",q,!1,t.L.c)) r=p.c r.toString s.push(W.bN(r,"keydown",p.goN(),!1,t.rM.c)) s.push(W.bN(document,"selectionchange",q,!1,t.E2)) q=p.c q.toString q=J.Su(q) s.push(W.bN(q.a,q.b,new H.SH(p),!1,q.$ti.c))}, ik:function(){var s,r this.c.focus() s=this.r if(s!=null){r=this.c r.toString s.e_(r)}}} H.SH.prototype={ $1:function(a){var s,r $.bD().toString s=document s=s.hasFocus.apply(s,[]) s.toString r=this.a if(s)r.c.focus() else r.a.we()}, $S:6} H.WX.prototype={ nf:function(a,b,c){this.wG(a,b,c) if(this.gcf().r!=null)this.qt()}, p3:function(){var s,r,q,p,o,n=this if(n.gcf().r!=null)C.b.J(n.z,n.gcf().r.p4()) s=n.z r=n.c r.toString q=n.gom() p=t.L.c s.push(W.bN(r,"input",q,!1,p)) r=n.c r.toString o=t.rM.c s.push(W.bN(r,"keydown",n.goN(),!1,o)) r=n.c r.toString s.push(W.bN(r,"keyup",new H.WZ(n),!1,o)) o=n.c o.toString s.push(W.bN(o,"select",q,!1,p)) p=n.c p.toString p=J.Su(p) s.push(W.bN(p.a,p.b,new H.X_(n),!1,p.$ti.c)) n.Cj()}, a4_:function(){P.ci(C.G,new H.WY(this))}, ik:function(){var s,r,q=this q.c.focus() s=q.r if(s!=null){r=q.c r.toString s.e_(r)}s=q.e if(s!=null){r=q.c r.toString s.e_(r)}}} H.WZ.prototype={ $1:function(a){this.a.ES(a)}, $S:440} H.X_.prototype={ $1:function(a){this.a.a4_()}, $S:6} H.WY.prototype={ $0:function(){this.a.c.focus()}, $C:"$0", $R:0, $S:0} H.a6Y.prototype={ aaS:function(a,b){var s,r,q,p,o,n,m,l,k,j,i=this,h=C.aN.fV(a) switch(h.a){case"TextInput.setClient":s=i.a r=h.b q=J.ag(r) p=q.i(r,0) r=H.aok(q.i(r,1)) q=s.d if(q!=null&&q!==p&&s.e){s.e=!1 s.gi3().k0(0)}s.d=p s.f=r break case"TextInput.updateConfig":s=i.a s.f=H.aok(h.b) s.gi3().x8(s.gEQ()) break case"TextInput.setEditingState":s=H.anX(h.b) i.a.gi3().ri(s) break case"TextInput.show":s=i.a if(!s.e)s.a5t() break case"TextInput.setEditableSizeAndTransform":s=h.b r=J.ag(s) o=P.bk(r.i(s,"transform"),!0,t.d) q=r.i(s,"width") s=r.i(s,"height") r=new Float32Array(H.mb(o)) i.a.gi3().Pj(new H.VY(q,s,r)) break case"TextInput.setStyle":s=h.b r=J.ag(s) n=r.i(s,"textAlignIndex") m=r.i(s,"textDirectionIndex") l=r.i(s,"fontWeightIndex") k=l!=null?H.asb(l):"normal" s=new H.Wc(r.i(s,"fontSize"),k,r.i(s,"fontFamily"),C.t8[n],C.t7[m]) r=i.a.gi3() r.f=s if(r.b){r=r.c r.toString s.e_(r)}break case"TextInput.clearClient":s=i.a if(s.e){s.e=!1 s.gi3().k0(0)}break case"TextInput.hide":s=i.a if(s.e){s.e=!1 s.gi3().k0(0)}break case"TextInput.requestAutofill":break case"TextInput.finishAutofillContext":j=H.uc(h.b) i.a.we() if(j)i.Qb() i.a7T() break case"TextInput.setMarkedTextRect":break case"TextInput.setCaretRect":break default:$.bw().eU(b,null) return}$.bw().eU(b,C.ad.c8([!0]))}, Qb:function(){$.CP().K(0,new H.a6Z())}, a7T:function(){var s,r,q for(s=$.CP(),s=s.gaZ(s),s=s.gM(s);s.q();){r=s.gw(s) q=r.parentNode if(q!=null)q.removeChild(r)}$.CP().az(0)}} H.a6Z.prototype={ $2:function(a,b){t.Zb.a(J.CX(b.getElementsByClassName("submitBtn"))).click()}, $S:420} H.YS.prototype={ gug:function(a){var s=this.a return s===$?H.e(H.t("channel")):s}, sow:function(a){if(this.b===$)this.b=a else throw H.a(H.lj("_defaultEditingElement"))}, gi3:function(){var s=this.c if(s==null){s=this.b if(s===$)s=H.e(H.t("_defaultEditingElement"))}return s}, CQ:function(a){var s=this if(s.e&&a!=s.c){s.e=!1 s.gi3().k0(0)}s.c=a}, gEQ:function(){var s=this.f return s===$?H.e(H.t("_configuration")):s}, a5t:function(){var s,r,q=this q.e=!0 s=q.gi3() s.nf(q.gEQ(),new H.YT(q),new H.YU(q)) s.p3() r=s.e if(r!=null)s.ri(r) s.c.focus()}, we:function(){var s,r,q=this if(q.e){q.e=!1 q.gi3().k0(0) s=q.gug(q) r=q.d s.toString $.bw().ia("flutter/textinput",C.aN.i4(new H.hX("TextInputClient.onConnectionClosed",[r])),H.agH())}}} H.YU.prototype={ $1:function(a){var s=this.a,r=s.gug(s) s=s.d r.toString $.bw().ia("flutter/textinput",C.aN.i4(new H.hX("TextInputClient.updateEditingState",[s,a.P8()])),H.agH())}, $S:405} H.YT.prototype={ $1:function(a){var s=this.a,r=s.gug(s) s=s.d r.toString $.bw().ia("flutter/textinput",C.aN.i4(new H.hX("TextInputClient.performAction",[s,a])),H.agH())}, $S:397} H.Wc.prototype={ e_:function(a){var s=this,r=a.style,q=H.aip(s.d,s.e) r.textAlign=q q=s.b+" "+H.c(s.a)+"px "+H.c(H.oY(s.c)) r.font=q}} H.VY.prototype={ e_:function(a){var s=H.ir(this.c),r=a.style,q=H.c(this.a)+"px" r.width=q q=H.c(this.b)+"px" r.height=q C.e.a_(r,C.e.R(r,"transform"),s,"")}} H.zj.prototype={ j:function(a){return this.b}} H.ail.prototype={ $1:function(a){$.al6=!1 $.bw().ia("flutter/system",$.atT(),new H.aik())}, $S:139} H.aik.prototype={ $1:function(a){}, $S:15} H.bt.prototype={ bC:function(a){var s=a.a,r=this.a r[15]=s[15] r[14]=s[14] r[13]=s[13] r[12]=s[12] r[11]=s[11] r[10]=s[10] r[9]=s[9] r[8]=s[8] r[7]=s[7] r[6]=s[6] r[5]=s[5] r[4]=s[4] r[3]=s[3] r[2]=s[2] r[1]=s[1] r[0]=s[0]}, i:function(a,b){return this.a[b]}, n:function(a,b,c){this.a[b]=c}, CF:function(a,b,a0,a1){var s=this.a,r=s[0],q=s[4],p=s[8],o=s[12],n=s[1],m=s[5],l=s[9],k=s[13],j=s[2],i=s[6],h=s[10],g=s[14],f=s[3],e=s[7],d=s[11],c=s[15] s[12]=r*b+q*a0+p*a1+o s[13]=n*b+m*a0+l*a1+k s[14]=j*b+i*a0+h*a1+g s[15]=f*b+e*a0+d*a1+c}, af:function(a,b,c){return this.CF(a,b,c,0)}, is:function(a,b,c,d){var s=c==null?b:c,r=this.a r[15]=r[15] r[0]=r[0]*b r[1]=r[1]*b r[2]=r[2]*b r[3]=r[3]*b r[4]=r[4]*s r[5]=r[5]*s r[6]=r[6]*s r[7]=r[7]*s r[8]=r[8]*b r[9]=r[9]*b r[10]=r[10]*b r[11]=r[11]*b r[12]=r[12] r[13]=r[13] r[14]=r[14]}, bp:function(a,b){return this.is(a,b,null,null)}, d_:function(a,b,c){return this.is(a,b,c,null)}, a4:function(a,b){var s if(typeof b=="number"){s=new H.bt(new Float32Array(16)) s.bC(this) s.is(0,b,null,null) return s}if(b instanceof H.bt)return this.O1(b) throw H.a(P.bc(b))}, q6:function(a){var s=this.a return s[0]===1&&s[1]===0&&s[2]===0&&s[3]===0&&s[4]===0&&s[5]===1&&s[6]===0&&s[7]===0&&s[8]===0&&s[9]===0&&s[10]===1&&s[11]===0&&s[12]===0&&s[13]===0&&s[14]===0&&s[15]===1}, Ny:function(){var s=this.a return s[15]===1&&s[0]===1&&s[1]===0&&s[2]===0&&s[3]===0&&s[4]===0&&s[5]===1&&s[6]===0&&s[7]===0&&s[8]===0&&s[9]===0&&s[10]===1&&s[11]===0}, OZ:function(b1,b2,b3){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d=Math.sqrt(b2.gabN()),c=b2.a,b=c[0]/d,a=c[1]/d,a0=c[2]/d,a1=Math.cos(b3),a2=Math.sin(b3),a3=1-a1,a4=b*b*a3+a1,a5=a0*a2,a6=b*a*a3-a5,a7=a*a2,a8=b*a0*a3+a7,a9=a*b*a3+a5,b0=a*a*a3+a1 a5=b*a2 s=a*a0*a3-a5 r=a0*b*a3-a7 q=a0*a*a3+a5 p=a0*a0*a3+a1 a5=this.a a7=a5[0] o=a5[4] n=a5[8] m=a5[1] l=a5[5] k=a5[9] j=a5[2] i=a5[6] h=a5[10] g=a5[3] f=a5[7] e=a5[11] a5[0]=a7*a4+o*a9+n*r a5[1]=m*a4+l*a9+k*r a5[2]=j*a4+i*a9+h*r a5[3]=g*a4+f*a9+e*r a5[4]=a7*a6+o*b0+n*q a5[5]=m*a6+l*b0+k*q a5[6]=j*a6+i*b0+h*q a5[7]=g*a6+f*b0+e*q a5[8]=a7*a8+o*s+n*p a5[9]=m*a8+l*s+k*p a5[10]=j*a8+i*s+h*p a5[11]=g*a8+f*s+e*p}, m2:function(a,b,c){var s=this.a s[14]=c s[13]=b s[12]=a}, jZ:function(b5){var s,r,q,p,o=b5.a,n=o[0],m=o[1],l=o[2],k=o[3],j=o[4],i=o[5],h=o[6],g=o[7],f=o[8],e=o[9],d=o[10],c=o[11],b=o[12],a=o[13],a0=o[14],a1=o[15],a2=n*i-m*j,a3=n*h-l*j,a4=n*g-k*j,a5=m*h-l*i,a6=m*g-k*i,a7=l*g-k*h,a8=f*a-e*b,a9=f*a0-d*b,b0=f*a1-c*b,b1=e*a0-d*a,b2=e*a1-c*a,b3=d*a1-c*a0,b4=a2*b3-a3*b2+a4*b1+a5*b0-a6*a9+a7*a8 if(b4===0){this.bC(b5) return 0}s=1/b4 r=this.a r[0]=(i*b3-h*b2+g*b1)*s r[1]=(-m*b3+l*b2-k*b1)*s r[2]=(a*a7-a0*a6+a1*a5)*s r[3]=(-e*a7+d*a6-c*a5)*s q=-j r[4]=(q*b3+h*b0-g*a9)*s r[5]=(n*b3-l*b0+k*a9)*s p=-b r[6]=(p*a7+a0*a4-a1*a3)*s r[7]=(f*a7-d*a4+c*a3)*s r[8]=(j*b2-i*b0+g*a8)*s r[9]=(-n*b2+m*b0-k*a8)*s r[10]=(b*a6-a*a4+a1*a2)*s r[11]=(-f*a6+e*a4-c*a2)*s r[12]=(q*b1+i*a9-h*a8)*s r[13]=(n*b1-m*a9+l*a8)*s r[14]=(p*a5+a*a3-a0*a2)*s r[15]=(f*a5-e*a3+d*a2)*s return b4}, cz:function(b5,b6){var s=this.a,r=s[15],q=s[0],p=s[4],o=s[8],n=s[12],m=s[1],l=s[5],k=s[9],j=s[13],i=s[2],h=s[6],g=s[10],f=s[14],e=s[3],d=s[7],c=s[11],b=b6.a,a=b[15],a0=b[0],a1=b[4],a2=b[8],a3=b[12],a4=b[1],a5=b[5],a6=b[9],a7=b[13],a8=b[2],a9=b[6],b0=b[10],b1=b[14],b2=b[3],b3=b[7],b4=b[11] s[0]=q*a0+p*a4+o*a8+n*b2 s[4]=q*a1+p*a5+o*a9+n*b3 s[8]=q*a2+p*a6+o*b0+n*b4 s[12]=q*a3+p*a7+o*b1+n*a s[1]=m*a0+l*a4+k*a8+j*b2 s[5]=m*a1+l*a5+k*a9+j*b3 s[9]=m*a2+l*a6+k*b0+j*b4 s[13]=m*a3+l*a7+k*b1+j*a s[2]=i*a0+h*a4+g*a8+f*b2 s[6]=i*a1+h*a5+g*a9+f*b3 s[10]=i*a2+h*a6+g*b0+f*b4 s[14]=i*a3+h*a7+g*b1+f*a s[3]=e*a0+d*a4+c*a8+r*b2 s[7]=e*a1+d*a5+c*a9+r*b3 s[11]=e*a2+d*a6+c*b0+r*b4 s[15]=e*a3+d*a7+c*b1+r*a}, O1:function(a){var s=new H.bt(new Float32Array(16)) s.bC(this) s.cz(0,a) return s}, Pc:function(a){var s=a[0],r=a[1],q=this.a a[0]=q[0]*s+q[4]*r+q[12] a[1]=q[1]*s+q[5]*r+q[13]}, j:function(a){var s=this.bP(0) return s}} H.a7O.prototype={ i:function(a,b){return this.a[b]}, n:function(a,b,c){this.a[b]=c}, gl:function(a){var s=this.a,r=s[0],q=s[1] s=s[2] return Math.sqrt(r*r+q*q+s*s)}, gabN:function(){var s=this.a,r=s[0],q=s[1] s=s[2] return r*r+q*q+s*s}} H.KG.prototype={ X8:function(){$.p2().n(0,"_flutter_internal_update_experiment",this.gael()) $.hu.push(new H.a7S())}, aem:function(a,b){switch(a){case"useCanvasText":this.a=b!==!1 break case"useCanvasRichText":this.b=b!==!1 break}}} H.a7S.prototype={ $0:function(){$.p2().n(0,"_flutter_internal_update_experiment",null)}, $C:"$0", $R:0, $S:0} H.Fa.prototype={ Vs:function(a,b){var s=this,r=s.b,q=s.a r.d.n(0,q,s) r.e.n(0,q,P.aq3()) if($.md)s.c=H.ak8($.Cx) $.hu.push(new H.Wp())}, gu5:function(){var s,r=this.c if(r==null){if($.md)s=$.Cx else s=C.fv $.md=!0 r=this.c=H.ak8(s)}return r}, tP:function(){var s=0,r=P.af(t.H),q,p=this,o,n,m var $async$tP=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:m=p.c if(m instanceof H.ys){s=1 break}s=m==null?3:5 break case 3:if($.md)o=$.Cx else o=C.fv $.md=!0 n=o s=4 break case 5:n=m.glS() m=p.c s=6 return P.ak(m==null?null:m.hG(),$async$tP) case 6:case 4:m=new H.ys(n,P.aj(["flutter",!0],t.N,t.y)) m.WK(n) p.c=m case 1:return P.ad(q,r)}}) return P.ae($async$tP,r)}, tO:function(){var s=0,r=P.af(t.H),q,p=this,o,n,m var $async$tO=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:m=p.c if(m instanceof H.x0){s=1 break}s=m==null?3:5 break case 3:if($.md)o=$.Cx else o=C.fv $.md=!0 n=o s=4 break case 5:n=m.glS() m=p.c s=6 return P.ak(m==null?null:m.hG(),$async$tO) case 6:case 4:p.c=H.ak8(n) case 1:return P.ad(q,r)}}) return P.ae($async$tO,r)}, vI:function(){var s=0,r=P.af(t.H),q=this,p var $async$vI=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:p=q.c s=2 return P.ak(p==null?null:p.hG(),$async$vI) case 2:q.c=null $.md=q.d=!1 $.Cx=null return P.ad(null,r)}}) return P.ae($async$vI,r)}, q1:function(a){return this.aaJ(a)}, aaJ:function(a){var s=0,r=P.af(t.y),q,p=this,o,n,m var $async$q1=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)switch(s){case 0:n=new H.Ga().fV(a) m=n.b case 3:switch(n.a){case"routeUpdated":s=5 break case"routeInformationUpdated":s=6 break default:s=4 break}break case 5:s=!p.d?7:9 break case 7:s=10 return P.ak(p.tP(),$async$q1) case 10:p.gu5().DO(J.aS(m,"routeName")) s=8 break case 9:q=!1 s=1 break case 8:q=!0 s=1 break case 6:s=11 return P.ak(p.tO(),$async$q1) case 11:p.d=!0 o=J.ag(m) p.gu5().rk(o.i(m,"location"),o.i(m,"state")) q=!0 s=1 break case 4:q=!1 s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$q1,r)}, gqP:function(){var s=this.b.e.i(0,this.a) return s==null?P.aq3():s}, gij:function(){if(this.f==null)this.FP() var s=this.f s.toString return s}, FP:function(){var s,r,q,p=this,o=window.visualViewport,n=p.x if(o!=null){s=o.width s.toString r=s*(n==null?H.b0():n) n=o.height n.toString s=p.x q=n*(s==null?H.b0():s)}else{s=window.innerWidth s.toString r=s*(n==null?H.b0():n) n=window.innerHeight n.toString s=p.x q=n*(s==null?H.b0():s)}p.f=new P.Q(r,q)}, Lv:function(){var s,r,q=window.visualViewport,p=this.x if(q!=null){s=q.height s.toString r=s*(p==null?H.b0():p)}else{s=window.innerHeight s.toString r=s*(p==null?H.b0():p)}this.e=new H.KJ(0,0,0,this.f.b-r)}, abz:function(){var s,r,q=this,p=window.visualViewport,o=q.x if(p!=null){p=window.visualViewport.height p.toString s=p*(o==null?H.b0():o) p=window.visualViewport.width p.toString o=q.x r=p*(o==null?H.b0():o)}else{p=window.innerHeight p.toString s=p*(o==null?H.b0():o) p=window.innerWidth p.toString o=q.x r=p*(o==null?H.b0():o)}p=q.f if(p!=null){o=p.b if(o!==s&&p.a!==r){p=p.a if(!(o>p&&so&&r").a3(b).h("cm<1,2>"))}, B:function(a,b){if(!!a.fixed$length)H.e(P.F("add")) a.push(b)}, eH:function(a,b){if(!!a.fixed$length)H.e(P.F("removeAt")) if(b<0||b>=a.length)throw H.a(P.qG(b,null,null)) return a.splice(b,1)[0]}, lq:function(a,b,c){if(!!a.fixed$length)H.e(P.F("insert")) if(b<0||b>a.length)throw H.a(P.qG(b,null,null)) a.splice(b,0,c)}, q5:function(a,b,c){var s,r if(!!a.fixed$length)H.e(P.F("insertAll")) P.apg(b,0,a.length,"index") if(!t.Ee.b(c))c=J.axi(c) s=J.bQ(c) a.length=a.length+s r=b+s this.b3(a,r,a.length,a,b) this.cV(a,b,r,c)}, em:function(a){if(!!a.fixed$length)H.e(P.F("removeLast")) if(a.length===0)throw H.a(H.iq(a,-1)) return a.pop()}, u:function(a,b){var s if(!!a.fixed$length)H.e(P.F("remove")) for(s=0;s"))}, J:function(a,b){var s if(!!a.fixed$length)H.e(P.F("addAll")) if(Array.isArray(b)){this.Xu(a,b) return}for(s=J.as(b);s.q();)a.push(s.gw(s))}, Xu:function(a,b){var s,r=b.length if(r===0)return if(a===b)throw H.a(P.bp(a)) for(s=0;s").a3(c).h("Z<1,2>"))}, fp:function(a,b){return this.dn(a,b,t.z)}, bI:function(a,b){var s,r=P.b6(a.length,"",!1,t.N) for(s=0;s=0;--s){r=a[s] if(b.$1(r))return r if(q!==a.length)throw H.a(P.bp(a))}if(c!=null)return c.$0() throw H.a(H.bR())}, abJ:function(a,b){return this.ls(a,b,null)}, b0:function(a,b){return a[b]}, c2:function(a,b,c){var s=a.length if(b>s)throw H.a(P.bz(b,0,s,"start",null)) if(c==null)c=s else if(cs)throw H.a(P.bz(c,b,s,"end",null)) if(b===c)return H.b([],H.Y(a)) return H.b(a.slice(b,c),H.Y(a))}, fc:function(a,b){return this.c2(a,b,null)}, r3:function(a,b,c){P.dF(b,c,a.length) return H.eJ(a,b,c,H.Y(a).c)}, gI:function(a){if(a.length>0)return a[0] throw H.a(H.bR())}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(H.bR())}, gc5:function(a){var s=a.length if(s===1)return a[0] if(s===0)throw H.a(H.bR()) throw H.a(H.aoq())}, fu:function(a,b,c){if(!!a.fixed$length)H.e(P.F("removeRange")) P.dF(b,c,a.length) a.splice(b,c-b)}, b3:function(a,b,c,d,e){var s,r,q,p,o if(!!a.immutable$list)H.e(P.F("setRange")) P.dF(b,c,a.length) s=c-b if(s===0)return P.cV(e,"skipCount") if(t.j.b(d)){r=d q=e}else{r=J.up(d,e).e9(0,!1) q=0}p=J.ag(r) if(q+s>p.gl(r))throw H.a(H.aop()) if(q=0;--o)a[b+o]=p.i(r,q+o) else for(o=0;o=r)return-1 for(s=0;s"))}, gt:function(a){return H.di(a)}, gl:function(a){return a.length}, sl:function(a,b){if(!!a.fixed$length)H.e(P.F("set length")) if(b<0)throw H.a(P.bz(b,0,null,"newLength",null)) a.length=b}, i:function(a,b){if(!H.dz(b))throw H.a(H.iq(a,b)) if(b>=a.length||b<0)throw H.a(H.iq(a,b)) return a[b]}, n:function(a,b,c){if(!!a.immutable$list)H.e(P.F("indexed set")) if(!H.dz(b))throw H.a(H.iq(a,b)) if(b>=a.length||b<0)throw H.a(H.iq(a,b)) a[b]=c}, U:function(a,b){var s=P.an(a,!0,H.Y(a).c) this.J(s,b) return s}, abd:function(a,b){var s if(0>=a.length)return-1 for(s=0;s=p){r.d=null return!1}r.d=q[s] r.c=s+1 return!0}} J.lh.prototype={ bR:function(a,b){var s if(typeof b!="number")throw H.a(H.bZ(b)) if(ab)return 1 else if(a===b){if(a===0){s=this.gkj(b) if(this.gkj(a)===s)return 0 if(this.gkj(a))return-1 return 1}return 0}else if(isNaN(a)){if(isNaN(b))return 0 return 1}else return-1}, gkj:function(a){return a===0?1/a<0:a<0}, gwq:function(a){var s if(a>0)s=1 else s=a<0?-1:a return s}, cU:function(a){var s if(a>=-2147483648&&a<=2147483647)return a|0 if(isFinite(a)){s=a<0?Math.ceil(a):Math.floor(a) return s+0}throw H.a(P.F(""+a+".toInt()"))}, ey:function(a){var s,r if(a>=0){if(a<=2147483647){s=a|0 return a===s?s:s+1}}else if(a>=-2147483648)return a|0 r=Math.ceil(a) if(isFinite(r))return r throw H.a(P.F(""+a+".ceil()"))}, dC:function(a){var s,r if(a>=0){if(a<=2147483647)return a|0}else if(a>=-2147483648){s=a|0 return a===s?s:s-1}r=Math.floor(a) if(isFinite(r))return r throw H.a(P.F(""+a+".floor()"))}, aO:function(a){if(a>0){if(a!==1/0)return Math.round(a)}else if(a>-1/0)return 0-Math.round(0-a) throw H.a(P.F(""+a+".round()"))}, adZ:function(a){if(a<0)return-Math.round(-a) else return Math.round(a)}, a6:function(a,b,c){if(typeof b!="number")throw H.a(H.bZ(b)) if(typeof c!="number")throw H.a(H.bZ(c)) if(this.bR(b,c)>0)throw H.a(H.bZ(b)) if(this.bR(a,b)<0)return b if(this.bR(a,c)>0)return c return a}, ba:function(a,b){var s if(b>20)throw H.a(P.bz(b,0,20,"fractionDigits",null)) s=a.toFixed(b) if(a===0&&this.gkj(a))return"-"+s return s}, j9:function(a,b){var s,r,q,p if(b<2||b>36)throw H.a(P.bz(b,2,36,"radix",null)) s=a.toString(b) if(C.c.al(s,s.length-1)!==41)return s r=/^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(s) if(r==null)H.e(P.F("Unexpected toString result: "+s)) s=r[1] q=+r[3] p=r[2] if(p!=null){s+=p q-=p.length}return s+C.c.a4("0",q)}, j:function(a){if(a===0&&1/a<0)return"-0.0" else return""+a}, gt:function(a){var s,r,q,p,o=a|0 if(a===o)return o&536870911 s=Math.abs(a) r=Math.log(s)/0.6931471805599453|0 q=Math.pow(2,r) p=s<1?s/q:q/s return((p*9007199254740992|0)+(p*3542243181176521|0))*599197+r*1259&536870911}, U:function(a,b){if(typeof b!="number")throw H.a(H.bZ(b)) return a+b}, a5:function(a,b){if(typeof b!="number")throw H.a(H.bZ(b)) return a-b}, a4:function(a,b){if(typeof b!="number")throw H.a(H.bZ(b)) return a*b}, ea:function(a,b){var s=a%b if(s===0)return 0 if(s>0)return s if(b<0)return s-b else return s+b}, hM:function(a,b){if(typeof b!="number")throw H.a(H.bZ(b)) if((a|0)===a)if(b>=1||b<-1)return a/b|0 return this.JN(a,b)}, cr:function(a,b){return(a|0)===a?a/b|0:this.JN(a,b)}, JN:function(a,b){var s=a/b if(s>=-2147483648&&s<=2147483647)return s|0 if(s>0){if(s!==1/0)return Math.floor(s)}else if(s>-1/0)return Math.ceil(s) throw H.a(P.F("Result of truncating division is "+H.c(s)+": "+H.c(a)+" ~/ "+H.c(b)))}, QK:function(a,b){if(b<0)throw H.a(H.bZ(b)) return b>31?0:a<>>0}, a58:function(a,b){return b>31?0:a<>>0}, ew:function(a,b){var s if(a>0)s=this.Jo(a,b) else{s=b>31?31:b s=a>>s>>>0}return s}, a5f:function(a,b){if(b<0)throw H.a(H.bZ(b)) return this.Jo(a,b)}, Jo:function(a,b){return b>31?0:a>>>b}, r7:function(a,b){if(typeof b!="number")throw H.a(H.bZ(b)) return(a|b)>>>0}, gcM:function(a){return C.GS}, $ibi:1, $iO:1, $ibG:1} J.q4.prototype={ gwq:function(a){var s if(a>0)s=1 else s=a<0?-1:a return s}, gcM:function(a){return C.GQ}, $ip:1} J.wo.prototype={ gcM:function(a){return C.GN}} J.jK.prototype={ al:function(a,b){if(!H.dz(b))throw H.a(H.iq(a,b)) if(b<0)throw H.a(H.iq(a,b)) if(b>=a.length)H.e(H.iq(a,b)) return a.charCodeAt(b)}, W:function(a,b){if(b>=a.length)throw H.a(H.iq(a,b)) return a.charCodeAt(b)}, zT:function(a,b,c){var s=b.length if(c>s)throw H.a(P.bz(c,0,s,null,null)) return new H.PT(b,a,c)}, tY:function(a,b){return this.zT(a,b,0)}, kn:function(a,b,c){var s,r,q=null if(c<0||c>b.length)throw H.a(P.bz(c,0,b.length,q,q)) s=a.length if(c+s>b.length)return q for(r=0;rr)return!1 return b===this.bw(a,r-s)}, OP:function(a,b,c){P.apg(0,0,a.length,"startIndex") return H.aG7(a,b,c,0)}, rm:function(a,b){var s=H.b(a.split(b),t.s) return s}, ky:function(a,b,c,d){var s=P.dF(b,c,a.length) if(!H.dz(s))H.e(H.bZ(s)) return H.asD(a,b,s,d)}, dv:function(a,b,c){var s if(c<0||c>a.length)throw H.a(P.bz(c,0,a.length,null,null)) if(typeof b=="string"){s=c+b.length if(s>a.length)return!1 return b===a.substring(c,s)}return J.an_(b,a,c)!=null}, bv:function(a,b){return this.dv(a,b,0)}, V:function(a,b,c){var s=null if(!H.dz(b))H.e(H.bZ(b)) if(c==null)c=a.length if(b<0)throw H.a(P.qG(b,s,s)) if(b>c)throw H.a(P.qG(b,s,s)) if(c>a.length)throw H.a(P.qG(c,s,s)) return a.substring(b,c)}, bw:function(a,b){return this.V(a,b,null)}, P9:function(a){return a.toLowerCase()}, cY:function(a){var s,r,q,p=a.trim(),o=p.length if(o===0)return p if(this.W(p,0)===133){s=J.ajK(p,1) if(s===o)return""}else s=0 r=o-1 q=this.al(p,r)===133?J.ajL(p,r):o if(s===0&&q===o)return p return p.substring(s,q)}, aeg:function(a){var s,r if(typeof a.trimLeft!="undefined"){s=a.trimLeft() if(s.length===0)return s r=this.W(s,0)===133?J.ajK(s,1):0}else{r=J.ajK(a,0) s=a}if(r===0)return s if(r===s.length)return"" return s.substring(r)}, CH:function(a){var s,r,q if(typeof a.trimRight!="undefined"){s=a.trimRight() r=s.length if(r===0)return s q=r-1 if(this.al(s,q)===133)r=J.ajL(s,q)}else{r=J.ajL(a,a.length) s=a}if(r===s.length)return s if(r===0)return"" return s.substring(0,r)}, a4:function(a,b){var s,r if(0>=b)return"" if(b===1||a.length===0)return a if(b!==b>>>0)throw H.a(C.oq) for(s=a,r="";!0;){if((b&1)===1)r=s+r b=b>>>1 if(b===0)break s+=s}return r}, qp:function(a,b,c){var s=b-a.length if(s<=0)return a return this.a4(c,s)+a}, acZ:function(a,b){var s=b-a.length if(s<=0)return a return a+this.a4(" ",s)}, i9:function(a,b,c){var s,r,q,p if(c<0||c>a.length)throw H.a(P.bz(c,0,a.length,null,null)) if(typeof b=="string")return a.indexOf(b,c) if(b instanceof H.q6){s=b.Gx(a,c) return s==null?-1:s.b.index}for(r=a.length,q=J.cj(b),p=c;p<=r;++p)if(q.kn(b,a,p)!=null)return p return-1}, eF:function(a,b){return this.i9(a,b,0)}, vi:function(a,b,c){var s,r,q if(c==null)c=a.length else if(c<0||c>a.length)throw H.a(P.bz(c,0,a.length,null,null)) if(typeof b=="string"){s=b.length r=a.length if(c+s>r)c=r-s return a.lastIndexOf(b,c)}for(s=J.cj(b),q=c;q>=0;--q)if(s.kn(b,a,q)!=null)return q return-1}, vh:function(a,b){return this.vi(a,b,null)}, Ai:function(a,b,c){var s=a.length if(c>s)throw H.a(P.bz(c,0,s,null,null)) return H.aio(a,b,c)}, C:function(a,b){return this.Ai(a,b,0)}, bR:function(a,b){var s if(typeof b!="string")throw H.a(H.bZ(b)) if(a===b)s=0 else s=a>6}r=r+((r&67108863)<<3)&536870911 r^=r>>11 return r+((r&16383)<<15)&536870911}, gcM:function(a){return C.ms}, gl:function(a){return a.length}, i:function(a,b){if(!H.dz(b))throw H.a(H.iq(a,b)) if(b>=a.length||b<0)throw H.a(H.iq(a,b)) return a[b]}, $iaQ:1, $ibi:1, $iHu:1, $if:1} H.kp.prototype={ gM:function(a){var s=H.u(this) return new H.DI(J.as(this.gfL()),s.h("@<1>").a3(s.Q[1]).h("DI<1,2>"))}, gl:function(a){return J.bQ(this.gfL())}, gO:function(a){return J.fX(this.gfL())}, gaV:function(a){return J.mm(this.gfL())}, fb:function(a,b){var s=H.u(this) return H.kY(J.up(this.gfL(),b),s.c,s.Q[1])}, hF:function(a,b){var s=H.u(this) return H.kY(J.anb(this.gfL(),b),s.c,s.Q[1])}, b0:function(a,b){return H.u(this).Q[1].a(J.p4(this.gfL(),b))}, gI:function(a){return H.u(this).Q[1].a(J.CX(this.gfL()))}, gL:function(a){return H.u(this).Q[1].a(J.CY(this.gfL()))}, C:function(a,b){return J.ml(this.gfL(),b)}, j:function(a){return J.bB(this.gfL())}} H.DI.prototype={ q:function(){return this.a.q()}, gw:function(a){var s=this.a return this.$ti.Q[1].a(s.gw(s))}} H.mC.prototype={ gfL:function(){return this.a}} H.A5.prototype={$iM:1} H.zH.prototype={ i:function(a,b){return this.$ti.Q[1].a(J.aS(this.a,b))}, n:function(a,b,c){J.it(this.a,b,this.$ti.c.a(c))}, sl:function(a,b){J.ax0(this.a,b)}, B:function(a,b){J.kK(this.a,this.$ti.c.a(b))}, J:function(a,b){var s=this.$ti J.amb(this.a,H.kY(b,s.Q[1],s.c))}, d5:function(a,b){var s=b==null?null:new H.a9h(this,b) J.aiX(this.a,s)}, u:function(a,b){return J.p5(this.a,b)}, em:function(a){return this.$ti.Q[1].a(J.awT(this.a))}, r3:function(a,b,c){var s=this.$ti return H.kY(J.aww(this.a,b,c),s.c,s.Q[1])}, b3:function(a,b,c,d,e){var s=this.$ti J.ax7(this.a,b,c,H.kY(d,s.Q[1],s.c),e)}, cV:function(a,b,c,d){return this.b3(a,b,c,d,0)}, fu:function(a,b,c){J.an3(this.a,b,c)}, $iM:1, $iv:1} H.a9h.prototype={ $2:function(a,b){var s=this.a.$ti.Q[1] return this.b.$2(s.a(a),s.a(b))}, $C:"$2", $R:2, $S:function(){return this.a.$ti.h("p(1,1)")}} H.cm.prototype={ ue:function(a,b){return new H.cm(this.a,this.$ti.h("@<1>").a3(b).h("cm<1,2>"))}, gfL:function(){return this.a}} H.mD.prototype={ hY:function(a,b,c){var s=this.$ti return new H.mD(this.a,s.h("@<1>").a3(s.Q[1]).a3(b).a3(c).h("mD<1,2,3,4>"))}, am:function(a,b){return J.fW(this.a,b)}, i:function(a,b){return this.$ti.h("4?").a(J.aS(this.a,b))}, n:function(a,b,c){var s=this.$ti J.it(this.a,s.c.a(b),s.Q[1].a(c))}, bX:function(a,b,c){var s=this.$ti return s.Q[3].a(J.CZ(this.a,s.c.a(b),new H.U0(this,c)))}, u:function(a,b){return this.$ti.Q[3].a(J.p5(this.a,b))}, K:function(a,b){J.fi(this.a,new H.U_(this,b))}, gaj:function(a){var s=this.$ti return H.kY(J.St(this.a),s.c,s.Q[2])}, gaZ:function(a){var s=this.$ti return H.kY(J.amV(this.a),s.Q[1],s.Q[3])}, gl:function(a){return J.bQ(this.a)}, gO:function(a){return J.fX(this.a)}, gaV:function(a){return J.mm(this.a)}, gh_:function(a){var s=J.awd(this.a) return s.dn(s,new H.TZ(this),this.$ti.h("bm<3,4>"))}} H.U0.prototype={ $0:function(){return this.a.$ti.Q[1].a(this.b.$0())}, $S:function(){return this.a.$ti.h("2()")}} H.U_.prototype={ $2:function(a,b){var s=this.a.$ti this.b.$2(s.Q[2].a(a),s.Q[3].a(b))}, $S:function(){return this.a.$ti.h("~(1,2)")}} H.TZ.prototype={ $1:function(a){var s=this.a.$ti,r=s.Q[3] return new P.bm(s.Q[2].a(a.gdN(a)),r.a(a.gm(a)),s.h("@<3>").a3(r).h("bm<1,2>"))}, $S:function(){return this.a.$ti.h("bm<3,4>(bm<1,2>)")}} H.jO.prototype={ j:function(a){var s=this.a return s!=null?"LateInitializationError: "+s:"LateInitializationError"}} H.HX.prototype={ j:function(a){var s="ReachabilityError: "+this.a return s}} H.hD.prototype={ gl:function(a){return this.a.length}, i:function(a,b){return C.c.al(this.a,b)}} H.aid.prototype={ $0:function(){return P.dD(null,t.P)}, $S:95} H.xc.prototype={ j:function(a){return"Null is not a valid value for the parameter '"+this.a+"' of type '"+H.bO(this.$ti.c).j(0)+"'"}} H.M.prototype={} H.av.prototype={ gM:function(a){var s=this return new H.bj(s,s.gl(s),H.u(s).h("bj"))}, K:function(a,b){var s,r=this,q=r.gl(r) for(s=0;s").a3(c).h("Z<1,2>"))}, fp:function(a,b){return this.dn(a,b,t.z)}, vE:function(a,b){var s,r,q=this,p=q.gl(q) if(p===0)throw H.a(H.bR()) s=q.b0(0,0) for(r=1;rs)throw H.a(P.bz(r,0,s,"start",null))}}, gZD:function(){var s=J.bQ(this.a),r=this.c if(r==null||r>s)return s return r}, ga5v:function(){var s=J.bQ(this.a),r=this.b if(r>s)return s return r}, gl:function(a){var s,r=J.bQ(this.a),q=this.b if(q>=r)return 0 s=this.c if(s==null||s>=r)return r-q return s-q}, b0:function(a,b){var s=this,r=s.ga5v()+b if(b<0||r>=s.gZD())throw H.a(P.bY(b,s,"index",null,null)) return J.p4(s.a,r)}, fb:function(a,b){var s,r,q=this P.cV(b,"count") s=q.b+b r=q.c if(r!=null&&s>=r)return new H.mO(q.$ti.h("mO<1>")) return H.eJ(q.a,s,r,q.$ti.c)}, hF:function(a,b){var s,r,q,p=this P.cV(b,"count") s=p.c r=p.b q=r+b if(s==null)return H.eJ(p.a,r,q,p.$ti.c) else{if(s=o){r.d=null return!1}r.d=p.b0(q,s);++r.c return!0}} H.ft.prototype={ gM:function(a){var s=H.u(this) return new H.qh(J.as(this.a),this.b,s.h("@<1>").a3(s.Q[1]).h("qh<1,2>"))}, gl:function(a){return J.bQ(this.a)}, gO:function(a){return J.fX(this.a)}, gI:function(a){return this.b.$1(J.CX(this.a))}, gL:function(a){return this.b.$1(J.CY(this.a))}, b0:function(a,b){return this.b.$1(J.p4(this.a,b))}} H.mN.prototype={$iM:1} H.qh.prototype={ q:function(){var s=this,r=s.b if(r.q()){s.a=s.c.$1(r.gw(r)) return!0}s.a=null return!1}, gw:function(a){return this.a}} H.Z.prototype={ gl:function(a){return J.bQ(this.a)}, b0:function(a,b){return this.b.$1(J.p4(this.a,b))}} H.aO.prototype={ gM:function(a){return new H.hn(J.as(this.a),this.b,this.$ti.h("hn<1>"))}, dn:function(a,b,c){return new H.ft(this,b,this.$ti.h("@<1>").a3(c).h("ft<1,2>"))}, fp:function(a,b){return this.dn(a,b,t.z)}} H.hn.prototype={ q:function(){var s,r for(s=this.a,r=this.b;s.q();)if(r.$1(s.gw(s)))return!0 return!1}, gw:function(a){var s=this.a return s.gw(s)}} H.fn.prototype={ gM:function(a){var s=this.$ti return new H.iE(J.as(this.a),this.b,C.cd,s.h("@<1>").a3(s.Q[1]).h("iE<1,2>"))}} H.iE.prototype={ gw:function(a){return this.d}, q:function(){var s,r,q=this,p=q.c if(p==null)return!1 for(s=q.a,r=q.b;!p.q();){q.d=null if(s.q()){q.c=null p=J.as(r.$1(s.gw(s))) q.c=p}else return!1}p=q.c q.d=p.gw(p) return!0}} H.oh.prototype={ gM:function(a){return new H.K0(J.as(this.a),this.b,H.u(this).h("K0<1>"))}} H.vG.prototype={ gl:function(a){var s=J.bQ(this.a),r=this.b if(s>r)return r return s}, $iM:1} H.K0.prototype={ q:function(){if(--this.b>=0)return this.a.q() this.b=-1 return!1}, gw:function(a){var s if(this.b<0)return null s=this.a return s.gw(s)}} H.kb.prototype={ fb:function(a,b){P.cV(b,"count") return new H.kb(this.a,this.b+b,H.u(this).h("kb<1>"))}, gM:function(a){return new H.Jn(J.as(this.a),this.b,H.u(this).h("Jn<1>"))}} H.pK.prototype={ gl:function(a){var s=J.bQ(this.a)-this.b if(s>=0)return s return 0}, fb:function(a,b){P.cV(b,"count") return new H.pK(this.a,this.b+b,this.$ti)}, $iM:1} H.Jn.prototype={ q:function(){var s,r for(s=this.a,r=0;r"))}} H.Jo.prototype={ q:function(){var s,r,q=this if(!q.c){q.c=!0 for(s=q.a,r=q.b;s.q();)if(!r.$1(s.gw(s)))return!0}return q.a.q()}, gw:function(a){var s=this.a return s.gw(s)}} H.mO.prototype={ gM:function(a){return C.cd}, K:function(a,b){}, gO:function(a){return!0}, gl:function(a){return 0}, gI:function(a){throw H.a(H.bR())}, gL:function(a){throw H.a(H.bR())}, b0:function(a,b){throw H.a(P.bz(b,0,0,"index",null))}, C:function(a,b){return!1}, dn:function(a,b,c){return new H.mO(c.h("mO<0>"))}, fp:function(a,b){return this.dn(a,b,t.z)}, fb:function(a,b){P.cV(b,"count") return this}, hF:function(a,b){P.cV(b,"count") return this}, e9:function(a,b){var s=this.$ti.c return b?J.wm(0,s):J.G8(0,s)}, f7:function(a){return this.e9(a,!0)}, h7:function(a){return P.jP(this.$ti.c)}} H.F8.prototype={ q:function(){return!1}, gw:function(a){throw H.a(H.bR())}} H.n0.prototype={ gM:function(a){return new H.FI(J.as(this.a),this.b,H.u(this).h("FI<1>"))}, gl:function(a){var s=this.b return J.bQ(this.a)+s.gl(s)}, gO:function(a){var s if(J.fX(this.a)){s=this.b s=!s.gM(s).q()}else s=!1 return s}, gaV:function(a){var s if(!J.mm(this.a)){s=this.b s=!s.gO(s)}else s=!0 return s}, C:function(a,b){return J.ml(this.a,b)||this.b.C(0,b)}, gI:function(a){var s,r=J.as(this.a) if(r.q())return r.gw(r) s=this.b return s.gI(s)}, gL:function(a){var s,r=this.b,q=r.$ti,p=new H.iE(J.as(r.a),r.b,C.cd,q.h("@<1>").a3(q.Q[1]).h("iE<1,2>")) if(p.q()){s=p.d for(;p.q();)s=p.d return s}return J.CY(this.a)}} H.FI.prototype={ q:function(){var s,r,q=this if(q.a.q())return!0 s=q.b if(s!=null){r=s.$ti r=new H.iE(J.as(s.a),s.b,C.cd,r.h("@<1>").a3(r.Q[1]).h("iE<1,2>")) q.a=r q.b=null return r.q()}return!1}, gw:function(a){var s=this.a return s.gw(s)}} H.fP.prototype={ gM:function(a){return new H.t1(J.as(this.a),this.$ti.h("t1<1>"))}} H.t1.prototype={ q:function(){var s,r for(s=this.a,r=this.$ti.c;s.q();)if(r.b(s.gw(s)))return!0 return!1}, gw:function(a){var s=this.a return this.$ti.c.a(s.gw(s))}} H.vR.prototype={ sl:function(a,b){throw H.a(P.F("Cannot change the length of a fixed-length list"))}, B:function(a,b){throw H.a(P.F("Cannot add to a fixed-length list"))}, J:function(a,b){throw H.a(P.F("Cannot add to a fixed-length list"))}, u:function(a,b){throw H.a(P.F("Cannot remove from a fixed-length list"))}, az:function(a){throw H.a(P.F("Cannot clear a fixed-length list"))}, em:function(a){throw H.a(P.F("Cannot remove from a fixed-length list"))}, fu:function(a,b,c){throw H.a(P.F("Cannot remove from a fixed-length list"))}} H.Kt.prototype={ n:function(a,b,c){throw H.a(P.F("Cannot modify an unmodifiable list"))}, sl:function(a,b){throw H.a(P.F("Cannot change the length of an unmodifiable list"))}, B:function(a,b){throw H.a(P.F("Cannot add to an unmodifiable list"))}, J:function(a,b){throw H.a(P.F("Cannot add to an unmodifiable list"))}, u:function(a,b){throw H.a(P.F("Cannot remove from an unmodifiable list"))}, d5:function(a,b){throw H.a(P.F("Cannot modify an unmodifiable list"))}, az:function(a){throw H.a(P.F("Cannot clear an unmodifiable list"))}, em:function(a){throw H.a(P.F("Cannot remove from an unmodifiable list"))}, b3:function(a,b,c,d,e){throw H.a(P.F("Cannot modify an unmodifiable list"))}, cV:function(a,b,c,d){return this.b3(a,b,c,d,0)}, fu:function(a,b,c){throw H.a(P.F("Cannot remove from an unmodifiable list"))}} H.rY.prototype={} H.bI.prototype={ gl:function(a){return J.bQ(this.a)}, b0:function(a,b){var s=this.a,r=J.ag(s) return r.b0(s,r.gl(s)-1-b)}} H.of.prototype={ gt:function(a){var s=this._hashCode if(s!=null)return s s=664597*J.a3(this.a)&536870911 this._hashCode=s return s}, j:function(a){return'Symbol("'+H.c(this.a)+'")'}, k:function(a,b){if(b==null)return!1 return b instanceof H.of&&this.a==b.a}, $irE:1} H.Cc.prototype={} H.vk.prototype={} H.pv.prototype={ hY:function(a,b,c){var s=H.u(this) return P.ajT(this,s.c,s.Q[1],b,c)}, gO:function(a){return this.gl(this)===0}, gaV:function(a){return this.gl(this)!==0}, j:function(a){return P.Gw(this)}, n:function(a,b,c){H.ajd() H.j(u.V)}, bX:function(a,b,c){H.ajd() H.j(u.V)}, u:function(a,b){H.ajd() H.j(u.V)}, gh_:function(a){return this.a9E(a,H.u(this).h("bm<1,2>"))}, a9E:function(a,b){var s=this return P.d9(function(){var r=a var q=0,p=1,o,n,m,l,k return function $async$gh_(c,d){if(c===1){o=d q=p}while(true)switch(q){case 0:n=s.gaj(s),n=n.gM(n),m=H.u(s),m=m.h("@<1>").a3(m.Q[1]).h("bm<1,2>") case 2:if(!n.q()){q=3 break}l=n.gw(n) k=s.i(0,l) k.toString q=4 return new P.bm(l,k,m) case 4:q=2 break case 3:return P.d5() case 1:return P.d6(o)}}},b)}, ic:function(a,b,c,d){var s=P.y(c,d) this.K(0,new H.UK(this,b,s)) return s}, fp:function(a,b){return this.ic(a,b,t.z,t.z)}, $iW:1} H.UK.prototype={ $2:function(a,b){var s=this.b.$2(a,b) this.c.n(0,s.gdN(s),s.gm(s))}, $S:function(){return H.u(this.a).h("~(1,2)")}} H.bs.prototype={ gl:function(a){return this.a}, am:function(a,b){if(typeof b!="string")return!1 if("__proto__"===b)return!1 return this.b.hasOwnProperty(b)}, i:function(a,b){if(!this.am(0,b))return null return this.y_(b)}, y_:function(a){return this.b[a]}, K:function(a,b){var s,r,q,p=this.c for(s=p.length,r=0;r"))}, gaZ:function(a){var s=H.u(this) return H.jT(this.c,new H.UL(this),s.c,s.Q[1])}} H.UL.prototype={ $1:function(a){return this.a.y_(a)}, $S:function(){return H.u(this.a).h("2(1)")}} H.zP.prototype={ gM:function(a){var s=this.a.c return new J.dA(s,s.length,H.Y(s).h("dA<1>"))}, gl:function(a){return this.a.c.length}} H.cS.prototype={ mm:function(){var s,r=this,q=r.$map if(q==null){s=r.$ti q=new H.cU(s.h("@<1>").a3(s.Q[1]).h("cU<1,2>")) H.asa(r.a,q) r.$map=q}return q}, am:function(a,b){return this.mm().am(0,b)}, i:function(a,b){return this.mm().i(0,b)}, K:function(a,b){this.mm().K(0,b)}, gaj:function(a){var s=this.mm() return s.gaj(s)}, gaZ:function(a){var s=this.mm() return s.gaZ(s)}, gl:function(a){var s=this.mm() return s.gl(s)}} H.G5.prototype={ j:function(a){var s="<"+C.b.bI([H.bO(this.$ti.c)],", ")+">" return H.c(this.a)+" with "+s}} H.wh.prototype={ $2:function(a,b){return this.a.$1$2(a,b,this.$ti.Q[0])}, $4:function(a,b,c,d){return this.a.$1$4(a,b,c,d,this.$ti.Q[0])}, $S:function(){return H.aFE(H.jm(this.a),this.$ti)}} H.ZB.prototype={ gNU:function(){var s=this.a return s}, gOl:function(){var s,r,q,p,o=this if(o.c===1)return C.bk s=o.d r=s.length-o.e.length-o.f if(r===0)return C.bk q=[] for(p=0;p>>0}, j:function(a){var s=this.c if(s==null)s=this.a return"Closure '"+H.c(this.d)+"' of "+("Instance of '"+H.c(H.a1B(s))+"'")}} H.IN.prototype={ j:function(a){return"RuntimeError: "+this.a}} H.adB.prototype={} H.cU.prototype={ gl:function(a){return this.a}, gO:function(a){return this.a===0}, gaV:function(a){return!this.gO(this)}, gaj:function(a){return new H.wA(this,H.u(this).h("wA<1>"))}, gaZ:function(a){var s=this,r=H.u(s) return H.jT(s.gaj(s),new H.ZI(s),r.c,r.Q[1])}, am:function(a,b){var s,r,q=this if(typeof b=="string"){s=q.b if(s==null)return!1 return q.FT(s,b)}else if(typeof b=="number"&&(b&0x3ffffff)===b){r=q.c if(r==null)return!1 return q.FT(r,b)}else return q.Nn(b)}, Nn:function(a){var s=this,r=s.d if(r==null)return!1 return s.nh(s.t5(r,s.ng(a)),a)>=0}, a8j:function(a,b){return this.gaj(this).hX(0,new H.ZH(this,b))}, J:function(a,b){b.K(0,new H.ZG(this))}, i:function(a,b){var s,r,q,p,o=this,n=null if(typeof b=="string"){s=o.b if(s==null)return n r=o.oG(s,b) q=r==null?n:r.b return q}else if(typeof b=="number"&&(b&0x3ffffff)===b){p=o.c if(p==null)return n r=o.oG(p,b) q=r==null?n:r.b return q}else return o.No(b)}, No:function(a){var s,r,q=this,p=q.d if(p==null)return null s=q.t5(p,q.ng(a)) r=q.nh(s,a) if(r<0)return null return s[r].b}, n:function(a,b,c){var s,r,q=this if(typeof b=="string"){s=q.b q.EV(s==null?q.b=q.yR():s,b,c)}else if(typeof b=="number"&&(b&0x3ffffff)===b){r=q.c q.EV(r==null?q.c=q.yR():r,b,c)}else q.Nq(b,c)}, Nq:function(a,b){var s,r,q,p=this,o=p.d if(o==null)o=p.d=p.yR() s=p.ng(a) r=p.t5(o,s) if(r==null)p.za(o,s,[p.yS(a,b)]) else{q=p.nh(r,a) if(q>=0)r[q].b=b else r.push(p.yS(a,b))}}, bX:function(a,b,c){var s if(this.am(0,b))return this.i(0,b) s=c.$0() this.n(0,b,s) return s}, u:function(a,b){var s=this if(typeof b=="string")return s.IJ(s.b,b) else if(typeof b=="number"&&(b&0x3ffffff)===b)return s.IJ(s.c,b) else return s.Np(b)}, Np:function(a){var s,r,q,p,o=this,n=o.d if(n==null)return null s=o.ng(a) r=o.t5(n,s) q=o.nh(r,a) if(q<0)return null p=r.splice(q,1)[0] o.K2(p) if(r.length===0)o.xK(n,s) return p.b}, az:function(a){var s=this if(s.a>0){s.b=s.c=s.d=s.e=s.f=null s.a=0 s.yQ()}}, K:function(a,b){var s=this,r=s.e,q=s.r for(;r!=null;){b.$2(r.a,r.b) if(q!==s.r)throw H.a(P.bp(s)) r=r.c}}, EV:function(a,b,c){var s=this.oG(a,b) if(s==null)this.za(a,b,this.yS(b,c)) else s.b=c}, IJ:function(a,b){var s if(a==null)return null s=this.oG(a,b) if(s==null)return null this.K2(s) this.xK(a,b) return s.b}, yQ:function(){this.r=this.r+1&67108863}, yS:function(a,b){var s,r=this,q=new H.a_g(a,b) if(r.e==null)r.e=r.f=q else{s=r.f s.toString q.d=s r.f=s.c=q}++r.a r.yQ() return q}, K2:function(a){var s=this,r=a.d,q=a.c if(r==null)s.e=q else r.c=q if(q==null)s.f=r else q.d=r;--s.a s.yQ()}, ng:function(a){return J.a3(a)&0x3ffffff}, nh:function(a,b){var s,r if(a==null)return-1 s=a.length for(r=0;r")) r.c=s.e return r}, C:function(a,b){return this.a.am(0,b)}, K:function(a,b){var s=this.a,r=s.e,q=s.r for(;r!=null;){b.$1(r.a) if(q!==s.r)throw H.a(P.bp(s)) r=r.c}}} H.Go.prototype={ gw:function(a){return this.d}, q:function(){var s,r=this,q=r.a if(r.b!==q.r)throw H.a(P.bp(q)) s=r.c if(s==null){r.d=null return!1}else{r.d=s.a r.c=s.c return!0}}} H.ahQ.prototype={ $1:function(a){return this.a(a)}, $S:41} H.ahR.prototype={ $2:function(a,b){return this.a(a,b)}, $S:337} H.ahS.prototype={ $1:function(a){return this.a(a)}, $S:327} H.q6.prototype={ j:function(a){return"RegExp/"+this.a+"/"+this.b.flags}, ga33:function(){var s=this,r=s.c if(r!=null)return r r=s.b return s.c=H.ajM(s.a,r.multiline,!r.ignoreCase,r.unicode,r.dotAll,!0)}, ga32:function(){var s=this,r=s.d if(r!=null)return r r=s.b return s.d=H.ajM(s.a+"|()",r.multiline,!r.ignoreCase,r.unicode,r.dotAll,!0)}, uV:function(a){var s if(typeof a!="string")H.e(H.bZ(a)) s=this.b.exec(a) if(s==null)return null return new H.tK(s)}, R4:function(a){var s=this.uV(a) if(s!=null)return s.b[0] return null}, zT:function(a,b,c){var s=b.length if(c>s)throw H.a(P.bz(c,0,s,null,null)) return new H.KT(this,b,c)}, tY:function(a,b){return this.zT(a,b,0)}, Gx:function(a,b){var s,r=this.ga33() r.lastIndex=b s=r.exec(a) if(s==null)return null return new H.tK(s)}, ZJ:function(a,b){var s,r=this.ga32() r.lastIndex=b s=r.exec(a) if(s==null)return null if(s.pop()!=null)return null return new H.tK(s)}, kn:function(a,b,c){if(c<0||c>b.length)throw H.a(P.bz(c,0,b.length,null,null)) return this.ZJ(b,c)}, $iHu:1, $iapi:1} H.tK.prototype={ gbb:function(a){return this.b.index}, gaX:function(a){var s=this.b return s.index+s[0].length}, i:function(a,b){return this.b[b]}, $ihV:1, $ia24:1} H.KT.prototype={ gM:function(a){return new H.KU(this.a,this.b,this.c)}} H.KU.prototype={ gw:function(a){return this.d}, q:function(){var s,r,q,p,o,n=this,m=n.b if(m==null)return!1 s=n.c r=m.length if(s<=r){q=n.a p=q.Gx(m,s) if(p!=null){n.d=p o=p.gaX(p) if(p.b.index===o){if(q.b.unicode){s=n.c q=s+1 if(q=55296&&s<=56319){s=C.c.al(m,q) s=s>=56320&&s<=57343}else s=!1}else s=!1}else s=!1 o=(s?o+1:o)+1}n.c=o return!0}}n.b=n.d=null return!1}} H.ke.prototype={ gaX:function(a){return this.a+this.c.length}, i:function(a,b){if(b!==0)H.e(P.qG(b,null,null)) return this.c}, $ihV:1, gbb:function(a){return this.a}} H.PT.prototype={ gM:function(a){return new H.aeB(this.a,this.b,this.c)}, gI:function(a){var s=this.b,r=this.a.indexOf(s,this.c) if(r>=0)return new H.ke(r,s) throw H.a(H.bR())}} H.aeB.prototype={ q:function(){var s,r,q=this,p=q.c,o=q.b,n=o.length,m=q.a,l=m.length if(p+n>l){q.d=null return!1}s=m.indexOf(o,p) if(s<0){q.c=l+1 q.d=null return!1}r=s+n q.d=new H.ke(s,o) q.c=r===q.c?r+1:r return!0}, gw:function(a){var s=this.d s.toString return s}} H.nx.prototype={ gcM:function(a){return C.G2}, L8:function(a,b,c){throw H.a(P.F("Int64List not supported by dart2js."))}, $inx:1, $ikW:1} H.dg.prototype={ a2z:function(a,b,c,d){var s=P.bz(b,0,c,d,null) throw H.a(s)}, Fs:function(a,b,c,d){if(b>>>0!==b||b>c)this.a2z(a,b,c,d)}, $idg:1, $icC:1} H.x2.prototype={ gcM:function(a){return C.G3}, D9:function(a,b,c){throw H.a(P.F("Int64 accessor not supported by dart2js."))}, DK:function(a,b,c,d){throw H.a(P.F("Int64 accessor not supported by dart2js."))}, $ibX:1} H.qm.prototype={ gl:function(a){return a.length}, Jh:function(a,b,c,d,e){var s,r,q=a.length this.Fs(a,b,q,"start") this.Fs(a,c,q,"end") if(b>c)throw H.a(P.bz(b,0,c,null,null)) s=c-b if(e<0)throw H.a(P.bc(e)) r=d.length if(r-e0){s=Date.now()-r.c if(s>(p+1)*o)p=C.f.hM(s,o)}q.c=p r.d.$1(q)}, $C:"$0", $R:0, $S:1} P.L8.prototype={ ci:function(a,b){var s,r=this if(!r.b)r.a.fE(b) else{s=r.a if(r.$ti.h("ax<1>").b(b))s.Fp(b) else s.mf(b)}}, ez:function(a){return this.ci(a,null)}, le:function(a,b){var s if(b==null)b=P.pe(a) s=this.a if(this.b)s.es(a,b) else s.rD(a,b)}, gMW:function(){return this.a}} P.agj.prototype={ $1:function(a){return this.a.$2(0,a)}, $S:28} P.agk.prototype={ $2:function(a,b){this.a.$2(1,new H.vQ(a,b))}, $C:"$2", $R:2, $S:324} P.ahm.prototype={ $2:function(a,b){this.a(a,b)}, $C:"$2", $R:2, $S:323} P.agh.prototype={ $0:function(){var s=this.a if(s.giJ(s).gNB()){s.b=!0 return}this.b.$2(0,null)}, $C:"$0", $R:0, $S:0} P.agi.prototype={ $1:function(a){var s=this.a.c!=null?2:0 this.b.$2(s,null)}, $S:5} P.La.prototype={ giJ:function(a){var s=this.a return s===$?H.e(H.t("controller")):s}, aT:function(a){return this.giJ(this).aT(0)}, Xb:function(a,b){var s=new P.a8E(a) this.a=P.aBc(new P.a8G(this,a),new P.a8H(s),new P.a8I(this,s),!1,b)}} P.a8E.prototype={ $0:function(){P.eV(new P.a8F(this.a))}, $S:1} P.a8F.prototype={ $0:function(){this.a.$2(0,null)}, $C:"$0", $R:0, $S:0} P.a8H.prototype={ $0:function(){this.a.$0()}, $S:0} P.a8I.prototype={ $0:function(){var s=this.a if(s.b){s.b=!1 this.b.$0()}}, $S:0} P.a8G.prototype={ $0:function(){var s=this.a,r=s.giJ(s) if(!r.gNv(r)){s.c=new P.a1($.R,t.LR) if(s.b){s.b=!1 P.eV(new P.a8D(this.b))}return s.c}}, $C:"$0", $R:0, $S:322} P.a8D.prototype={ $0:function(){this.a.$2(2,null)}, $C:"$0", $R:0, $S:0} P.m_.prototype={ j:function(a){return"IterationMarker("+this.b+", "+H.c(this.a)+")"}, gb9:function(a){return this.b}} P.d8.prototype={ gw:function(a){var s=this.c if(s==null)return this.b return s.gw(s)}, q:function(){var s,r,q,p,o,n=this for(;!0;){s=n.c if(s!=null)if(s.q())return!0 else n.c=null r=function(a,b,c){var m,l=b while(true)try{return a(l,m)}catch(k){m=k l=c}}(n.a,0,1) if(r instanceof P.m_){q=r.b if(q===2){p=n.d if(p==null||p.length===0){n.b=null return!1}n.a=p.pop() continue}else{s=r.a if(q===3)throw s else{o=J.as(s) if(o instanceof P.d8){s=n.d if(s==null)s=n.d=[] s.push(n.a) n.a=o.a continue}else{n.c=o continue}}}}else{n.b=r return!0}}return!1}} P.BH.prototype={ gM:function(a){return new P.d8(this.a(),this.$ti.h("d8<1>"))}} P.mu.prototype={ j:function(a){return H.c(this.a)}, $ibC:1, go8:function(){return this.b}} P.ko.prototype={ giU:function(){return!0}} P.ox.prototype={ jy:function(){}, jz:function(){}} P.lU.prototype={ sO9:function(a,b){throw H.a(P.F(u.t))}, sOb:function(a,b){throw H.a(P.F(u.t))}, gwx:function(a){return new P.ko(this,H.u(this).h("ko<1>"))}, gNv:function(a){return(this.c&4)!==0}, gNB:function(){return!1}, gmv:function(){return this.c<4}, IK:function(a){var s=a.fr,r=a.dy if(s==null)this.d=r else s.dy=r if(r==null)this.e=s else r.fr=s a.fr=a a.dy=a}, JG:function(a,b,c,d){var s,r,q,p,o,n,m,l,k=this if((k.c&4)!==0){s=new P.th($.R,c,H.u(k).h("th<1>")) s.J_() return s}s=H.u(k) r=$.R q=d?1:0 p=P.Lk(r,a,s.c) o=P.a8V(r,b) n=c==null?P.ahr():c m=new P.ox(k,p,o,r.j2(n,t.H),r,q,s.h("ox<1>")) m.fr=m m.dy=m m.dx=k.c&1 l=k.e k.e=m m.dy=null m.fr=l if(l==null)k.d=m else l.dy=m if(k.d===m)P.RU(k.a) return m}, Iw:function(a){var s,r=this H.u(r).h("ox<1>").a(a) if(a.dy===a)return null s=a.dx if((s&2)!==0)a.dx=s|4 else{r.IK(a) if((r.c&2)===0&&r.d==null)r.xd()}return null}, Ix:function(a){}, Iy:function(a){}, md:function(){if((this.c&4)!==0)return new P.hg("Cannot add new events after calling close") return new P.hg("Cannot add new events while doing an addStream")}, B:function(a,b){if(!this.gmv())throw H.a(this.md()) this.hR(b)}, zN:function(a,b){var s H.e3(a,"error",t.K) if(!this.gmv())throw H.a(this.md()) s=$.R.k9(a,b) if(s!=null){a=s.a b=s.b}else if(b==null)b=P.pe(a) this.hS(a,b)}, aT:function(a){var s,r,q=this if((q.c&4)!==0){s=q.r s.toString return s}if(!q.gmv())throw H.a(q.md()) q.c|=4 r=q.r if(r==null)r=q.r=new P.a1($.R,t.U) q.hk() return r}, tW:function(a,b,c){var s,r=this if(!r.gmv())throw H.a(r.md()) r.c|=8 s=P.aBK(r,b,c===!0,H.u(r).c) r.f=s return s.a}, KY:function(a,b){return this.tW(a,b,null)}, hc:function(a,b){this.hR(b)}, fD:function(a,b){this.hS(a,b)}, jq:function(){var s=this.f s.toString this.f=null this.c&=4294967287 s.a.fE(null)}, yb:function(a){var s,r,q,p=this,o=p.c if((o&2)!==0)throw H.a(P.a4(u.c)) s=p.d if(s==null)return r=o&1 p.c=o^3 for(;s!=null;){o=s.dx if((o&1)===r){s.dx=o|2 a.$1(s) o=s.dx^=1 q=s.dy if((o&4)!==0)p.IK(s) s.dx&=4294967293 s=q}else s=s.dy}p.c&=4294967293 if(p.d==null)p.xd()}, xd:function(){if((this.c&4)!==0){var s=this.r if(s.a===0)s.fE(null)}P.RU(this.b)}, sO8:function(a){return this.a=a}, sO6:function(a,b){return this.b=b}} P.BG.prototype={ gmv:function(){return P.lU.prototype.gmv.call(this)&&(this.c&2)===0}, md:function(){if((this.c&2)!==0)return new P.hg(u.c) return this.Ts()}, hR:function(a){var s=this,r=s.d if(r==null)return if(r===s.e){s.c|=2 r.hc(0,a) s.c&=4294967293 if(s.d==null)s.xd() return}s.yb(new P.aeG(s,a))}, hS:function(a,b){if(this.d==null)return this.yb(new P.aeI(this,a,b))}, hk:function(){var s=this if(s.d!=null)s.yb(new P.aeH(s)) else s.r.fE(null)}} P.aeG.prototype={ $1:function(a){a.hc(0,this.b)}, $S:function(){return this.a.$ti.h("~(d_<1>)")}} P.aeI.prototype={ $1:function(a){a.fD(this.b,this.c)}, $S:function(){return this.a.$ti.h("~(d_<1>)")}} P.aeH.prototype={ $1:function(a){a.jq()}, $S:function(){return this.a.$ti.h("~(d_<1>)")}} P.zz.prototype={ hR:function(a){var s,r for(s=this.d,r=this.$ti.h("ja<1>");s!=null;s=s.dy)s.iz(new P.ja(a,r))}, hS:function(a,b){var s for(s=this.d;s!=null;s=s.dy)s.iz(new P.te(a,b))}, hk:function(){var s=this.d if(s!=null)for(;s!=null;s=s.dy)s.iz(C.dT) else this.r.fE(null)}} P.XH.prototype={ $0:function(){var s,r,q try{this.a.kS(this.b.$0())}catch(q){s=H.U(q) r=H.aB(q) P.al1(this.a,s,r)}}, $C:"$0", $R:0, $S:0} P.XG.prototype={ $0:function(){var s,r,q,p=this,o=p.a if(o==null)p.b.kS(null) else try{p.b.kS(o.$0())}catch(q){s=H.U(q) r=H.aB(q) P.al1(p.b,s,r)}}, $C:"$0", $R:0, $S:0} P.XJ.prototype={ $1:function(a){return this.a.c=a}, $S:302} P.XL.prototype={ $1:function(a){return this.a.d=a}, $S:293} P.XI.prototype={ $0:function(){var s=this.a.c return s===$?H.e(H.c1("error")):s}, $S:291} P.XK.prototype={ $0:function(){var s=this.a.d return s===$?H.e(H.c1("stackTrace")):s}, $S:290} P.XN.prototype={ $2:function(a,b){var s=this,r=s.a,q=--r.b if(r.a!=null){r.a=null if(r.b===0||s.c)s.d.es(a,b) else{s.e.$1(a) s.f.$1(b)}}else if(q===0&&!s.c)s.d.es(s.r.$0(),s.x.$0())}, $C:"$2", $R:2, $S:32} P.XM.prototype={ $1:function(a){var s,r=this,q=r.a;--q.b s=q.a if(s!=null){J.it(s,r.b,a) if(q.b===0)r.c.mf(P.bk(s,!0,r.x))}else if(q.b===0&&!r.e)r.c.es(r.f.$0(),r.r.$0())}, $S:function(){return this.x.h("a6(0)")}} P.zL.prototype={ le:function(a,b){var s H.e3(a,"error",t.K) if(this.a.a!==0)throw H.a(P.a4("Future already completed")) s=$.R.k9(a,b) if(s!=null){a=s.a b=s.b}else if(b==null)b=P.pe(a) this.es(a,b)}, hZ:function(a){return this.le(a,null)}, gMW:function(){return this.a}} P.aH.prototype={ ci:function(a,b){var s=this.a if(s.a!==0)throw H.a(P.a4("Future already completed")) s.fE(b)}, ez:function(a){return this.ci(a,null)}, es:function(a,b){this.a.rD(a,b)}} P.jd.prototype={ ac5:function(a){if((this.c&15)!==6)return!0 return this.b.b.nK(this.d,a.a,t.y,t.K)}, aaw:function(a){var s=this.e,r=t.z,q=t.K,p=this.b.b if(t.Hg.b(s))return p.vL(s,a.a,a.b,r,q,t.Km) else return p.nK(s,a.a,r,q)}, gb9:function(a){return this.c}} P.a1.prototype={ f6:function(a,b,c,d){var s,r,q=$.R if(q!==C.F){b=q.lI(b,d.h("0/"),this.$ti.c) if(c!=null)c=P.arG(c,q)}s=new P.a1($.R,d.h("a1<0>")) r=c==null?1:3 this.oo(new P.jd(s,r,b,c,this.$ti.h("@<1>").a3(d).h("jd<1,2>"))) return s}, bN:function(a,b,c){return this.f6(a,b,null,c)}, Cu:function(a,b){return this.f6(a,b,null,t.z)}, JT:function(a,b,c){var s=new P.a1($.R,c.h("a1<0>")) this.oo(new P.jd(s,19,a,b,this.$ti.h("@<1>").a3(c).h("jd<1,2>"))) return s}, mT:function(a,b){var s=this.$ti,r=$.R,q=new P.a1(r,s) if(r!==C.F)a=P.arG(a,r) this.oo(new P.jd(q,2,b,a,s.h("@<1>").a3(s.c).h("jd<1,2>"))) return q}, jR:function(a){return this.mT(a,null)}, f9:function(a){var s=this.$ti,r=$.R,q=new P.a1(r,s) if(r!==C.F)a=r.j2(a,t.z) this.oo(new P.jd(q,8,a,null,s.h("@<1>").a3(s.c).h("jd<1,2>"))) return q}, oo:function(a){var s,r=this,q=r.a if(q<=1){a.a=r.c r.c=a}else{if(q===2){q=r.c s=q.a if(s<4){q.oo(a) return}r.a=s r.c=q.c}r.b.jh(new P.aaz(r,a))}}, Ir:function(a){var s,r,q,p,o,n,m=this,l={} l.a=a if(a==null)return s=m.a if(s<=1){r=m.c m.c=a if(r!=null){q=a.a for(p=a;q!=null;p=q,q=o)o=q.a p.a=r}}else{if(s===2){s=m.c n=s.a if(n<4){s.Ir(a) return}m.a=n m.c=s.c}l.a=m.tB(a) m.b.jh(new P.aaH(l,m))}}, tA:function(){var s=this.c this.c=null return this.tB(s)}, tB:function(a){var s,r,q for(s=a,r=null;s!=null;r=s,s=q){q=s.a s.a=r}return r}, xf:function(a){var s,r,q,p=this p.a=1 try{a.f6(0,new P.aaD(p),new P.aaE(p),t.P)}catch(q){s=H.U(q) r=H.aB(q) P.eV(new P.aaF(p,s,r))}}, kS:function(a){var s,r=this,q=r.$ti if(q.h("ax<1>").b(a))if(q.b(a))P.aaC(a,r) else r.xf(a) else{s=r.tA() r.a=4 r.c=a P.tv(r,s)}}, mf:function(a){var s=this,r=s.tA() s.a=4 s.c=a P.tv(s,r)}, es:function(a,b){var s=this,r=s.tA(),q=P.SS(a,b) s.a=8 s.c=q P.tv(s,r)}, fE:function(a){if(this.$ti.h("ax<1>").b(a)){this.Fp(a) return}this.XS(a)}, XS:function(a){this.a=1 this.b.jh(new P.aaB(this,a))}, Fp:function(a){var s=this if(s.$ti.b(a)){if(a.a===8){s.a=1 s.b.jh(new P.aaG(s,a))}else P.aaC(a,s) return}s.xf(a)}, rD:function(a,b){this.a=1 this.b.jh(new P.aaA(this,a,b))}, $iax:1} P.aaz.prototype={ $0:function(){P.tv(this.a,this.b)}, $C:"$0", $R:0, $S:0} P.aaH.prototype={ $0:function(){P.tv(this.b,this.a.a)}, $C:"$0", $R:0, $S:0} P.aaD.prototype={ $1:function(a){var s,r,q,p=this.a p.a=0 try{p.mf(p.$ti.c.a(a))}catch(q){s=H.U(q) r=H.aB(q) p.es(s,r)}}, $S:5} P.aaE.prototype={ $2:function(a,b){this.a.es(a,b)}, $C:"$2", $R:2, $S:57} P.aaF.prototype={ $0:function(){this.a.es(this.b,this.c)}, $C:"$0", $R:0, $S:0} P.aaB.prototype={ $0:function(){this.a.mf(this.b)}, $C:"$0", $R:0, $S:0} P.aaG.prototype={ $0:function(){P.aaC(this.b,this.a)}, $C:"$0", $R:0, $S:0} P.aaA.prototype={ $0:function(){this.a.es(this.b,this.c)}, $C:"$0", $R:0, $S:0} P.aaK.prototype={ $0:function(){var s,r,q,p,o,n,m=this,l=null try{q=m.a.a l=q.b.b.lM(q.d,t.z)}catch(p){s=H.U(p) r=H.aB(p) if(m.c){q=m.b.a.c.a o=s o=q==null?o==null:q===o q=o}else q=!1 o=m.a if(q)o.c=m.b.a.c else o.c=P.SS(s,r) o.b=!0 return}if(l instanceof P.a1&&l.a>=4){if(l.a===8){q=m.a q.c=l.c q.b=!0}return}if(t.L0.b(l)){n=m.b.a q=m.a q.c=J.ur(l,new P.aaL(n),t.z) q.b=!1}}, $S:0} P.aaL.prototype={ $1:function(a){return this.a}, $S:283} P.aaJ.prototype={ $0:function(){var s,r,q,p,o,n try{q=this.a p=q.a o=p.$ti q.c=p.b.b.nK(p.d,this.b,o.h("2/"),o.c)}catch(n){s=H.U(n) r=H.aB(n) q=this.a q.c=P.SS(s,r) q.b=!0}}, $S:0} P.aaI.prototype={ $0:function(){var s,r,q,p,o,n,m,l,k=this try{s=k.a.a.c p=k.b if(p.a.ac5(s)&&p.a.e!=null){p.c=p.a.aaw(s) p.b=!1}}catch(o){r=H.U(o) q=H.aB(o) p=k.a.a.c n=p.a m=r l=k.b if(n==null?m==null:n===m)l.c=p else l.c=P.SS(r,q) l.b=!0}}, $S:0} P.L9.prototype={} P.bg.prototype={ giU:function(){return!1}, dn:function(a,b,c){return new P.oG(b,this,H.u(this).h("@").a3(c).h("oG<1,2>"))}, fp:function(a,b){return this.dn(a,b,t.z)}, a7e:function(a,b){var s,r=null,q={} q.a=null s=this.giU()?q.a=new P.BG(r,r,b.h("BG<0>")):q.a=new P.m8(r,r,r,r,b.h("m8<0>")) s.sO8(new P.a6p(q,this,a)) q=q.a return q.gwx(q)}, K:function(a,b){var s=new P.a1($.R,t.LR),r=this.cX(null,!0,new P.a6u(s),s.gxs()) r.ql(new P.a6v(this,b,r,s)) return s}, gl:function(a){var s={},r=new P.a1($.R,t.wJ) s.a=0 this.cX(new P.a6w(s,this),!0,new P.a6x(s,r),r.gxs()) return r}, gI:function(a){var s=new P.a1($.R,H.u(this).h("a1")),r=this.cX(null,!0,new P.a6q(s),s.gxs()) r.ql(new P.a6r(this,r,s)) return s}} P.a6n.prototype={ $0:function(){return new P.Ax(J.as(this.a),this.b.h("Ax<0>"))}, $S:function(){return this.b.h("Ax<0>()")}} P.a6p.prototype={ $0:function(){var s=this.b,r=this.a,q=r.a.grA(),p=r.a,o=s.no(null,p.gpj(p),q) o.ql(new P.a6o(r,s,this.c,o)) r.a.sO6(0,o.gud(o)) if(!s.giU()){s=r.a s.sO9(0,o.gCg(o)) s.sOb(0,o.gvJ(o))}}, $S:0} P.a6o.prototype={ $1:function(a){var s,r,q,p,o=this,n=null try{n=o.c.$1(a)}catch(q){s=H.U(q) r=H.aB(q) o.a.a.zN(s,r) return}if(n!=null){p=o.d p.j_(0) o.a.a.KY(0,n).f9(p.gvJ(p))}}, $S:function(){return H.u(this.b).h("~(bg.T)")}} P.a6u.prototype={ $0:function(){this.a.kS(null)}, $C:"$0", $R:0, $S:0} P.a6v.prototype={ $1:function(a){P.aEg(new P.a6s(this.b,a),new P.a6t(),P.aD0(this.c,this.d))}, $S:function(){return H.u(this.a).h("~(bg.T)")}} P.a6s.prototype={ $0:function(){return this.a.$1(this.b)}, $S:0} P.a6t.prototype={ $1:function(a){}, $S:24} P.a6w.prototype={ $1:function(a){++this.a.a}, $S:function(){return H.u(this.b).h("~(bg.T)")}} P.a6x.prototype={ $0:function(){this.b.kS(this.a.a)}, $C:"$0", $R:0, $S:0} P.a6q.prototype={ $0:function(){var s,r,q,p try{q=H.bR() throw H.a(q)}catch(p){s=H.U(p) r=H.aB(p) P.al1(this.a,s,r)}}, $C:"$0", $R:0, $S:0} P.a6r.prototype={ $1:function(a){P.aD1(this.b,this.c,a)}, $S:function(){return H.u(this.a).h("~(bg.T)")}} P.eg.prototype={} P.yJ.prototype={ giU:function(){this.a.giU() return!1}, cX:function(a,b,c,d){return this.a.cX(a,b,c,d)}, nn:function(a){return this.cX(a,null,null,null)}, no:function(a,b,c){return this.cX(a,null,b,c)}} P.JO.prototype={} P.u4.prototype={ gwx:function(a){return new P.lV(this,H.u(this).h("lV<1>"))}, gNv:function(a){return(this.b&4)!==0}, gNB:function(){var s=this.b return(s&1)!==0?(this.gjB().e&4)!==0:(s&2)===0}, ga3A:function(){if((this.b&8)===0)return this.a return this.a.c}, xW:function(){var s,r,q=this if((q.b&8)===0){s=q.a return s==null?q.a=new P.m7(H.u(q).h("m7<1>")):s}r=q.a s=r.c return s==null?r.c=new P.m7(H.u(q).h("m7<1>")):s}, gjB:function(){var s=this.a return(this.b&8)!==0?s.c:s}, rE:function(){if((this.b&4)!==0)return new P.hg("Cannot add event after closing") return new P.hg("Cannot add event while adding a stream")}, tW:function(a,b,c){var s,r,q,p=this,o=p.b if(o>=4)throw H.a(p.rE()) if((o&2)!==0){o=new P.a1($.R,t.LR) o.fE(null) return o}o=p.a s=c===!0 r=new P.a1($.R,t.LR) q=s?P.aBL(p):p.grA() q=b.cX(p.gx9(p),s,p.gxl(),q) s=p.b if((s&1)!==0?(p.gjB().e&4)!==0:(s&2)===0)q.j_(0) p.a=new P.BE(o,r,q,H.u(p).h("BE<1>")) p.b|=8 return r}, KY:function(a,b){return this.tW(a,b,null)}, Gs:function(){var s=this.c if(s==null)s=this.c=(this.b&2)!==0?$.mj():new P.a1($.R,t.U) return s}, B:function(a,b){if(this.b>=4)throw H.a(this.rE()) this.hc(0,b)}, zN:function(a,b){var s H.e3(a,"error",t.K) if(this.b>=4)throw H.a(this.rE()) s=$.R.k9(a,b) if(s!=null){a=s.a b=s.b}else if(b==null)b=P.pe(a) this.fD(a,b)}, aT:function(a){var s=this,r=s.b if((r&4)!==0)return s.Gs() if(r>=4)throw H.a(s.rE()) r=s.b=r|4 if((r&1)!==0)s.hk() else if((r&3)===0)s.xW().B(0,C.dT) return s.Gs()}, hc:function(a,b){var s=this,r=s.b if((r&1)!==0)s.hR(b) else if((r&3)===0)s.xW().B(0,new P.ja(b,H.u(s).h("ja<1>")))}, fD:function(a,b){var s=this.b if((s&1)!==0)this.hS(a,b) else if((s&3)===0)this.xW().B(0,new P.te(a,b))}, jq:function(){var s=this.a this.a=s.c this.b&=4294967287 s.a.fE(null)}, JG:function(a,b,c,d){var s,r,q,p,o=this if((o.b&3)!==0)throw H.a(P.a4("Stream has already been listened to.")) s=P.aBX(o,a,b,c,d,H.u(o).c) r=o.ga3A() q=o.b|=1 if((q&8)!==0){p=o.a p.c=s p.b.kz(0)}else o.a=s s.Jg(r) s.yg(new P.aeA(o)) return s}, Iw:function(a){var s,r,q,p,o,n,m,l=this,k=null if((l.b&8)!==0)k=l.a.aH(0) l.a=null l.b=l.b&4294967286|2 s=l.r if(s!=null)if(k==null)try{r=s.$0() if(t.uz.b(r))k=r}catch(o){q=H.U(o) p=H.aB(o) n=new P.a1($.R,t.U) n.rD(q,p) k=n}else k=k.f9(s) m=new P.aez(l) if(k!=null)k=k.f9(m) else m.$0() return k}, Ix:function(a){if((this.b&8)!==0)this.a.b.j_(0) P.RU(this.e)}, Iy:function(a){if((this.b&8)!==0)this.a.b.kz(0) P.RU(this.f)}, sO8:function(a){return this.d=a}, sO9:function(a,b){return this.e=b}, sOb:function(a,b){return this.f=b}, sO6:function(a,b){return this.r=b}} P.aeA.prototype={ $0:function(){P.RU(this.a.d)}, $S:0} P.aez.prototype={ $0:function(){var s=this.a.c if(s!=null&&s.a===0)s.fE(null)}, $C:"$0", $R:0, $S:0} P.Q4.prototype={ hR:function(a){this.gjB().hc(0,a)}, hS:function(a,b){this.gjB().fD(a,b)}, hk:function(){this.gjB().jq()}} P.Lb.prototype={ hR:function(a){this.gjB().iz(new P.ja(a,this.$ti.h("ja<1>")))}, hS:function(a,b){this.gjB().iz(new P.te(a,b))}, hk:function(){this.gjB().iz(C.dT)}} P.t4.prototype={} P.m8.prototype={} P.lV.prototype={ xD:function(a,b,c,d){return this.a.JG(a,b,c,d)}, gt:function(a){return(H.di(this.a)^892482866)>>>0}, k:function(a,b){if(b==null)return!1 if(this===b)return!0 return b instanceof P.lV&&b.a===this.a}} P.lW.prototype={ yU:function(){return this.x.Iw(this)}, jy:function(){this.x.Ix(this)}, jz:function(){this.x.Iy(this)}} P.t2.prototype={ aH:function(a){var s=this.b.aH(0) if(s==null){this.a.fE(null) return $.mj()}return s.f9(new P.a8g(this))}} P.a8h.prototype={ $2:function(a,b){var s=this.a s.fD(a,b) s.jq()}, $C:"$2", $R:2, $S:57} P.a8g.prototype={ $0:function(){this.a.a.fE(null)}, $C:"$0", $R:0, $S:1} P.BE.prototype={} P.d_.prototype={ Jg:function(a){var s=this if(a==null)return s.r=a if(!a.gO(a)){s.e=(s.e|64)>>>0 a.ra(s)}}, ql:function(a){this.a=P.Lk(this.d,a,H.u(this).h("d_.T"))}, kv:function(a,b){var s,r,q=this,p=q.e if((p&8)!==0)return s=(p+128|4)>>>0 q.e=s if(p<128){r=q.r if(r!=null)if(r.a===1)r.a=3}if((p&4)===0&&(s&32)===0)q.yg(q.gtp())}, j_:function(a){return this.kv(a,null)}, kz:function(a){var s=this,r=s.e if((r&8)!==0)return if(r>=128){r=s.e=r-128 if(r<128){if((r&64)!==0){r=s.r r=!r.gO(r)}else r=!1 if(r)s.r.ra(s) else{r=(s.e&4294967291)>>>0 s.e=r if((r&32)===0)s.yg(s.gtq())}}}}, aH:function(a){var s=this,r=(s.e&4294967279)>>>0 s.e=r if((r&8)===0)s.xa() r=s.f return r==null?$.mj():r}, xa:function(){var s,r=this,q=r.e=(r.e|8)>>>0 if((q&64)!==0){s=r.r if(s.a===1)s.a=3}if((q&32)===0)r.r=null r.f=r.yU()}, hc:function(a,b){var s=this,r=s.e if((r&8)!==0)return if(r<32)s.hR(b) else s.iz(new P.ja(b,H.u(s).h("ja")))}, fD:function(a,b){var s=this.e if((s&8)!==0)return if(s<32)this.hS(a,b) else this.iz(new P.te(a,b))}, jq:function(){var s=this,r=s.e if((r&8)!==0)return r=(r|2)>>>0 s.e=r if(r<32)s.hk() else s.iz(C.dT)}, jy:function(){}, jz:function(){}, yU:function(){return null}, iz:function(a){var s,r=this,q=r.r if(q==null)q=new P.m7(H.u(r).h("m7")) r.r=q q.B(0,a) s=r.e if((s&64)===0){s=(s|64)>>>0 r.e=s if(s<128)q.ra(r)}}, hR:function(a){var s=this,r=s.e s.e=(r|32)>>>0 s.d.lN(s.a,a,H.u(s).h("d_.T")) s.e=(s.e&4294967263)>>>0 s.xh((r&4)!==0)}, hS:function(a,b){var s,r=this,q=r.e,p=new P.a8X(r,a,b) if((q&1)!==0){r.e=(q|16)>>>0 r.xa() s=r.f if(s!=null&&s!==$.mj())s.f9(p) else p.$0()}else{p.$0() r.xh((q&4)!==0)}}, hk:function(){var s,r=this,q=new P.a8W(r) r.xa() r.e=(r.e|16)>>>0 s=r.f if(s!=null&&s!==$.mj())s.f9(q) else q.$0()}, yg:function(a){var s=this,r=s.e s.e=(r|32)>>>0 a.$0() s.e=(s.e&4294967263)>>>0 s.xh((r&4)!==0)}, xh:function(a){var s,r,q=this if((q.e&64)!==0){s=q.r s=s.gO(s)}else s=!1 if(s){s=q.e=(q.e&4294967231)>>>0 if((s&4)!==0)if(s<128){s=q.r s=s==null?null:s.gO(s) s=s!==!1}else s=!1 else s=!1 if(s)q.e=(q.e&4294967291)>>>0}for(;!0;a=r){s=q.e if((s&8)!==0){q.r=null return}r=(s&4)!==0 if(a===r)break q.e=(s^32)>>>0 if(r)q.jy() else q.jz() q.e=(q.e&4294967263)>>>0}s=q.e if((s&64)!==0&&s<128)q.r.ra(q)}, $ieg:1} P.a8X.prototype={ $0:function(){var s,r,q,p=this.a,o=p.e if((o&8)!==0&&(o&16)===0)return p.e=(o|32)>>>0 s=p.b o=this.b r=t.K q=p.d if(t.hK.b(s))q.P1(s,o,this.c,r,t.Km) else q.lN(s,o,r) p.e=(p.e&4294967263)>>>0}, $C:"$0", $R:0, $S:0} P.a8W.prototype={ $0:function(){var s=this.a,r=s.e if((r&16)===0)return s.e=(r|42)>>>0 s.d.kC(s.c) s.e=(s.e&4294967263)>>>0}, $C:"$0", $R:0, $S:0} P.oO.prototype={ cX:function(a,b,c,d){return this.xD(a,d,c,b===!0)}, nn:function(a){return this.cX(a,null,null,null)}, abP:function(a,b){return this.cX(a,null,null,b)}, no:function(a,b,c){return this.cX(a,null,b,c)}, xD:function(a,b,c,d){return P.aq8(a,b,c,d,H.u(this).c)}} P.Ag.prototype={ xD:function(a,b,c,d){var s,r=this if(r.b)throw H.a(P.a4("Stream has already been listened to.")) r.b=!0 s=P.aq8(a,b,c,d,r.$ti.c) s.Jg(r.a.$0()) return s}} P.Ax.prototype={ gO:function(a){return this.b==null}, MZ:function(a){var s,r,q,p,o=this.b if(o==null)throw H.a(P.a4("No events pending.")) s=!1 try{if(o.q()){s=!0 a.hR(J.awc(o))}else{this.b=null a.hk()}}catch(p){r=H.U(p) q=H.aB(p) if(!s)this.b=C.cd a.hS(r,q)}}} P.M7.prototype={ gnr:function(a){return this.a}, snr:function(a,b){return this.a=b}} P.ja.prototype={ Ch:function(a){a.hR(this.b)}} P.te.prototype={ Ch:function(a){a.hS(this.b,this.c)}} P.aa2.prototype={ Ch:function(a){a.hk()}, gnr:function(a){return null}, snr:function(a,b){throw H.a(P.a4("No events after a done."))}} P.Od.prototype={ ra:function(a){var s=this,r=s.a if(r===1)return if(r>=1){s.a=1 return}P.eV(new P.ad1(s,a)) s.a=1}} P.ad1.prototype={ $0:function(){var s=this.a,r=s.a s.a=0 if(r===3)return s.MZ(this.b)}, $C:"$0", $R:0, $S:0} P.m7.prototype={ gO:function(a){return this.c==null}, B:function(a,b){var s=this,r=s.c if(r==null)s.b=s.c=b else{r.snr(0,b) s.c=b}}, MZ:function(a){var s=this.b,r=s.gnr(s) this.b=r if(r==null)this.c=null s.Ch(a)}} P.th.prototype={ J_:function(){var s=this if((s.b&2)!==0)return s.a.jh(s.ga4Z()) s.b=(s.b|2)>>>0}, ql:function(a){}, kv:function(a,b){this.b+=4}, j_:function(a){return this.kv(a,null)}, kz:function(a){var s=this.b if(s>=4){s=this.b=s-4 if(s<4&&(s&1)===0)this.J_()}}, aH:function(a){return $.mj()}, hk:function(){var s,r=this,q=r.b=(r.b&4294967293)>>>0 if(q>=4)return r.b=(q|1)>>>0 s=r.c if(s!=null)r.a.kC(s)}, $ieg:1} P.PS.prototype={} P.agn.prototype={ $0:function(){return this.a.es(this.b,this.c)}, $C:"$0", $R:0, $S:0} P.agm.prototype={ $2:function(a,b){P.aD_(this.a,this.b,a,b)}, $S:32} P.ago.prototype={ $0:function(){return this.a.kS(this.b)}, $C:"$0", $R:0, $S:0} P.Af.prototype={ giU:function(){return this.a.giU()}, cX:function(a,b,c,d){var s=this.$ti,r=s.Q[1],q=$.R,p=b===!0?1:0,o=P.Lk(q,a,r),n=P.a8V(q,d),m=c==null?P.ahr():c r=new P.tt(this,o,n,q.j2(m,t.H),q,p,s.h("@<1>").a3(r).h("tt<1,2>")) r.y=this.a.no(r.ga07(),r.ga0c(),r.ga0q()) return r}, nn:function(a){return this.cX(a,null,null,null)}, no:function(a,b,c){return this.cX(a,null,b,c)}} P.tt.prototype={ hc:function(a,b){if((this.e&2)!==0)return this.Tt(0,b)}, fD:function(a,b){if((this.e&2)!==0)return this.Tu(a,b)}, jy:function(){var s=this.y if(s!=null)s.j_(0)}, jz:function(){var s=this.y if(s!=null)s.kz(0)}, yU:function(){var s=this.y if(s!=null){this.y=null return s.aH(0)}return null}, a08:function(a){this.x.a09(a,this)}, a0r:function(a,b){this.fD(a,b)}, a0d:function(){this.jq()}} P.oG.prototype={ a09:function(a,b){var s,r,q,p,o,n,m=null try{m=this.b.$1(a)}catch(q){s=H.U(q) r=H.aB(q) p=s o=r n=$.R.k9(p,o) if(n!=null){p=n.a o=n.b}b.fD(p,o) return}b.hc(0,m)}} P.dH.prototype={} P.adR.prototype={} P.adS.prototype={} P.adQ.prototype={} P.adp.prototype={} P.adq.prototype={} P.ado.prototype={} P.oQ.prototype={$ia8c:1} P.ub.prototype={ N4:function(a,b,c){var s=this.a.gyt(),r=s.a return s.b.$5(r,r.gev(),a,b,c)}, $ibF:1} P.oP.prototype={$iao:1} P.LY.prototype={ gG8:function(){var s=this.cy return s==null?this.cy=new P.ub(this):s}, gev:function(){return this.db.gG8()}, gli:function(){return this.cx.a}, kC:function(a){var s,r,q try{this.lM(a,t.H)}catch(q){s=H.U(q) r=H.aB(q) this.kf(s,r)}}, lN:function(a,b,c){var s,r,q try{this.nK(a,b,t.H,c)}catch(q){s=H.U(q) r=H.aB(q) this.kf(s,r)}}, P1:function(a,b,c,d,e){var s,r,q try{this.vL(a,b,c,t.H,d,e)}catch(q){s=H.U(q) r=H.aB(q) this.kf(s,r)}}, A4:function(a,b){return new P.a9N(this,this.j2(a,b),b)}, a7m:function(a,b,c){return new P.a9P(this,this.lI(a,b,c),c,b)}, u3:function(a){return new P.a9M(this,this.j2(a,t.H))}, A5:function(a,b){return new P.a9O(this,this.lI(a,t.H,b),b)}, i:function(a,b){var s,r=this.dx,q=r.i(0,b) if(q!=null||r.am(0,b))return q s=this.db.i(0,b) if(s!=null)r.n(0,b,s) return s}, kf:function(a,b){var s=this.cx,r=s.a return s.b.$5(r,r.gev(),this,a,b)}, uW:function(a,b){var s=this.ch,r=s.a return s.b.$5(r,r.gev(),this,a,b)}, MU:function(a){return this.uW(a,null)}, lM:function(a){var s=this.a,r=s.a return s.b.$4(r,r.gev(),this,a)}, nK:function(a,b){var s=this.b,r=s.a return s.b.$5(r,r.gev(),this,a,b)}, vL:function(a,b,c){var s=this.c,r=s.a return s.b.$6(r,r.gev(),this,a,b,c)}, j2:function(a){var s=this.d,r=s.a return s.b.$4(r,r.gev(),this,a)}, lI:function(a){var s=this.e,r=s.a return s.b.$4(r,r.gev(),this,a)}, vF:function(a){var s=this.f,r=s.a return s.b.$4(r,r.gev(),this,a)}, k9:function(a,b){var s,r H.e3(a,"error",t.K) s=this.r r=s.a if(r===C.F)return null return s.b.$5(r,r.gev(),this,a,b)}, jh:function(a){var s=this.x,r=s.a return s.b.$4(r,r.gev(),this,a)}, At:function(a,b){var s=this.y,r=s.a return s.b.$5(r,r.gev(),this,a,b)}, Ar:function(a,b){var s=this.z,r=s.a return s.b.$5(r,r.gev(),this,a,b)}, Oq:function(a,b){var s=this.Q,r=s.a return s.b.$4(r,r.gev(),this,b)}, gIX:function(){return this.a}, gIZ:function(){return this.b}, gIY:function(){return this.c}, gIC:function(){return this.d}, gID:function(){return this.e}, gIB:function(){return this.f}, gGv:function(){return this.r}, gz4:function(){return this.x}, gG2:function(){return this.y}, gG0:function(){return this.z}, gIs:function(){return this.Q}, gGI:function(){return this.ch}, gyt:function(){return this.cx}, gHP:function(){return this.dx}} P.a9N.prototype={ $0:function(){return this.a.lM(this.b,this.c)}, $S:function(){return this.c.h("0()")}} P.a9P.prototype={ $1:function(a){var s=this return s.a.nK(s.b,a,s.d,s.c)}, $S:function(){return this.d.h("@<0>").a3(this.c).h("1(2)")}} P.a9M.prototype={ $0:function(){return this.a.kC(this.b)}, $C:"$0", $R:0, $S:0} P.a9O.prototype={ $1:function(a){return this.a.lN(this.b,a,this.c)}, $S:function(){return this.c.h("~(0)")}} P.ahf.prototype={ $0:function(){var s=H.a(this.a) s.stack=J.bB(this.b) throw s}, $S:0} P.Pg.prototype={ gIX:function(){return C.HH}, gIZ:function(){return C.HI}, gIY:function(){return C.HG}, gIC:function(){return C.HD}, gID:function(){return C.HE}, gIB:function(){return C.HC}, gGv:function(){return C.HO}, gz4:function(){return C.HR}, gG2:function(){return C.HN}, gG0:function(){return C.HL}, gIs:function(){return C.HQ}, gGI:function(){return C.HP}, gyt:function(){return C.HM}, gHP:function(){return $.atJ()}, gG8:function(){var s=$.adG return s==null?$.adG=new P.ub(this):s}, gev:function(){var s=$.adG return s==null?$.adG=new P.ub(this):s}, gli:function(){return this}, kC:function(a){var s,r,q,p=null try{if(C.F===$.R){a.$0() return}P.ahg(p,p,this,a)}catch(q){s=H.U(q) r=H.aB(q) P.RT(p,p,this,s,r)}}, lN:function(a,b){var s,r,q,p=null try{if(C.F===$.R){a.$1(b) return}P.ahi(p,p,this,a,b)}catch(q){s=H.U(q) r=H.aB(q) P.RT(p,p,this,s,r)}}, P1:function(a,b,c){var s,r,q,p=null try{if(C.F===$.R){a.$2(b,c) return}P.ahh(p,p,this,a,b,c)}catch(q){s=H.U(q) r=H.aB(q) P.RT(p,p,this,s,r)}}, A4:function(a,b){return new P.adI(this,a,b)}, u3:function(a){return new P.adH(this,a)}, A5:function(a,b){return new P.adJ(this,a,b)}, i:function(a,b){return null}, kf:function(a,b){P.RT(null,null,this,a,b)}, uW:function(a,b){return P.arH(null,null,this,a,b)}, MU:function(a){return this.uW(a,null)}, lM:function(a){if($.R===C.F)return a.$0() return P.ahg(null,null,this,a)}, nK:function(a,b){if($.R===C.F)return a.$1(b) return P.ahi(null,null,this,a,b)}, vL:function(a,b,c){if($.R===C.F)return a.$2(b,c) return P.ahh(null,null,this,a,b,c)}, j2:function(a){return a}, lI:function(a){return a}, vF:function(a){return a}, k9:function(a,b){return null}, jh:function(a){P.ahj(null,null,this,a)}, At:function(a,b){return P.aky(a,b)}, Ar:function(a,b){return P.apT(a,b)}, Oq:function(a,b){H.aie(b)}} P.adI.prototype={ $0:function(){return this.a.lM(this.b,this.c)}, $S:function(){return this.c.h("0()")}} P.adH.prototype={ $0:function(){return this.a.kC(this.b)}, $C:"$0", $R:0, $S:0} P.adJ.prototype={ $1:function(a){return this.a.lN(this.b,a,this.c)}, $S:function(){return this.c.h("~(0)")}} P.aii.prototype={ $2:function(a,b){return this.a.$1(a)}, $C:"$2", $R:2, $S:32} P.aih.prototype={ $5:function(a,b,c,d,e){var s,r,q,p try{this.a.vL(this.b,d,e,t.H,t.K,t.Km)}catch(q){s=H.U(q) r=H.aB(q) p=s if(p==null?d==null:p===d)b.N4(c,d,e) else b.N4(c,s,r)}}, $S:107} P.ks.prototype={ gl:function(a){return this.a}, gO:function(a){return this.a===0}, gaV:function(a){return this.a!==0}, gaj:function(a){return new P.kt(this,H.u(this).h("kt<1>"))}, gaZ:function(a){var s=H.u(this) return H.jT(new P.kt(this,s.h("kt<1>")),new P.aaP(this),s.c,s.Q[1])}, am:function(a,b){var s,r if(typeof b=="string"&&b!=="__proto__"){s=this.b return s==null?!1:s[b]!=null}else if(typeof b=="number"&&(b&1073741823)===b){r=this.c return r==null?!1:r[b]!=null}else return this.mg(b)}, mg:function(a){var s=this.d if(s==null)return!1 return this.eR(this.GO(s,a),a)>=0}, i:function(a,b){var s,r,q if(typeof b=="string"&&b!=="__proto__"){s=this.b r=s==null?null:P.akF(s,b) return r}else if(typeof b=="number"&&(b&1073741823)===b){q=this.c r=q==null?null:P.akF(q,b) return r}else return this.GM(0,b)}, GM:function(a,b){var s,r,q=this.d if(q==null)return null s=this.GO(q,b) r=this.eR(s,b) return r<0?null:s[r+1]}, n:function(a,b,c){var s,r,q=this if(typeof b=="string"&&b!=="__proto__"){s=q.b q.FG(s==null?q.b=P.akG():s,b,c)}else if(typeof b=="number"&&(b&1073741823)===b){r=q.c q.FG(r==null?q.c=P.akG():r,b,c)}else q.Jc(b,c)}, Jc:function(a,b){var s,r,q,p=this,o=p.d if(o==null)o=p.d=P.akG() s=p.fd(a) r=o[s] if(r==null){P.akH(o,s,[a,b]);++p.a p.e=null}else{q=p.eR(r,a) if(q>=0)r[q+1]=b else{r.push(a,b);++p.a p.e=null}}}, bX:function(a,b,c){var s if(this.am(0,b))return this.i(0,b) s=c.$0() this.n(0,b,s) return s}, u:function(a,b){var s=this if(typeof b=="string"&&b!=="__proto__")return s.jr(s.b,b) else if(typeof b=="number"&&(b&1073741823)===b)return s.jr(s.c,b) else return s.iD(0,b)}, iD:function(a,b){var s,r,q,p,o=this,n=o.d if(n==null)return null s=o.fd(b) r=n[s] q=o.eR(r,b) if(q<0)return null;--o.a o.e=null p=r.splice(q,2)[1] if(0===r.length)delete n[s] return p}, K:function(a,b){var s,r,q,p=this,o=p.xu() for(s=o.length,r=0;r"))}, C:function(a,b){return this.a.am(0,b)}, K:function(a,b){var s,r,q=this.a,p=q.xu() for(s=p.length,r=0;r=r.length){s.d=null return!1}else{s.d=r[q] s.c=q+1 return!0}}} P.AF.prototype={ ng:function(a){return H.CM(a)&1073741823}, nh:function(a,b){var s,r,q if(a==null)return-1 s=a.length for(r=0;r"))}, gM:function(a){return new P.hr(this,this.ou(),H.u(this).h("hr<1>"))}, gl:function(a){return this.a}, gO:function(a){return this.a===0}, gaV:function(a){return this.a!==0}, C:function(a,b){var s,r if(typeof b=="string"&&b!=="__proto__"){s=this.b return s==null?!1:s[b]!=null}else if(typeof b=="number"&&(b&1073741823)===b){r=this.c return r==null?!1:r[b]!=null}else return this.xw(b)}, xw:function(a){var s=this.d if(s==null)return!1 return this.eR(s[this.fd(a)],a)>=0}, B:function(a,b){var s,r,q=this if(typeof b=="string"&&b!=="__proto__"){s=q.b return q.ot(s==null?q.b=P.akI():s,b)}else if(typeof b=="number"&&(b&1073741823)===b){r=q.c return q.ot(r==null?q.c=P.akI():r,b)}else return q.dV(0,b)}, dV:function(a,b){var s,r,q=this,p=q.d if(p==null)p=q.d=P.akI() s=q.fd(b) r=p[s] if(r==null)p[s]=[b] else{if(q.eR(r,b)>=0)return!1 r.push(b)}++q.a q.e=null return!0}, J:function(a,b){var s for(s=J.as(b);s.q();)this.B(0,s.gw(s))}, u:function(a,b){var s=this if(typeof b=="string"&&b!=="__proto__")return s.jr(s.b,b) else if(typeof b=="number"&&(b&1073741823)===b)return s.jr(s.c,b) else return s.iD(0,b)}, iD:function(a,b){var s,r,q,p=this,o=p.d if(o==null)return!1 s=p.fd(b) r=o[s] q=p.eR(r,b) if(q<0)return!1;--p.a p.e=null r.splice(q,1) if(0===r.length)delete o[s] return!0}, az:function(a){var s=this if(s.a>0){s.b=s.c=s.d=s.e=null s.a=0}}, ou:function(){var s,r,q,p,o,n,m,l,k,j,i=this,h=i.e if(h!=null)return h h=P.b6(i.a,null,!1,t.z) s=i.b if(s!=null){r=Object.getOwnPropertyNames(s) q=r.length for(p=0,o=0;o=r.length){s.d=null return!1}else{s.d=r[q] s.c=q+1 return!0}}} P.hs.prototype={ oP:function(){return new P.hs(H.u(this).h("hs<1>"))}, gM:function(a){var s=this,r=new P.fd(s,s.r,H.u(s).h("fd<1>")) r.c=s.e return r}, gl:function(a){return this.a}, gO:function(a){return this.a===0}, gaV:function(a){return this.a!==0}, C:function(a,b){var s,r if(typeof b=="string"&&b!=="__proto__"){s=this.b if(s==null)return!1 return s[b]!=null}else if(typeof b=="number"&&(b&1073741823)===b){r=this.c if(r==null)return!1 return r[b]!=null}else return this.xw(b)}, xw:function(a){var s=this.d if(s==null)return!1 return this.eR(s[this.fd(a)],a)>=0}, K:function(a,b){var s=this,r=s.e,q=s.r for(;r!=null;){b.$1(r.a) if(q!==s.r)throw H.a(P.bp(s)) r=r.b}}, gI:function(a){var s=this.e if(s==null)throw H.a(P.a4("No elements")) return s.a}, gL:function(a){var s=this.f if(s==null)throw H.a(P.a4("No elements")) return s.a}, B:function(a,b){var s,r,q=this if(typeof b=="string"&&b!=="__proto__"){s=q.b return q.ot(s==null?q.b=P.akJ():s,b)}else if(typeof b=="number"&&(b&1073741823)===b){r=q.c return q.ot(r==null?q.c=P.akJ():r,b)}else return q.dV(0,b)}, dV:function(a,b){var s,r,q=this,p=q.d if(p==null)p=q.d=P.akJ() s=q.fd(b) r=p[s] if(r==null)p[s]=[q.xo(b)] else{if(q.eR(r,b)>=0)return!1 r.push(q.xo(b))}return!0}, u:function(a,b){var s=this if(typeof b=="string"&&b!=="__proto__")return s.jr(s.b,b) else if(typeof b=="number"&&(b&1073741823)===b)return s.jr(s.c,b) else return s.iD(0,b)}, iD:function(a,b){var s,r,q,p,o=this,n=o.d if(n==null)return!1 s=o.fd(b) r=n[s] q=o.eR(r,b) if(q<0)return!1 p=r.splice(q,1)[0] if(0===r.length)delete n[s] o.FI(p) return!0}, ZT:function(a,b){var s,r,q,p,o=this,n=o.e for(;n!=null;n=r){s=n.a r=n.b q=o.r p=a.$1(s) if(q!==o.r)throw H.a(P.bp(o)) if(!0===p)o.u(0,s)}}, az:function(a){var s=this if(s.a>0){s.b=s.c=s.d=s.e=s.f=null s.a=0 s.xn()}}, ot:function(a,b){if(a[b]!=null)return!1 a[b]=this.xo(b) return!0}, jr:function(a,b){var s if(a==null)return!1 s=a[b] if(s==null)return!1 this.FI(s) delete a[b] return!0}, xn:function(){this.r=this.r+1&1073741823}, xo:function(a){var s,r=this,q=new P.abr(a) if(r.e==null)r.e=r.f=q else{s=r.f s.toString q.c=s r.f=s.b=q}++r.a r.xn() return q}, FI:function(a){var s=this,r=a.c,q=a.b if(r==null)s.e=q else r.b=q if(q==null)s.f=r else q.c=r;--s.a s.xn()}, fd:function(a){return J.a3(a)&1073741823}, eR:function(a,b){var s,r if(a==null)return-1 s=a.length for(r=0;r>")),this.c,s.h("@<1>").a3(s.h("c7<1>")).h("cE<1,2>"));s.q();)if(J.d(s.gw(s),b))return!0 return!1}, K:function(a,b){var s for(s=this.$ti,s=new P.cE(this,H.b([],s.h("o>")),this.c,s.h("@<1>").a3(s.h("c7<1>")).h("cE<1,2>"));s.q();)b.$1(s.gw(s))}, h7:function(a){return P.iM(this,this.$ti.c)}, gl:function(a){var s,r=this.$ti,q=new P.cE(this,H.b([],r.h("o>")),this.c,r.h("@<1>").a3(r.h("c7<1>")).h("cE<1,2>")) for(s=0;q.q();)++s return s}, gO:function(a){var s=this.$ti return!new P.cE(this,H.b([],s.h("o>")),this.c,s.h("@<1>").a3(s.h("c7<1>")).h("cE<1,2>")).q()}, gaV:function(a){return this.d!=null}, hF:function(a,b){return H.a6Q(this,b,this.$ti.c)}, fb:function(a,b){return H.a5X(this,b,this.$ti.c)}, gI:function(a){var s=this.$ti,r=new P.cE(this,H.b([],s.h("o>")),this.c,s.h("@<1>").a3(s.h("c7<1>")).h("cE<1,2>")) if(!r.q())throw H.a(H.bR()) return r.gw(r)}, gL:function(a){var s,r=this.$ti,q=new P.cE(this,H.b([],r.h("o>")),this.c,r.h("@<1>").a3(r.h("c7<1>")).h("cE<1,2>")) if(!q.q())throw H.a(H.bR()) do s=q.gw(q) while(q.q()) return s}, b0:function(a,b){var s,r,q,p=this,o="index" H.e3(b,o,t.S) P.cV(b,o) for(s=p.$ti,s=new P.cE(p,H.b([],s.h("o>")),p.c,s.h("@<1>").a3(s.h("c7<1>")).h("cE<1,2>")),r=0;s.q();){q=s.gw(s) if(b===r)return q;++r}throw H.a(P.bY(b,p,o,null,r))}, j:function(a){return P.ajI(this,"(",")")}} P.wi.prototype={} P.a_i.prototype={ $2:function(a,b){this.a.n(0,this.b.a(a),this.c.a(b))}, $S:48} P.a7.prototype={ C:function(a,b){return b instanceof P.nm&&this===b.a}, gM:function(a){var s=this return new P.tH(s,s.a,s.c,s.$ti.h("tH<1>"))}, gl:function(a){return this.b}, gI:function(a){var s if(this.b===0)throw H.a(P.a4("No such element")) s=this.c s.toString return s}, gL:function(a){var s if(this.b===0)throw H.a(P.a4("No such element")) s=this.c.c s.toString return s}, K:function(a,b){var s,r,q=this,p=q.a if(q.b===0)return s=q.c s.toString r=s do{b.$1(r) if(p!==q.a)throw H.a(P.bp(q)) s=r.b s.toString if(s!==q.c){r=s continue}else break}while(!0)}, gO:function(a){return this.b===0}, bQ:function(a,b,c){var s,r,q=this if(b.a!=null)throw H.a(P.a4("LinkedListEntry is already in a LinkedList"));++q.a b.a=q s=q.b if(s===0){b.b=b q.c=b.c=b q.b=s+1 return}r=a.c r.toString b.c=r b.b=a a.c=r.b=b q.b=s+1}} P.tH.prototype={ gw:function(a){return this.c}, q:function(){var s=this,r=s.a if(s.b!==r.a)throw H.a(P.bp(s)) if(r.b!==0)r=s.e&&s.d==r.gI(r) else r=!0 if(r){s.c=null return!1}s.e=!0 r=s.d s.c=r s.d=r.b return!0}} P.nm.prototype={} P.wB.prototype={$iM:1,$il:1,$iv:1} P.J.prototype={ gM:function(a){return new H.bj(a,this.gl(a),H.bv(a).h("bj"))}, b0:function(a,b){return this.i(a,b)}, K:function(a,b){var s,r=this.gl(a) for(s=0;s=0;--s){r=this.i(a,s) if(b.$1(r))return r if(q!==this.gl(a))throw H.a(P.bp(a))}if(c!=null)return c.$0() throw H.a(H.bR())}, bI:function(a,b){var s if(this.gl(a)===0)return"" s=P.JP("",a,b) return s.charCodeAt(0)==0?s:s}, dn:function(a,b,c){return new H.Z(a,b,H.bv(a).h("@").a3(c).h("Z<1,2>"))}, fp:function(a,b){return this.dn(a,b,t.z)}, Bc:function(a,b,c){var s,r,q=this.gl(a) for(s=b,r=0;r").a3(b).h("cm<1,2>"))}, em:function(a){var s,r=this if(r.gl(a)===0)throw H.a(H.bR()) s=r.i(a,r.gl(a)-1) r.sl(a,r.gl(a)-1) return s}, d5:function(a,b){H.apF(a,b==null?P.aEZ():b)}, U:function(a,b){var s=P.an(a,!0,H.bv(a).h("J.E")) C.b.J(s,b) return s}, c2:function(a,b,c){var s=this.gl(a) if(s==null)throw H.a("!") P.dF(b,s,s) return P.bk(this.r3(a,b,s),!0,H.bv(a).h("J.E"))}, fc:function(a,b){return this.c2(a,b,null)}, r3:function(a,b,c){P.dF(b,c,this.gl(a)) return H.eJ(a,b,c,H.bv(a).h("J.E"))}, fu:function(a,b,c){P.dF(b,c,this.gl(a)) if(c>b)this.FD(a,b,c)}, aa3:function(a,b,c,d){var s P.dF(b,c,this.gl(a)) for(s=b;s").b(d)){r=e q=d}else{p=J.up(d,e) q=p.e9(p,!1) r=0}p=J.ag(q) if(r+s>p.gl(q))throw H.a(H.aop()) if(r=0;--o)this.n(a,b+o,p.i(q,r+o)) else for(o=0;o"))}, ic:function(a,b,c,d){var s,r,q,p=P.y(c,d) for(s=J.as(this.gaj(a));s.q();){r=s.gw(s) q=b.$2(r,this.i(a,r)) p.n(0,q.gdN(q),q.gm(q))}return p}, fp:function(a,b){return this.ic(a,b,t.z,t.z)}, adG:function(a,b){var s,r,q,p=H.b([],H.bv(a).h("o")) for(s=J.as(this.gaj(a));s.q();){r=s.gw(s) if(b.$2(r,this.i(a,r)))p.push(r)}for(s=p.length,q=0;q").a3(s.h("aC.V")).h("AJ<1,2>"))}, j:function(a){return P.Gw(a)}, $iW:1} P.a_q.prototype={ $1:function(a){var s=this.a,r=H.bv(s) return new P.bm(a,J.aS(s,a),r.h("@").a3(r.h("aC.V")).h("bm<1,2>"))}, $S:function(){return H.bv(this.a).h("bm(aC.K)")}} P.AJ.prototype={ gl:function(a){return J.bQ(this.a)}, gO:function(a){return J.fX(this.a)}, gaV:function(a){return J.mm(this.a)}, gI:function(a){var s=this.a,r=J.k(s) return r.i(s,J.CX(r.gaj(s)))}, gL:function(a){var s=this.a,r=J.k(s) return r.i(s,J.CY(r.gaj(s)))}, gM:function(a){var s=this.a,r=this.$ti return new P.Ny(J.as(J.St(s)),s,r.h("@<1>").a3(r.Q[1]).h("Ny<1,2>"))}} P.Ny.prototype={ q:function(){var s=this,r=s.a if(r.q()){s.c=J.aS(s.b,r.gw(r)) return!0}s.c=null return!1}, gw:function(a){return this.c}} P.BY.prototype={ n:function(a,b,c){throw H.a(P.F("Cannot modify unmodifiable map"))}, u:function(a,b){throw H.a(P.F("Cannot modify unmodifiable map"))}, bX:function(a,b,c){throw H.a(P.F("Cannot modify unmodifiable map"))}} P.qg.prototype={ hY:function(a,b,c){var s=this.a return s.hY(s,b,c)}, i:function(a,b){return this.a.i(0,b)}, n:function(a,b,c){this.a.n(0,b,c)}, bX:function(a,b,c){return this.a.bX(0,b,c)}, am:function(a,b){return this.a.am(0,b)}, K:function(a,b){this.a.K(0,b)}, gO:function(a){var s=this.a return s.gO(s)}, gaV:function(a){var s=this.a return s.gaV(s)}, gl:function(a){var s=this.a return s.gl(s)}, gaj:function(a){var s=this.a return s.gaj(s)}, u:function(a,b){return this.a.u(0,b)}, j:function(a){var s=this.a return s.j(s)}, gaZ:function(a){var s=this.a return s.gaZ(s)}, gh_:function(a){var s=this.a return s.gh_(s)}, ic:function(a,b,c,d){var s=this.a return s.ic(s,b,c,d)}, fp:function(a,b){return this.ic(a,b,t.z,t.z)}, $iW:1} P.kl.prototype={ hY:function(a,b,c){var s=this.a return new P.kl(s.hY(s,b,c),b.h("@<0>").a3(c).h("kl<1,2>"))}} P.ih.prototype={ a2L:function(a,b){var s=this s.b=b s.a=a if(a!=null)a.b=H.u(s).h("ih.0").a(s) if(b!=null)b.a=H.u(s).h("ih.0").a(s)}, zt:function(){var s,r=this,q=r.a if(q!=null)q.b=r.b s=r.b if(s!=null)s.a=q r.a=r.b=null}} P.f0.prototype={ c4:function(a){this.zt() return this.gkV()}} P.kr.prototype={ gkV:function(){return this.c}} P.zZ.prototype={ IE:function(a){this.f=null this.zt() return this.gkV()}, c4:function(a){var s=this,r=s.f if(r!=null)--r.b s.f=null s.zt() return s.gkV()}, Fb:function(){return this}} P.oB.prototype={ Fb:function(){return null}, IE:function(a){throw H.a(H.bR())}, gkV:function(){throw H.a(H.bR())}} P.vD.prototype={ gl4:function(){var s=this,r=s.a if(r===$){r=new P.oB(s,null,s.$ti.h("oB<1>")) r.a=r s.a=r.b=r}return r}, gl:function(a){return this.b}, zP:function(a){var s=this.gl4() new P.zZ(s.f,a,H.u(s).h("zZ<1>")).a2L(s,s.b);++this.b}, gI:function(a){return this.gl4().b.gkV()}, gL:function(a){return this.gl4().a.gkV()}, gO:function(a){return this.gl4().b==this.gl4()}, gM:function(a){var s=this.gl4() return new P.Mk(s,s.b,this.$ti.h("Mk<1>"))}, j:function(a){return P.wj(this,"{","}")}, $iM:1} P.Mk.prototype={ q:function(){var s=this,r=s.b,q=s.a if(r==q){s.a=s.b=s.c=null return!1}s.$ti.h("kr<1>").a(r) q=q.f if(q!=r.f)throw H.a(P.bp(q)) s.c=r.gkV() s.b=r.b return!0}, gw:function(a){return this.c}} P.wC.prototype={ gM:function(a){var s=this return new P.Nt(s,s.c,s.d,s.b,s.$ti.h("Nt<1>"))}, K:function(a,b){var s,r=this,q=r.d for(s=r.b;s!==r.c;s=(s+1&r.a.length-1)>>>0){b.$1(r.a[s]) if(q!==r.d)H.e(P.bp(r))}}, gO:function(a){return this.b===this.c}, gl:function(a){return(this.c-this.b&this.a.length-1)>>>0}, gI:function(a){var s=this.b if(s===this.c)throw H.a(H.bR()) return this.a[s]}, gL:function(a){var s=this.b,r=this.c if(s===r)throw H.a(H.bR()) s=this.a return s[(r-1&s.length-1)>>>0]}, b0:function(a,b){var s P.aAf(b,this,null,null) s=this.a return s[(this.b+b&s.length-1)>>>0]}, e9:function(a,b){var s,r,q,p,o=this,n=o.a.length-1,m=(o.c-o.b&n)>>>0 if(m===0){s=o.$ti.c return b?J.wm(0,s):J.G8(0,s)}r=P.b6(m,o.gI(o),b,o.$ti.c) for(s=o.a,q=o.b,p=0;p>>0] return r}, f7:function(a){return this.e9(a,!0)}, J:function(a,b){var s,r,q,p,o,n,m,l,k=this,j=k.$ti if(j.h("v<1>").b(b)){s=b.length r=k.gl(k) q=r+s p=k.a o=p.length if(q>=o){n=P.b6(P.aoA(q+(q>>>1)),null,!1,j.h("1?")) k.c=k.a6R(n) k.a=n k.b=0 C.b.b3(n,r,q,b,0) k.c+=s}else{j=k.c m=o-j if(s>>0)s[p]=null q.b=q.c=0;++q.d}}, j:function(a){return P.wj(this,"{","}")}, zP:function(a){var s=this,r=s.b,q=s.a r=s.b=(r-1&q.length-1)>>>0 q[r]=a if(r===s.c)s.FH();++s.d}, lJ:function(){var s,r,q=this,p=q.b if(p===q.c)throw H.a(H.bR());++q.d s=q.a r=s[p] s[p]=null q.b=(p+1&s.length-1)>>>0 return r}, em:function(a){var s,r=this,q=r.b,p=r.c if(q===p)throw H.a(H.bR());++r.d q=r.a p=r.c=(p-1&q.length-1)>>>0 s=q[p] q[p]=null return s}, dV:function(a,b){var s=this,r=s.a,q=s.c r[q]=b r=(q+1&r.length-1)>>>0 s.c=r if(s.b===r)s.FH();++s.d}, FH:function(){var s=this,r=P.b6(s.a.length*2,null,!1,s.$ti.h("1?")),q=s.a,p=s.b,o=q.length-p C.b.b3(r,0,o,q,p) C.b.b3(r,o,o+s.b,s.a,0) s.b=0 s.c=s.a.length s.a=r}, a6R:function(a){var s,r,q=this,p=q.b,o=q.c,n=q.a if(p<=o){s=o-p C.b.b3(a,0,s,n,p) return s}else{r=n.length-p C.b.b3(a,0,r,n,p) C.b.b3(a,r,r+q.c,q.a,0) return q.c+r}}} P.Nt.prototype={ gw:function(a){return this.e}, q:function(){var s,r=this,q=r.a if(r.c!==q.d)H.e(P.bp(q)) s=r.d if(s===r.b){r.e=null return!1}q=q.a r.e=q[s] r.d=(s+1&q.length-1)>>>0 return!0}} P.cQ.prototype={ gO:function(a){return this.gl(this)===0}, gaV:function(a){return this.gl(this)!==0}, J:function(a,b){var s for(s=J.as(b);s.q();)this.B(0,s.gw(s))}, adB:function(a){var s,r for(s=a.length,r=0;r").a3(c).h("mN<1,2>"))}, fp:function(a,b){return this.dn(a,b,t.z)}, j:function(a){return P.wj(this,"{","}")}, K:function(a,b){var s for(s=this.gM(this);s.q();)b.$1(s.gw(s))}, hX:function(a,b){var s for(s=this.gM(this);s.q();)if(b.$1(s.gw(s)))return!0 return!1}, hF:function(a,b){return H.a6Q(this,b,H.u(this).h("cQ.E"))}, fb:function(a,b){return H.a5X(this,b,H.u(this).h("cQ.E"))}, gI:function(a){var s=this.gM(this) if(!s.q())throw H.a(H.bR()) return s.gw(s)}, gL:function(a){var s,r=this.gM(this) if(!r.q())throw H.a(H.bR()) do s=r.gw(r) while(r.q()) return s}, b0:function(a,b){var s,r,q,p="index" H.e3(b,p,t.S) P.cV(b,p) for(s=this.gM(this),r=0;s.q();){q=s.gw(s) if(b===r)return q;++r}throw H.a(P.bY(b,this,p,null,r))}} P.oL.prototype={ n1:function(a){var s,r,q=this.oP() for(s=this.gM(this);s.q();){r=s.gw(s) if(!a.C(0,r))q.B(0,r)}return q}, BB:function(a,b){var s,r,q=this.oP() for(s=this.gM(this);s.q();){r=s.gw(s) if(b.C(0,r))q.B(0,r)}return q}, h7:function(a){var s=this.oP() s.J(0,this) return s}, $iM:1, $il:1, $id3:1} P.QU.prototype={ B:function(a,b){P.aqK() return H.j(u.V)}, u:function(a,b){P.aqK() return H.j(u.V)}} P.fg.prototype={ oP:function(){return P.jP(this.$ti.c)}, C:function(a,b){return J.fW(this.a,b)}, gM:function(a){return J.as(J.St(this.a))}, gl:function(a){return J.bQ(this.a)}} P.PM.prototype={ gdN:function(a){return this.a}} P.c7.prototype={} P.e1.prototype={ a4r:function(a){var s=this,r=s.$ti r=new P.e1(a,s.a,r.h("@<1>").a3(r.Q[1]).h("e1<1,2>")) r.b=s.b r.c=s.c return r}, j:function(a){return"MapEntry("+H.c(this.a)+": "+H.c(this.d)+")"}, $ibm:1, gm:function(a){return this.d}} P.PL.prototype={ hl:function(a){var s,r,q,p,o,n,m,l,k,j,i,h=this,g=null,f=h.gd6() if(f==null){h.xr(a,a) return-1}s=h.gxq() for(r=g,q=f,p=r,o=p,n=o,m=n;!0;){r=s.$2(q.a,a) if(r>0){l=q.b if(l==null)break r=s.$2(l.a,a) if(r>0){q.b=l.c l.c=q k=l.b if(k==null){q=l break}q=l l=k}if(m==null)n=q else m.b=q m=q q=l}else{if(r<0){j=q.c if(j==null)break r=s.$2(j.a,a) if(r<0){q.c=j.b j.b=q i=j.c if(i==null){q=j break}q=j j=i}if(o==null)p=q else o.c=q}else break o=q q=j}}if(o!=null){o.c=q.b q.b=p}if(m!=null){m.b=q.c q.c=n}if(h.gd6()!==q){h.sd6(q);++h.c}return r}, a5q:function(a){var s,r,q=a.b for(s=a;q!=null;s=q,q=r){s.b=q.c q.c=s r=q.b}return s}, Jv:function(a){var s,r,q=a.c for(s=a;q!=null;s=q,q=r){s.c=q.b q.b=s r=q.c}return s}, iD:function(a,b){var s,r,q,p,o=this if(o.gd6()==null)return null if(o.hl(b)!==0)return null s=o.gd6() r=s.b;--o.a q=s.c if(r==null)o.sd6(q) else{p=o.Jv(r) p.c=q o.sd6(p)}++o.b return s}, x_:function(a,b){var s,r=this;++r.a;++r.b s=r.gd6() if(s==null){r.sd6(a) return}if(b<0){a.b=s a.c=s.c s.c=null}else{a.c=s a.b=s.b s.b=null}r.sd6(a)}, gGB:function(){var s=this,r=s.gd6() if(r==null)return null s.sd6(s.a5q(r)) return s.gd6()}, gHH:function(){var s=this,r=s.gd6() if(r==null)return null s.sd6(s.Jv(r)) return s.gd6()}, mg:function(a){return this.zF(a)&&this.hl(a)===0}, xr:function(a,b){return this.gxq().$2(a,b)}, zF:function(a){return this.gaeE().$1(a)}} P.yD.prototype={ i:function(a,b){var s=this if(!s.f.$1(b))return null if(s.d!=null)if(s.hl(b)===0)return s.d.d return null}, u:function(a,b){var s if(!this.f.$1(b))return null s=this.iD(0,b) if(s!=null)return s.d return null}, n:function(a,b,c){var s,r=this,q=r.hl(b) if(q===0){r.d=r.d.a4r(c);++r.c return}s=r.$ti r.x_(new P.e1(c,b,s.h("@<1>").a3(s.Q[1]).h("e1<1,2>")),q)}, bX:function(a,b,c){var s,r,q,p,o=this,n=o.hl(b) if(n===0)return o.d.d s=o.b r=o.c q=c.$0() if(s!==o.b)throw H.a(P.bp(o)) if(r!==o.c)n=o.hl(b) p=o.$ti o.x_(new P.e1(q,b,p.h("@<1>").a3(p.Q[1]).h("e1<1,2>")),n) return q}, gO:function(a){return this.d==null}, gaV:function(a){return this.d!=null}, K:function(a,b){var s,r,q=this.$ti q=q.h("@<1>").a3(q.Q[1]) s=new P.oM(this,H.b([],q.h("o>")),this.c,q.h("oM<1,2>")) for(;s.q();){r=s.gw(s) b.$2(r.gdN(r),r.gm(r))}}, gl:function(a){return this.a}, am:function(a,b){return this.mg(b)}, gaj:function(a){var s=this.$ti return new P.ky(this,s.h("@<1>").a3(s.h("e1<1,2>")).h("ky<1,2>"))}, gaZ:function(a){var s=this.$ti return new P.oN(this,s.h("@<1>").a3(s.Q[1]).h("oN<1,2>"))}, gh_:function(a){var s=this.$ti return new P.Bw(this,s.h("@<1>").a3(s.Q[1]).h("Bw<1,2>"))}, aa9:function(){if(this.d==null)return null return this.gGB().a}, NK:function(){if(this.d==null)return null return this.gHH().a}, abI:function(a){var s,r,q,p=this if(a==null)throw H.a(P.bc(a)) if(p.d==null)return null if(p.hl(a)<0)return p.d.a s=p.d.b if(s==null)return null r=s.c for(;r!=null;s=r,r=q)q=r.c return s.a}, aaa:function(a){var s,r,q,p=this if(a==null)throw H.a(P.bc(a)) if(p.d==null)return null if(p.hl(a)>0)return p.d.a s=p.d.c if(s==null)return null r=s.b for(;r!=null;s=r,r=q)q=r.b return s.a}, $iW:1, xr:function(a,b){return this.e.$2(a,b)}, zF:function(a){return this.f.$1(a)}, gd6:function(){return this.d}, gxq:function(){return this.e}, sd6:function(a){return this.d=a}} P.a69.prototype={ $1:function(a){return this.a.b(a)}, $S:50} P.u3.prototype={ gw:function(a){var s=this.b if(s.length===0)return null return this.ye(C.b.gL(s))}, q:function(){var s,r,q=this,p=q.c,o=q.a,n=o.b if(p!==n){if(p==null){q.c=n s=o.gd6() for(p=q.b;s!=null;){p.push(s) s=s.b}return p.length!==0}throw H.a(P.bp(o))}p=q.b if(p.length===0)return!1 if(q.d!==o.c){n=C.b.gL(p).a C.b.sl(p,0) o.hl(n) n=o.gd6() n.toString p.push(n) q.d=o.c}s=C.b.gL(p) r=s.c if(r!=null){for(;r!=null;){p.push(r) r=r.b}return!0}p.pop() while(!0){if(!(p.length!==0&&C.b.gL(p).c==s))break s=p.pop()}return p.length!==0}} P.ky.prototype={ gl:function(a){return this.a.a}, gO:function(a){return this.a.a===0}, gM:function(a){var s=this.a,r=this.$ti return new P.cE(s,H.b([],r.h("o<2>")),s.c,r.h("@<1>").a3(r.Q[1]).h("cE<1,2>"))}, C:function(a,b){return this.a.mg(b)}, h7:function(a){var s=this.a,r=this.$ti,q=P.a6a(s.e,s.f,r.c) q.a=s.a q.d=q.FX(s.d,r.Q[1]) return q}} P.oN.prototype={ gl:function(a){return this.a.a}, gO:function(a){return this.a.a===0}, gM:function(a){var s=this.a,r=this.$ti r=r.h("@<1>").a3(r.Q[1]) return new P.BA(s,H.b([],r.h("o>")),s.c,r.h("BA<1,2>"))}} P.Bw.prototype={ gl:function(a){return this.a.a}, gO:function(a){return this.a.a===0}, gM:function(a){var s=this.a,r=this.$ti r=r.h("@<1>").a3(r.Q[1]) return new P.oM(s,H.b([],r.h("o>")),s.c,r.h("oM<1,2>"))}} P.cE.prototype={ ye:function(a){return a.a}} P.BA.prototype={ ye:function(a){return a.d}} P.oM.prototype={ ye:function(a){return a}} P.ry.prototype={ gM:function(a){var s=this.$ti return new P.cE(this,H.b([],s.h("o>")),this.c,s.h("@<1>").a3(s.h("c7<1>")).h("cE<1,2>"))}, gl:function(a){return this.a}, gO:function(a){return this.d==null}, gaV:function(a){return this.d!=null}, gI:function(a){if(this.a===0)throw H.a(H.bR()) return this.gGB().a}, gL:function(a){if(this.a===0)throw H.a(H.bR()) return this.gHH().a}, C:function(a,b){return this.f.$1(b)&&this.hl(this.$ti.c.a(b))===0}, B:function(a,b){return this.dV(0,b)}, dV:function(a,b){var s=this.hl(b) if(s===0)return!1 this.x_(new P.c7(b,this.$ti.h("c7<1>")),s) return!0}, u:function(a,b){if(!this.f.$1(b))return!1 return this.iD(0,this.$ti.c.a(b))!=null}, BB:function(a,b){var s,r=this,q=r.$ti,p=P.a6a(r.e,r.f,q.c) for(q=new P.cE(r,H.b([],q.h("o>")),r.c,q.h("@<1>").a3(q.h("c7<1>")).h("cE<1,2>"));q.q();){s=q.gw(q) if(b.C(0,s))p.dV(0,s)}return p}, n1:function(a){var s,r=this,q=r.$ti,p=P.a6a(r.e,r.f,q.c) for(q=new P.cE(r,H.b([],q.h("o>")),r.c,q.h("@<1>").a3(q.h("c7<1>")).h("cE<1,2>"));q.q();){s=q.gw(q) if(!a.C(0,s))p.dV(0,s)}return p}, FX:function(a,b){var s if(a==null)return null s=new P.c7(a.a,this.$ti.h("c7<1>")) new P.a6b(this,b).$2(a,s) return s}, h7:function(a){var s=this,r=s.$ti,q=P.a6a(s.e,s.f,r.c) q.a=s.a q.d=s.FX(s.d,r.h("c7<1>")) return q}, j:function(a){return P.wj(this,"{","}")}, $iM:1, $il:1, $id3:1, xr:function(a,b){return this.e.$2(a,b)}, zF:function(a){return this.f.$1(a)}, gd6:function(){return this.d}, gxq:function(){return this.e}, sd6:function(a){return this.d=a}} P.a6c.prototype={ $1:function(a){return this.a.b(a)}, $S:50} P.a6b.prototype={ $2:function(a,b){var s,r,q,p,o,n=this.a.$ti.h("c7<1>") do{s=a.b r=a.c if(s!=null){q=new P.c7(s.a,n) b.b=q this.$2(s,q)}p=r!=null if(p){o=new P.c7(r.a,n) b.c=o b=o a=r}}while(p)}, $S:function(){return this.a.$ti.a3(this.b).h("~(1,c7<2>)")}} P.AG.prototype={} P.Bx.prototype={} P.By.prototype={} P.Bz.prototype={} P.BZ.prototype={} P.Co.prototype={} P.Cs.prototype={} P.Nl.prototype={ i:function(a,b){var s,r=this.b if(r==null)return this.c.i(0,b) else if(typeof b!="string")return null else{s=r[b] return typeof s=="undefined"?this.a40(b):s}}, gl:function(a){var s if(this.b==null){s=this.c s=s.gl(s)}else s=this.mh().length return s}, gO:function(a){return this.gl(this)===0}, gaV:function(a){return this.gl(this)>0}, gaj:function(a){var s if(this.b==null){s=this.c return s.gaj(s)}return new P.Nm(this)}, gaZ:function(a){var s,r=this if(r.b==null){s=r.c return s.gaZ(s)}return H.jT(r.mh(),new P.abi(r),t.N,t.z)}, n:function(a,b,c){var s,r,q=this if(q.b==null)q.c.n(0,b,c) else if(q.am(0,b)){s=q.b s[b]=c r=q.a if(r==null?s!=null:r!==s)r[b]=null}else q.Ky().n(0,b,c)}, am:function(a,b){if(this.b==null)return this.c.am(0,b) if(typeof b!="string")return!1 return Object.prototype.hasOwnProperty.call(this.a,b)}, bX:function(a,b,c){var s if(this.am(0,b))return this.i(0,b) s=c.$0() this.n(0,b,s) return s}, u:function(a,b){if(this.b!=null&&!this.am(0,b))return null return this.Ky().u(0,b)}, K:function(a,b){var s,r,q,p,o=this if(o.b==null)return o.c.K(0,b) s=o.mh() for(r=0;r"))}return s}, C:function(a,b){return this.a.am(0,b)}} P.a7M.prototype={ $0:function(){var s,r try{s=new TextDecoder("utf-8",{fatal:true}) return s}catch(r){H.U(r)}return null}, $S:42} P.a7L.prototype={ $0:function(){var s,r try{s=new TextDecoder("utf-8",{fatal:false}) return s}catch(r){H.U(r)}return null}, $S:42} P.Dd.prototype={ gar:function(a){return"us-ascii"}, d1:function(a){return C.iS.c6(a)}, c7:function(a,b){var s=C.mZ.c6(b) return s}, gfY:function(){return C.iS}} P.afq.prototype={ c6:function(a){var s,r,q,p,o,n,m=P.dF(0,null,a.length) if(m==null)throw H.a(P.cN("Invalid range")) s=m-0 r=new Uint8Array(s) for(q=~this.a,p=J.cj(a),o=0;o=0){h=C.c.al(u.U,g) if(h===j)continue j=h}else{if(g===-1){if(n<0){f=o==null?null:o.a.length if(f==null)f=0 n=f+(q-p) m=q}++l if(j===61)continue}j=h}if(g!==-2){if(o==null){o=new P.c6("") f=o}else f=o f.a+=C.c.V(b,p,q) f.a+=H.bH(j) p=k continue}}throw H.a(P.bx("Invalid base64 data",b,q))}if(o!=null){r=o.a+=r.V(b,p,a1) f=r.length if(n>=0)P.anm(b,m,a1,n,l,f) else{e=C.f.ea(f-1,4)+1 if(e===1)throw H.a(P.bx(c,b,a1)) for(;e<4;){r+="=" o.a=r;++e}}r=o.a return C.c.ky(b,a0,a1,r.charCodeAt(0)==0?r:r)}d=a1-a0 if(n>=0)P.anm(b,m,a1,n,l,d) else{e=C.f.ea(d,4) if(e===1)throw H.a(P.bx(c,b,a1)) if(e>1)b=r.ky(b,a1,a1,e===2?"==":"=")}return b}} P.T0.prototype={ c6:function(a){var s=a.length if(s===0)return"" s=new P.a8P(u.U).a9s(a,0,s,!0) s.toString return P.kf(s,0,null)}} P.a8P.prototype={ a9s:function(a,b,c,d){var s,r=this.a,q=(r&3)+(c-b),p=C.f.cr(q,3),o=p*4 if(q-p*3>0)o+=4 s=new Uint8Array(o) this.a=P.aBS(this.b,a,b,c,!0,s,0,r) if(o>0)return s return null}} P.TC.prototype={} P.TD.prototype={} P.Lo.prototype={ B:function(a,b){var s,r,q=this,p=q.b,o=q.c,n=J.ag(b) if(n.gl(b)>p.length-o){p=q.b s=n.gl(b)+p.length-1 s|=C.f.ew(s,1) s|=s>>>2 s|=s>>>4 s|=s>>>8 r=new Uint8Array((((s|s>>>16)>>>0)+1)*2) p=q.b C.a0.cV(r,0,p.length,p) q.b=r}p=q.b o=q.c C.a0.cV(p,o,o+n.gl(b),b) q.c=q.c+n.gl(b)}, aT:function(a){this.a.$1(C.a0.c2(this.b,0,this.c))}} P.DL.prototype={} P.Eo.prototype={ d1:function(a){return this.gfY().c6(a)}} P.Et.prototype={} P.mP.prototype={} P.wq.prototype={ j:function(a){var s=P.mS(this.a) return(this.b!=null?"Converting object to an encodable object failed:":"Converting object did not return an encodable object:")+" "+s}} P.Gc.prototype={ j:function(a){return"Cyclic error in JSON stringify"}} P.ZL.prototype={ M1:function(a,b,c){var s=P.arB(b,this.ga8T().a) return s}, c7:function(a,b){return this.M1(a,b,null)}, a9r:function(a,b){if(b==null)b=null if(b==null)return P.aqn(a,this.gfY().b,null) return P.aqn(a,b,null)}, d1:function(a){return this.a9r(a,null)}, gfY:function(){return C.ri}, ga8T:function(){return C.rh}} P.ZN.prototype={ c6:function(a){var s,r=new P.c6(""),q=P.aqm(r,this.b) q.qR(a) s=r.a return s.charCodeAt(0)==0?s:s}} P.ZM.prototype={ c6:function(a){return P.arB(a,this.a)}} P.abk.prototype={ Ps:function(a){var s,r,q,p,o,n,m,l=a.length for(s=J.cj(a),r=this.c,q=0,p=0;p92){if(o>=55296){n=o&64512 if(n===55296){m=p+1 m=!(m=0&&(C.c.al(a,n)&64512)===55296)}else n=!1 else n=!0 if(n){if(p>q)r.a+=C.c.V(a,q,p) q=p+1 r.a+=H.bH(92) r.a+=H.bH(117) r.a+=H.bH(100) n=o>>>8&15 r.a+=H.bH(n<10?48+n:87+n) n=o>>>4&15 r.a+=H.bH(n<10?48+n:87+n) n=o&15 r.a+=H.bH(n<10?48+n:87+n)}}continue}if(o<32){if(p>q)r.a+=C.c.V(a,q,p) q=p+1 r.a+=H.bH(92) switch(o){case 8:r.a+=H.bH(98) break case 9:r.a+=H.bH(116) break case 10:r.a+=H.bH(110) break case 12:r.a+=H.bH(102) break case 13:r.a+=H.bH(114) break default:r.a+=H.bH(117) r.a+=H.bH(48) r.a+=H.bH(48) n=o>>>4&15 r.a+=H.bH(n<10?48+n:87+n) n=o&15 r.a+=H.bH(n<10?48+n:87+n) break}}else if(o===34||o===92){if(p>q)r.a+=C.c.V(a,q,p) q=p+1 r.a+=H.bH(92) r.a+=H.bH(o)}}if(q===0)r.a+=H.c(a) else if(q>>18|240 q=o.b=p+1 r[p]=s>>>12&63|128 p=o.b=q+1 r[q]=s>>>6&63|128 o.b=p+1 r[p]=s&63|128 return!0}else{o.zK() return!1}}, ZR:function(a,b,c){var s,r,q,p,o,n,m,l=this if(b!==c&&(C.c.al(a,c-1)&64512)===55296)--c for(s=l.c,r=s.length,q=b;q=r)break l.b=o+1 s[o]=p}else{o=p&64512 if(o===55296){if(l.b+4>r)break n=q+1 if(l.a6Q(p,C.c.W(a,n)))q=n}else if(o===56320){if(l.b+3>r)break l.zK()}else if(p<=2047){o=l.b m=o+1 if(m>=r)break l.b=m s[o]=p>>>6|192 l.b=m+1 s[m]=p&63|128}else{o=l.b if(o+2>=r)break m=l.b=o+1 s[o]=p>>>12|224 o=l.b=m+1 s[m]=p>>>6&63|128 l.b=o+1 s[o]=p&63|128}}}return q}} P.Ky.prototype={ c6:function(a){var s=this.a,r=P.aBC(s,a,0,null) if(r!=null)return r return new P.afU(s).a8m(a,0,null,!0)}} P.afU.prototype={ a8m:function(a,b,c,d){var s,r,q,p,o,n=this,m=P.dF(b,c,J.bQ(a)) if(b===m)return"" if(t.H3.b(a)){s=a r=0}else{s=P.aCP(a,b,m) m-=b r=b b=0}q=n.xy(s,b,m,!0) p=n.b if((p&1)!==0){o=P.aCQ(p) n.b=0 throw H.a(P.bx(o,a,r+n.c))}return q}, xy:function(a,b,c,d){var s,r,q=this if(c-b>1000){s=C.f.cr(b+c,2) r=q.xy(a,b,s,!1) if((q.b&1)!==0)return r return r+q.xy(a,s,c,d)}return q.a8R(a,b,c,d)}, a8R:function(a,b,c,d){var s,r,q,p,o,n,m,l=this,k=65533,j=l.b,i=l.c,h=new P.c6(""),g=b+1,f=a[b] $label0$0:for(s=l.a;!0;){for(;!0;g=p){r=C.c.W("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHIHHHJEEBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBKCCCCCCCCCCCCDCLONNNMEEEEEEEEEEE",f)&31 i=j<=32?f&61694>>>r:(f&63|i<<6)>>>0 j=C.c.W(" \x000:XECCCCCN:lDb \x000:XECCCCCNvlDb \x000:XECCCCCN:lDb AAAAA\x00\x00\x00\x00\x00AAAAA00000AAAAA:::::AAAAAGG000AAAAA00KKKAAAAAG::::AAAAA:IIIIAAAAA000\x800AAAAA\x00\x00\x00\x00 AAAAA",j+r) if(j===0){h.a+=H.bH(i) if(g===c)break $label0$0 break}else if((j&1)!==0){if(s)switch(j){case 69:case 67:h.a+=H.bH(k) break case 65:h.a+=H.bH(k);--g break default:q=h.a+=H.bH(k) h.a=q+H.bH(k) break}else{l.b=j l.c=g-1 return""}j=0}if(g===c)break $label0$0 p=g+1 f=a[g]}p=g+1 f=a[g] if(f<128){while(!0){if(!(p=128){o=n-1 p=n break}p=n}if(o-g<20)for(m=g;m32)if(s)h.a+=H.bH(k) else{l.b=77 l.c=c return""}l.b=j l.c=i s=h.a return s.charCodeAt(0)==0?s:s}} P.a0n.prototype={ $2:function(a,b){var s,r=this.b,q=this.a r.a+=q.a s=r.a+=H.c(a.a) r.a=s+": " r.a+=P.mS(b) q.a=", "}, $S:279} P.bi.prototype={} P.er.prototype={ B:function(a,b){return P.ayf(this.a+C.f.cr(b.a,1000),this.b)}, k:function(a,b){if(b==null)return!1 return b instanceof P.er&&this.a===b.a&&this.b===b.b}, bR:function(a,b){return C.f.bR(this.a,b.a)}, gt:function(a){var s=this.a return(s^C.f.ew(s,30))&1073741823}, j:function(a){var s=this,r=P.ayg(H.aA9(s)),q=P.EE(H.aA7(s)),p=P.EE(H.aA3(s)),o=P.EE(H.aA4(s)),n=P.EE(H.aA6(s)),m=P.EE(H.aA8(s)),l=P.ayh(H.aA5(s)) if(s.b)return r+"-"+q+"-"+p+" "+o+":"+n+":"+m+"."+l+"Z" else return r+"-"+q+"-"+p+" "+o+":"+n+":"+m+"."+l}, $ibi:1} P.aK.prototype={ U:function(a,b){return new P.aK(this.a+b.a)}, a5:function(a,b){return new P.aK(this.a-b.a)}, a4:function(a,b){return new P.aK(C.d.aO(this.a*b))}, k:function(a,b){if(b==null)return!1 return b instanceof P.aK&&this.a===b.a}, gt:function(a){return C.f.gt(this.a)}, bR:function(a,b){return C.f.bR(this.a,b.a)}, j:function(a){var s,r,q,p=new P.VW(),o=this.a if(o<0)return"-"+new P.aK(0-o).j(0) s=p.$1(C.f.cr(o,6e7)%60) r=p.$1(C.f.cr(o,1e6)%60) q=new P.VV().$1(o%1e6) return""+C.f.cr(o,36e8)+":"+H.c(s)+":"+H.c(r)+"."+H.c(q)}, $ibi:1} P.VV.prototype={ $1:function(a){if(a>=1e5)return""+a if(a>=1e4)return"0"+a if(a>=1000)return"00"+a if(a>=100)return"000"+a if(a>=10)return"0000"+a return"00000"+a}, $S:111} P.VW.prototype={ $1:function(a){if(a>=10)return""+a return"0"+a}, $S:111} P.bC.prototype={ go8:function(){return H.aB(this.$thrownJsError)}} P.mt.prototype={ j:function(a){var s=this.a if(s!=null)return"Assertion failed: "+P.mS(s) return"Assertion failed"}, gqf:function(a){return this.a}} P.Kl.prototype={} P.GV.prototype={ j:function(a){return"Throw of null."}} P.hx.prototype={ gxY:function(){return"Invalid argument"+(!this.a?"(s)":"")}, gxX:function(){return""}, j:function(a){var s,r,q=this,p=q.c,o=p==null?"":" ("+p+")",n=q.d,m=n==null?"":": "+H.c(n),l=q.gxY()+o+m if(!q.a)return l s=q.gxX() r=P.mS(q.b) return l+s+": "+r}, gar:function(a){return this.c}} P.qF.prototype={ gxY:function(){return"RangeError"}, gxX:function(){var s,r=this.e,q=this.f if(r==null)s=q!=null?": Not less than or equal to "+H.c(q):"" else if(q==null)s=": Not greater than or equal to "+H.c(r) else if(q>r)s=": Not in inclusive range "+H.c(r)+".."+H.c(q) else s=qd.length else s=!1 if(s)e=null if(e==null){if(d.length>78)d=C.c.V(d,0,75)+"..." return f+"\n"+d}for(r=1,q=0,p=!1,o=0;o1?f+(" (at line "+r+", character "+(e-q+1)+")\n"):f+(" (at character "+(e+1)+")\n") m=d.length for(o=e;o78)if(e-q<75){l=q+75 k=q j="" i="..."}else{if(m-e<75){k=m-75 l=m i=""}else{k=e-36 l=e+36 i="..."}j="..."}else{l=m k=q j="" i=""}h=C.c.V(d,k,l) return f+j+h+i+"\n"+C.c.a4(" ",e-k+j.length)+"^\n"}else return e!=null?f+(" (at offset "+H.c(e)+")"):f}, $icc:1, gqf:function(a){return this.a}, gwt:function(a){return this.b}, gbV:function(a){return this.c}} P.Fm.prototype={ i:function(a,b){var s,r,q=this.a if(typeof q!="string"){if(b!=null)s=typeof b=="number"||typeof b=="string" else s=!0 if(s)H.e(P.eq(b,"Expandos are not allowed on strings, numbers, booleans or null",null)) return q.get(b)}r=H.akf(b,"expando$values") q=r==null?null:H.akf(r,q) return this.$ti.h("1?").a(q)}, n:function(a,b,c){var s,r="expando$values",q=this.a if(typeof q!="string")q.set(b,c) else{s=H.akf(b,r) if(s==null){s=new P.z() H.apd(b,r,s)}H.apd(s,q,c)}}, j:function(a){return"Expando:null"}, gar:function(){return null}} P.l.prototype={ ue:function(a,b){return H.kY(this,H.u(this).h("l.E"),b)}, aak:function(a,b){var s=this,r=H.u(s) if(r.h("M").b(s))return H.ayO(s,b,r.h("l.E")) return new H.n0(s,b,r.h("n0"))}, dn:function(a,b,c){return H.jT(this,b,H.u(this).h("l.E"),c)}, fp:function(a,b){return this.dn(a,b,t.z)}, nT:function(a,b){return new H.aO(this,b,H.u(this).h("aO"))}, C:function(a,b){var s for(s=this.gM(this);s.q();)if(J.d(s.gw(s),b))return!0 return!1}, K:function(a,b){var s for(s=this.gM(this);s.q();)b.$1(s.gw(s))}, bI:function(a,b){var s,r=this.gM(this) if(!r.q())return"" if(b===""){s="" do s+=H.c(J.bB(r.gw(r))) while(r.q())}else{s=H.c(J.bB(r.gw(r))) for(;r.q();)s=s+b+H.c(J.bB(r.gw(r)))}return s.charCodeAt(0)==0?s:s}, hX:function(a,b){var s for(s=this.gM(this);s.q();)if(b.$1(s.gw(s)))return!0 return!1}, e9:function(a,b){return P.an(this,b,H.u(this).h("l.E"))}, f7:function(a){return this.e9(a,!0)}, h7:function(a){return P.Gp(this,H.u(this).h("l.E"))}, gl:function(a){var s,r=this.gM(this) for(s=0;r.q();)++s return s}, gO:function(a){return!this.gM(this).q()}, gaV:function(a){return!this.gO(this)}, hF:function(a,b){return H.a6Q(this,b,H.u(this).h("l.E"))}, fb:function(a,b){return H.a5X(this,b,H.u(this).h("l.E"))}, gI:function(a){var s=this.gM(this) if(!s.q())throw H.a(H.bR()) return s.gw(s)}, gL:function(a){var s,r=this.gM(this) if(!r.q())throw H.a(H.bR()) do s=r.gw(r) while(r.q()) return s}, gc5:function(a){var s,r=this.gM(this) if(!r.q())throw H.a(H.bR()) s=r.gw(r) if(r.q())throw H.a(H.aoq()) return s}, n9:function(a,b,c){var s,r for(s=this.gM(this);s.q();){r=s.gw(s) if(b.$1(r))return r}return c.$0()}, b0:function(a,b){var s,r,q P.cV(b,"index") for(s=this.gM(this),r=0;s.q();){q=s.gw(s) if(b===r)return q;++r}throw H.a(P.bY(b,this,"index",null,r))}, j:function(a){return P.ajI(this,"(",")")}} P.G7.prototype={} P.bm.prototype={ j:function(a){return"MapEntry("+H.c(this.a)+": "+H.c(this.b)+")"}, gdN:function(a){return this.a}, gm:function(a){return this.b}} P.a6.prototype={ gt:function(a){return P.z.prototype.gt.call(C.rf,this)}, j:function(a){return"null"}} P.z.prototype={constructor:P.z,$iz:1, k:function(a,b){return this===b}, gt:function(a){return H.di(this)}, j:function(a){return"Instance of '"+H.c(H.a1B(this))+"'"}, vs:function(a,b){throw H.a(P.aoR(this,b.gNU(),b.gOl(),b.gO2()))}, gcM:function(a){return H.E(this)}, toString:function(){return this.j(this)}} P.Je.prototype={} P.PX.prototype={ j:function(a){return""}, $ibA:1} P.JN.prototype={ ga9o:function(){var s,r=this.b if(r==null)r=$.HP.$0() s=r-this.a if($.aiC()===1e6)return s return s*1000}, rn:function(a){var s=this,r=s.b if(r!=null){s.a=s.a+($.HP.$0()-r) s.b=null}}, e7:function(a){var s=this.b this.a=s==null?$.HP.$0():s}} P.y9.prototype={ gM:function(a){return new P.a3K(this.a)}, gL:function(a){var s,r,q=this.a,p=q.length if(p===0)throw H.a(P.a4("No elements.")) s=C.c.al(q,p-1) if((s&64512)===56320&&p>1){r=C.c.al(q,p-2) if((r&64512)===55296)return P.ar8(r,s)}return s}} P.a3K.prototype={ gw:function(a){return this.d}, q:function(){var s,r,q,p=this,o=p.b=p.c,n=p.a,m=n.length if(o===m){p.d=-1 return!1}s=C.c.W(n,o) r=o+1 if((s&64512)===55296&&r4)this.a.$2("an IPv6 part can only contain a maximum of 4 hex digits",a) s=P.e5(C.c.V(this.b,a,b),16) if(s<0||s>65535)this.a.$2("each part must be in the range of `0x0..0xFFFF`",a) return s}, $S:271} P.C_.prototype={ gJO:function(){var s,r,q,p=this,o=p.x if(o===$){o=p.a s=o.length!==0?o+":":"" r=p.c q=r==null if(!q||o==="file"){o=s+"//" s=p.b if(s.length!==0)o=o+s+"@" if(!q)o+=r s=p.d if(s!=null)o=o+":"+H.c(s)}else o=s o+=p.e s=p.f if(s!=null)o=o+"?"+s s=p.r if(s!=null)o=o+"#"+s o=o.charCodeAt(0)==0?o:o if(p.x===$)p.x=o else o=H.e(H.bS("_text"))}return o}, gku:function(){var s,r=this,q=r.y if(q===$){s=r.e if(s.length!==0&&C.c.W(s,0)===47)s=C.c.bw(s,1) q=s.length===0?C.cq:P.aoC(new H.Z(H.b(s.split("/"),t.s),P.aF8(),t.cj),t.N) if(r.y===$)r.y=q else q=H.e(H.bS("pathSegments"))}return q}, gt:function(a){var s=this,r=s.z if(r===$){r=J.a3(s.gJO()) if(s.z===$)s.z=r else r=H.e(H.bS("hashCode"))}return r}, gqO:function(){return this.b}, ghy:function(a){var s=this.c if(s==null)return"" if(C.c.bv(s,"["))return C.c.V(s,1,s.length-1) return s}, glD:function(a){var s=this.d return s==null?P.aqN(this.a):s}, gim:function(a){var s=this.f return s==null?"":s}, guY:function(){var s=this.r return s==null?"":s}, abA:function(a){var s=this.a if(a.length!==s.length)return!1 return P.aCJ(a,s)}, HZ:function(a,b){var s,r,q,p,o,n for(s=0,r=0;C.c.dv(b,"../",r);){r+=3;++s}q=C.c.vh(a,"/") while(!0){if(!(q>0&&s>0))break p=C.c.vi(a,"/",q-1) if(p<0)break o=q-p n=o!==2 if(!n||o===3)if(C.c.al(a,p+1)===46)n=!n||C.c.al(a,p+2)===46 else n=!1 else n=!1 if(n)break;--s q=p}return C.c.ky(a,q+1,null,C.c.bw(b,r-3*s))}, ak:function(a){return this.qI(P.os(a))}, qI:function(a){var s,r,q,p,o,n,m,l,k,j,i=this,h=null if(a.gdT().length!==0){s=a.gdT() if(a.gq2()){r=a.gqO() q=a.ghy(a) p=a.gnc()?a.glD(a):h}else{p=h q=p r=""}o=P.kA(a.gdR(a)) n=a.gnd()?a.gim(a):h}else{s=i.a if(a.gq2()){r=a.gqO() q=a.ghy(a) p=P.akU(a.gnc()?a.glD(a):h,s) o=P.kA(a.gdR(a)) n=a.gnd()?a.gim(a):h}else{r=i.b q=i.c p=i.d o=i.e if(a.gdR(a)==="")n=a.gnd()?a.gim(a):i.f else{m=P.aCO(i,o) if(m>0){l=C.c.V(o,0,m) o=a.gv6()?l+P.kA(a.gdR(a)):l+P.kA(i.HZ(C.c.bw(o,l.length),a.gdR(a)))}else if(a.gv6())o=P.kA(a.gdR(a)) else if(o.length===0)if(q==null)o=s.length===0?a.gdR(a):P.kA(a.gdR(a)) else o=P.kA("/"+a.gdR(a)) else{k=i.HZ(o,a.gdR(a)) j=s.length===0 if(!j||q!=null||C.c.bv(o,"/"))o=P.kA(k) else o=P.akW(k,!j||q!=null)}n=a.gnd()?a.gim(a):h}}}return P.afQ(s,r,q,p,o,n,a.gBn()?a.guY():h)}, gN9:function(){return this.a.length!==0}, gq2:function(){return this.c!=null}, gnc:function(){return this.d!=null}, gnd:function(){return this.f!=null}, gBn:function(){return this.r!=null}, gv6:function(){return C.c.bv(this.e,"/")}, Cz:function(){var s,r=this,q=r.a if(q!==""&&q!=="file")throw H.a(P.F("Cannot extract a file path from a "+q+" URI")) q=r.f if((q==null?"":q)!=="")throw H.a(P.F(u.z)) q=r.r if((q==null?"":q)!=="")throw H.a(P.F(u.A)) q=$.alW() if(q)q=P.aqY(r) else{if(r.c!=null&&r.ghy(r)!=="")H.e(P.F(u.Q)) s=r.gku() P.aCG(s,!1) q=P.JP(C.c.bv(r.e,"/")?"/":"",s,"/") q=q.charCodeAt(0)==0?q:q}return q}, j:function(a){return this.gJO()}, k:function(a,b){var s,r,q=this if(b==null)return!1 if(q===b)return!0 if(t.Jv.b(b))if(q.a===b.gdT())if(q.c!=null===b.gq2())if(q.b===b.gqO())if(q.ghy(q)===b.ghy(b))if(q.glD(q)===b.glD(b))if(q.e===b.gdR(b)){s=q.f r=s==null if(!r===b.gnd()){if(r)s="" if(s===b.gim(b)){s=q.r r=s==null if(!r===b.gBn()){if(r)s="" s=s===b.guY()}else s=!1}else s=!1}else s=!1}else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 return s}, $ikm:1, gdT:function(){return this.a}, gdR:function(a){return this.e}} P.afS.prototype={ $2:function(a,b){var s=this.b,r=this.a s.a+=r.a r.a="&" r=s.a+=H.c(P.C1(C.ep,a,C.U,!0)) if(b!=null&&b.length!==0){s.a=r+"=" s.a+=H.c(P.C1(C.ep,b,C.U,!0))}}, $S:269} P.afR.prototype={ $2:function(a,b){var s,r if(b==null||typeof b=="string")this.a.$2(a,b) else for(s=J.as(b),r=this.a;s.q();)r.$2(a,s.gw(s))}, $S:16} P.a7D.prototype={ gPo:function(){var s,r,q,p,o=this,n=null,m=o.c if(m==null){m=o.a s=o.b[0]+1 r=C.c.i9(m,"?",s) q=m.length if(r>=0){p=P.C0(m,r+1,q,C.eo,!1) q=r}else p=n m=o.c=new P.M_("data","",n,n,P.C0(m,s,q,C.kp,!1),p,n)}return m}, j:function(a){var s=this.a return this.b[0]===-1?"data:"+s:s}} P.agz.prototype={ $2:function(a,b){var s=this.a[a] C.a0.aa3(s,0,96,b) return s}, $S:267} P.agA.prototype={ $3:function(a,b,c){var s,r for(s=b.length,r=0;r>>0]=c}, $S:117} P.ht.prototype={ gN9:function(){return this.b>0}, gq2:function(){return this.c>0}, gnc:function(){return this.c>0&&this.d+1r?C.c.V(this.a,r,s-1):""}, ghy:function(a){var s=this.c return s>0?C.c.V(this.a,s,this.d):""}, glD:function(a){var s,r=this if(r.gnc())return P.e5(C.c.V(r.a,r.d+1,r.e),null) s=r.b if(s===4&&C.c.bv(r.a,"http"))return 80 if(s===5&&C.c.bv(r.a,"https"))return 443 return 0}, gdR:function(a){return C.c.V(this.a,this.e,this.f)}, gim:function(a){var s=this.f,r=this.r return s=q.length)return s return new P.ht(C.c.V(q,0,r),s.b,s.c,s.d,s.e,s.f,r,s.x)}, ak:function(a){return this.qI(P.os(a))}, qI:function(a){if(a instanceof P.ht)return this.a5g(this,a) return this.JX().qI(a)}, a5g:function(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c=b.b if(c>0)return b s=b.c if(s>0){r=a.b if(r<=0)return b q=r===4 if(q&&C.c.bv(a.a,"file"))p=b.e!==b.f else if(q&&C.c.bv(a.a,"http"))p=!b.HE("80") else p=!(r===5&&C.c.bv(a.a,"https"))||!b.HE("443") if(p){o=r+1 return new P.ht(C.c.V(a.a,0,o)+C.c.bw(b.a,c+1),r,s+o,b.d+o,b.e+o,b.f+o,b.r+o,a.x)}else return this.JX().qI(b)}n=b.e c=b.f if(n===c){s=b.r if(c0?l:m o=k-n return new P.ht(C.c.V(a.a,0,k)+C.c.bw(s,n),a.b,a.c,a.d,m,c+o,b.r+o,a.x)}j=a.e i=a.f if(j===i&&a.c>0){for(;C.c.dv(s,"../",n);)n+=3 o=j-n+1 return new P.ht(C.c.V(a.a,0,j)+"/"+C.c.bw(s,n),a.b,a.c,a.d,j,c+o,b.r+o,a.x)}h=a.a l=P.aqB(this) if(l>=0)g=l else for(g=j;C.c.dv(h,"../",g);)g+=3 f=0 while(!0){e=n+3 if(!(e<=c&&C.c.dv(s,"../",n)))break;++f n=e}for(d="";i>g;){--i if(C.c.al(h,i)===47){if(f===0){d="/" break}--f d="/"}}if(i===g&&a.b<=0&&!C.c.dv(h,"/",j)){n-=f*3 d=""}o=i-n+d.length return new P.ht(C.c.V(h,0,i)+d+C.c.bw(s,n),a.b,a.c,a.d,j,c+o,b.r+o,a.x)}, Cz:function(){var s,r,q=this,p=q.b if(p>=0){s=!(p===4&&C.c.bv(q.a,"file")) p=s}else p=!1 if(p)throw H.a(P.F("Cannot extract a file path from a "+q.gdT()+" URI")) p=q.f s=q.a if(p0?s.ghy(s):r,n=s.gnc()?s.glD(s):r,m=s.a,l=s.f,k=C.c.V(m,s.e,l),j=s.r l=l>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1} W.vC.prototype={ j:function(a){var s,r=a.left r.toString r="Rectangle ("+H.c(r)+", " s=a.top s.toString return r+H.c(s)+") "+H.c(this.gay(a))+" x "+H.c(this.gai(a))}, k:function(a,b){var s,r if(b==null)return!1 if(t.Bb.b(b)){s=a.left s.toString r=J.k(b) if(s===r.gnm(b)){s=a.top s.toString s=s===r.gnO(b)&&this.gay(a)==r.gay(b)&&this.gai(a)==r.gai(b)}else s=!1}else s=!1 return s}, gt:function(a){var s,r=a.left r.toString r=C.d.gt(r) s=a.top s.toString return W.aqk(r,C.d.gt(s),J.a3(this.gay(a)),J.a3(this.gai(a)))}, ga7s:function(a){var s=a.bottom s.toString return s}, gHq:function(a){return a.height}, gai:function(a){var s=this.gHq(a) s.toString return s}, gnm:function(a){var s=a.left s.toString return s}, gqJ:function(a){var s=a.right s.toString return s}, gnO:function(a){var s=a.top s.toString return s}, gKI:function(a){return a.width}, gay:function(a){var s=this.gKI(a) s.toString return s}, $ihd:1} W.F4.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1} W.VN.prototype={ gl:function(a){return a.length}} W.Lw.prototype={ C:function(a,b){return J.ml(this.b,b)}, gO:function(a){return this.a.firstElementChild==null}, gl:function(a){return this.b.length}, i:function(a,b){return t.h.a(this.b[b])}, n:function(a,b,c){this.a.replaceChild(c,this.b[b])}, sl:function(a,b){throw H.a(P.F("Cannot resize element lists"))}, B:function(a,b){this.a.appendChild(b) return b}, gM:function(a){var s=this.f7(this) return new J.dA(s,s.length,H.Y(s).h("dA<1>"))}, J:function(a,b){W.aBV(this.a,b)}, d5:function(a,b){throw H.a(P.F("Cannot sort element lists"))}, fu:function(a,b,c){throw H.a(P.ce(null))}, b3:function(a,b,c,d,e){throw H.a(P.ce(null))}, cV:function(a,b,c,d){return this.b3(a,b,c,d,0)}, u:function(a,b){return W.aq9(this.a,b)}, lq:function(a,b,c){var s,r=this,q=r.b,p=q.length if(b>p)throw H.a(P.bz(b,0,r.gl(r),null,null)) s=r.a if(b===p)s.appendChild(c) else s.insertBefore(c,t.h.a(q[b]))}, az:function(a){J.aiJ(this.a)}, em:function(a){var s=this.gL(this) this.a.removeChild(s) return s}, gI:function(a){return W.aBW(this.a)}, gL:function(a){var s=this.a.lastElementChild if(s==null)throw H.a(P.a4("No elements")) return s}} W.oD.prototype={ gl:function(a){return this.a.length}, i:function(a,b){return this.$ti.c.a(this.a[b])}, n:function(a,b,c){throw H.a(P.F("Cannot modify list"))}, sl:function(a,b){throw H.a(P.F("Cannot modify list"))}, d5:function(a,b){throw H.a(P.F("Cannot sort list"))}, gI:function(a){return this.$ti.c.a(C.l8.gI(this.a))}, gL:function(a){return this.$ti.c.a(C.l8.gL(this.a))}} W.aE.prototype={ gA1:function(a){return new W.A6(a)}, sA1:function(a,b){var s,r,q new W.A6(a).az(0) for(s=b.gaj(b),s=s.gM(s);s.q();){r=s.gw(s) q=b.i(0,r) q.toString a.setAttribute(r,q)}}, gLm:function(a){return new W.Lw(a,a.children)}, j:function(a){return a.localName}, i0:function(a,b,c,d){var s,r,q,p if(c==null){s=$.anZ if(s==null){s=H.b([],t.qF) r=new W.xb(s) s.push(W.aqj(null)) s.push(W.aqE()) $.anZ=r d=r}else d=s s=$.anY if(s==null){s=new W.QW(d) $.anY=s c=s}else{s.a=d c=s}}if($.l6==null){s=document r=s.implementation.createHTMLDocument("") $.l6=r $.ajh=r.createRange() r=$.l6.createElement("base") t.C_.a(r) s=s.baseURI s.toString r.href=s $.l6.head.appendChild(r)}s=$.l6 if(s.body==null){r=s.createElement("body") s.body=t.C4.a(r)}s=$.l6 if(t.C4.b(a)){s=s.body s.toString q=s}else{s.toString q=s.createElement(a.tagName) $.l6.body.appendChild(q)}if("createContextualFragment" in window.Range.prototype&&!C.b.C(C.tf,a.tagName)){$.ajh.selectNodeContents(q) s=$.ajh s.toString p=s.createContextualFragment(b==null?"null":b)}else{q.innerHTML=b p=$.l6.createDocumentFragment() for(;s=q.firstChild,s!=null;)p.appendChild(s)}if(q!==$.l6.body)J.c9(q) c.w8(p) document.adoptNode(p) return p}, a8E:function(a,b,c){return this.i0(a,b,c,null)}, DJ:function(a,b){a.textContent=null a.appendChild(this.i0(a,b,null,null))}, aai:function(a){return a.focus()}, gP2:function(a){return a.tagName}, gO5:function(a){return new W.ii(a,"blur",!1,t.L)}, gO7:function(a){return new W.ii(a,"focus",!1,t.L)}, $iaE:1} W.Wd.prototype={ $1:function(a){return t.h.b(a)}, $S:118} W.F7.prototype={ sai:function(a,b){a.height=b}, gar:function(a){return a.name}, say:function(a,b){a.width=b}} W.vN.prototype={ gar:function(a){return a.name}, a2h:function(a,b,c){return a.remove(H.fh(b,0),H.fh(c,1))}, c4:function(a){var s=new P.a1($.R,t.LR),r=new P.aH(s,t.zh) this.a2h(a,new W.WG(r),new W.WH(r)) return s}} W.WG.prototype={ $0:function(){this.a.ez(0)}, $C:"$0", $R:0, $S:0} W.WH.prototype={ $1:function(a){this.a.hZ(a)}, $S:263} W.ah.prototype={ gj7:function(a){return W.agw(a.target)}, $iah:1} W.WJ.prototype={ aT:function(a){return a.close()}} W.ai.prototype={ l9:function(a,b,c,d){if(c!=null)this.XA(a,b,c,d)}, jJ:function(a,b,c){return this.l9(a,b,c,null)}, OJ:function(a,b,c,d){if(c!=null)this.a49(a,b,c,d)}, vG:function(a,b,c){return this.OJ(a,b,c,null)}, XA:function(a,b,c,d){return a.addEventListener(b,H.fh(c,1),d)}, a49:function(a,b,c,d){return a.removeEventListener(b,H.fh(c,1),d)}} W.ec.prototype={} W.WP.prototype={ gar:function(a){return a.name}} W.Fq.prototype={ gar:function(a){return a.name}} W.et.prototype={ gar:function(a){return a.name}, $iet:1} W.pN.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1, $ipN:1} W.Fs.prototype={ gadT:function(a){var s=a.result if(t.pI.b(s))return H.cK(s,0,null) return s}} W.WQ.prototype={ gar:function(a){return a.name}} W.WR.prototype={ gl:function(a){return a.length}} W.n1.prototype={$in1:1} W.Xp.prototype={ K:function(a,b){return a.forEach(H.fh(b,3))}} W.jF.prototype={ gl:function(a){return a.length}, gar:function(a){return a.name}, $ijF:1} W.fq.prototype={$ifq:1} W.YI.prototype={ gl:function(a){return a.length}, gb9:function(a){return new P.fQ([],[]).hr(a.state,!0)}} W.n9.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1} W.iG.prototype={ gadS:function(a){var s,r,q,p,o,n,m,l=t.N,k=P.y(l,l),j=a.getAllResponseHeaders() if(j==null)return k s=j.split("\r\n") for(l=s.length,r=0;r=200&&o<300 r=o>307&&o<400 o=s||o===0||o===304||r q=this.b if(o)q.ci(0,p) else q.hZ(a)}, $S:262} W.wb.prototype={} W.FV.prototype={ sai:function(a,b){a.height=b}, gar:function(a){return a.name}, say:function(a,b){a.width=b}} W.Z0.prototype={ aT:function(a){return a.close()}} W.wd.prototype={$iwd:1} W.nc.prototype={ sai:function(a,b){a.height=b}, say:function(a,b){a.width=b}, $inc:1} W.nf.prototype={ sai:function(a,b){a.height=b}, gar:function(a){return a.name}, say:function(a,b){a.width=b}, $inf:1} W.jN.prototype={$ijN:1} W.wu.prototype={} W.wz.prototype={} W.a_k.prototype={ j:function(a){return String(a)}} W.Gx.prototype={ gar:function(a){return a.name}} W.nt.prototype={} W.a_A.prototype={ aT:function(a){return P.hw(a.close(),t.z)}, c4:function(a){return P.hw(a.remove(),t.z)}} W.a_B.prototype={ gl:function(a){return a.length}} W.GD.prototype={ aQ:function(a,b){return a.addListener(H.fh(b,1))}, T:function(a,b){return a.removeListener(H.fh(b,1))}} W.ql.prototype={$iql:1} W.a_C.prototype={ gb9:function(a){return a.state}} W.wV.prototype={ l9:function(a,b,c,d){if(b==="message")a.start() this.RV(a,b,c,!1)}, aT:function(a){return a.close()}, $iwV:1} W.lo.prototype={ gar:function(a){return a.name}, $ilo:1} W.GF.prototype={ am:function(a,b){return P.hv(a.get(b))!=null}, i:function(a,b){return P.hv(a.get(b))}, K:function(a,b){var s,r=a.entries() for(;!0;){s=r.next() if(s.done)return b.$2(s.value[0],P.hv(s.value[1]))}}, gaj:function(a){var s=H.b([],t.s) this.K(a,new W.a_J(s)) return s}, gaZ:function(a){var s=H.b([],t.n4) this.K(a,new W.a_K(s)) return s}, gl:function(a){return a.size}, gO:function(a){return a.size===0}, gaV:function(a){return a.size!==0}, n:function(a,b,c){throw H.a(P.F("Not supported"))}, bX:function(a,b,c){throw H.a(P.F("Not supported"))}, u:function(a,b){throw H.a(P.F("Not supported"))}, $iW:1} W.a_J.prototype={ $2:function(a,b){return this.a.push(a)}, $S:16} W.a_K.prototype={ $2:function(a,b){return this.a.push(b)}, $S:16} W.GG.prototype={ am:function(a,b){return P.hv(a.get(b))!=null}, i:function(a,b){return P.hv(a.get(b))}, K:function(a,b){var s,r=a.entries() for(;!0;){s=r.next() if(s.done)return b.$2(s.value[0],P.hv(s.value[1]))}}, gaj:function(a){var s=H.b([],t.s) this.K(a,new W.a_L(s)) return s}, gaZ:function(a){var s=H.b([],t.n4) this.K(a,new W.a_M(s)) return s}, gl:function(a){return a.size}, gO:function(a){return a.size===0}, gaV:function(a){return a.size!==0}, n:function(a,b,c){throw H.a(P.F("Not supported"))}, bX:function(a,b,c){throw H.a(P.F("Not supported"))}, u:function(a,b){throw H.a(P.F("Not supported"))}, $iW:1} W.a_L.prototype={ $2:function(a,b){return this.a.push(a)}, $S:16} W.a_M.prototype={ $2:function(a,b){return this.a.push(b)}, $S:16} W.wW.prototype={ gar:function(a){return a.name}, gb9:function(a){return a.state}, aT:function(a){return P.hw(a.close(),t.z)}} W.fw.prototype={$ifw:1} W.GH.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1} W.eC.prototype={ gbV:function(a){var s,r,q,p,o,n,m if(!!a.offsetX)return new P.fC(a.offsetX,a.offsetY,t.i6) else{s=a.target r=t.h if(!r.b(W.agw(s)))throw H.a(P.F("offsetX is only supported on elements")) q=r.a(W.agw(s)) s=a.clientX r=a.clientY p=t.i6 o=q.getBoundingClientRect() n=o.left n.toString o=o.top o.toString m=new P.fC(s,r,p).a5(0,new P.fC(n,o,p)) return new P.fC(J.aiY(m.a),J.aiY(m.b),p)}}, $ieC:1} W.a0k.prototype={ gar:function(a){return a.name}} W.dx.prototype={ gI:function(a){var s=this.a.firstChild if(s==null)throw H.a(P.a4("No elements")) return s}, gL:function(a){var s=this.a.lastChild if(s==null)throw H.a(P.a4("No elements")) return s}, gc5:function(a){var s=this.a,r=s.childNodes.length if(r===0)throw H.a(P.a4("No elements")) if(r>1)throw H.a(P.a4("More than one element")) s=s.firstChild s.toString return s}, B:function(a,b){this.a.appendChild(b)}, J:function(a,b){var s,r,q,p,o if(b instanceof W.dx){s=b.a r=this.a if(s!==r)for(q=s.childNodes.length,p=0;p"))}, d5:function(a,b){throw H.a(P.F("Cannot sort Node list"))}, b3:function(a,b,c,d,e){throw H.a(P.F("Cannot setRange on Node list"))}, cV:function(a,b,c,d){return this.b3(a,b,c,d,0)}, fu:function(a,b,c){throw H.a(P.F("Cannot removeRange on Node list"))}, gl:function(a){return this.a.childNodes.length}, sl:function(a,b){throw H.a(P.F("Cannot set length on immutable List."))}, i:function(a,b){return this.a.childNodes[b]}} W.a8.prototype={ c4:function(a){var s=a.parentNode if(s!=null)s.removeChild(a)}, adM:function(a,b){var s,r,q try{r=a.parentNode r.toString s=r J.auL(s,b,a)}catch(q){H.U(q)}return a}, Yx:function(a){var s for(;s=a.firstChild,s!=null;)a.removeChild(s)}, j:function(a){var s=a.nodeValue return s==null?this.S7(a):s}, gbs:function(a){return a.textContent}, a4o:function(a,b,c){return a.replaceChild(b,c)}, $ia8:1, d4:function(a){return this.gbs(a).$0()}} W.qp.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1} W.a0r.prototype={ aT:function(a){return a.close()}} W.GY.prototype={ sai:function(a,b){a.height=b}, gar:function(a){return a.name}, say:function(a,b){a.width=b}} W.GZ.prototype={ sai:function(a,b){a.height=b}, say:function(a,b){a.width=b}, qV:function(a,b,c){var s=a.getContext(b,P.aht(c)) return s}} W.H5.prototype={ gar:function(a){return a.name}} W.a0G.prototype={ gar:function(a){return a.name}} W.xm.prototype={} W.Hq.prototype={ gar:function(a){return a.name}} W.a1_.prototype={ gar:function(a){return a.name}} W.iW.prototype={ gar:function(a){return a.name}} W.a13.prototype={ gar:function(a){return a.name}} W.a14.prototype={ gb9:function(a){return a.state}} W.fB.prototype={ gl:function(a){return a.length}, gar:function(a){return a.name}, $ifB:1} W.HJ.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1} W.k1.prototype={$ik1:1} W.HL.prototype={ gb9:function(a){return new P.fQ([],[]).hr(a.state,!0)}} W.a1x.prototype={ gb9:function(a){return a.state}, aT:function(a){return a.close()}} W.f7.prototype={$if7:1} W.a1H.prototype={ L7:function(a){return a.arrayBuffer()}, d4:function(a){return a.text()}} W.a27.prototype={ gb9:function(a){return a.state}} W.IL.prototype={ aT:function(a){return a.close()}} W.y7.prototype={ aT:function(a){return a.close()}} W.IM.prototype={ am:function(a,b){return P.hv(a.get(b))!=null}, i:function(a,b){return P.hv(a.get(b))}, K:function(a,b){var s,r=a.entries() for(;!0;){s=r.next() if(s.done)return b.$2(s.value[0],P.hv(s.value[1]))}}, gaj:function(a){var s=H.b([],t.s) this.K(a,new W.a3E(s)) return s}, gaZ:function(a){var s=H.b([],t.n4) this.K(a,new W.a3F(s)) return s}, gl:function(a){return a.size}, gO:function(a){return a.size===0}, gaV:function(a){return a.size!==0}, n:function(a,b,c){throw H.a(P.F("Not supported"))}, bX:function(a,b,c){throw H.a(P.F("Not supported"))}, u:function(a,b){throw H.a(P.F("Not supported"))}, $iW:1} W.a3E.prototype={ $2:function(a,b){return this.a.push(a)}, $S:16} W.a3F.prototype={ $2:function(a,b){return this.a.push(b)}, $S:16} W.a3Y.prototype={ aeh:function(a){return a.unlock()}} W.yc.prototype={} W.J0.prototype={ gl:function(a){return a.length}, gar:function(a){return a.name}} W.a4G.prototype={ gb9:function(a){return a.state}} W.J9.prototype={ gar:function(a){return a.name}, aT:function(a){return a.close()}} W.Jv.prototype={ gar:function(a){return a.name}} W.fI.prototype={$ifI:1} W.JB.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1} W.rx.prototype={$irx:1} W.fJ.prototype={$ifJ:1} W.JH.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1} W.fK.prototype={ gl:function(a){return a.length}, $ifK:1} W.JI.prototype={ gar:function(a){return a.name}} W.a67.prototype={ gbs:function(a){return a.text}, d4:function(a){return this.gbs(a).$0()}} W.a68.prototype={ gar:function(a){return a.name}} W.yI.prototype={ am:function(a,b){return a.getItem(H.cr(b))!=null}, i:function(a,b){return a.getItem(H.cr(b))}, n:function(a,b,c){a.setItem(b,c)}, bX:function(a,b,c){if(a.getItem(b)==null)a.setItem(b,c.$0()) return a.getItem(b)}, u:function(a,b){var s H.cr(b) s=a.getItem(b) a.removeItem(b) return s}, K:function(a,b){var s,r,q for(s=0;!0;++s){r=a.key(s) if(r==null)return q=a.getItem(r) q.toString b.$2(r,q)}}, gaj:function(a){var s=H.b([],t.s) this.K(a,new W.a6l(s)) return s}, gaZ:function(a){var s=H.b([],t.s) this.K(a,new W.a6m(s)) return s}, gl:function(a){return a.length}, gO:function(a){return a.key(0)==null}, gaV:function(a){return a.key(0)!=null}, $iW:1} W.a6l.prototype={ $2:function(a,b){return this.a.push(a)}, $S:71} W.a6m.prototype={ $2:function(a,b){return this.a.push(b)}, $S:71} W.yM.prototype={} W.eI.prototype={$ieI:1} W.yT.prototype={ i0:function(a,b,c,d){var s,r if("createContextualFragment" in window.Range.prototype)return this.wI(a,b,c,d) s=W.vH(""+b+"
",c,d) r=document.createDocumentFragment() r.toString s.toString new W.dx(r).J(0,new W.dx(s)) return r}} W.JZ.prototype={ i0:function(a,b,c,d){var s,r,q,p if("createContextualFragment" in window.Range.prototype)return this.wI(a,b,c,d) s=document r=s.createDocumentFragment() s=C.m6.i0(s.createElement("table"),b,c,d) s.toString s=new W.dx(s) q=s.gc5(s) q.toString s=new W.dx(q) p=s.gc5(s) r.toString p.toString new W.dx(r).J(0,new W.dx(p)) return r}} W.K_.prototype={ i0:function(a,b,c,d){var s,r,q if("createContextualFragment" in window.Range.prototype)return this.wI(a,b,c,d) s=document r=s.createDocumentFragment() s=C.m6.i0(s.createElement("table"),b,c,d) s.toString s=new W.dx(s) q=s.gc5(s) r.toString q.toString new W.dx(r).J(0,new W.dx(q)) return r}} W.rJ.prototype={$irJ:1} W.rK.prototype={ gar:function(a){return a.name}, Qk:function(a){return a.select()}, $irK:1} W.fM.prototype={$ifM:1} W.eN.prototype={$ieN:1} W.K9.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1} W.Ka.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1} W.a7k.prototype={ gl:function(a){return a.length}} W.fN.prototype={$ifN:1} W.lP.prototype={$ilP:1} W.zg.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1} W.a7r.prototype={ gl:function(a){return a.length}} W.kj.prototype={} W.a7H.prototype={ j:function(a){return String(a)}} W.KB.prototype={ sai:function(a,b){a.height=b}, say:function(a,b){a.width=b}} W.a7P.prototype={ gl:function(a){return a.length}} W.KF.prototype={ gbs:function(a){return a.text}, d4:function(a){return this.gbs(a).$0()}} W.a7R.prototype={ say:function(a,b){a.width=b}} W.a7U.prototype={ aT:function(a){return a.close()}} W.ou.prototype={ ga9_:function(a){var s=a.deltaY if(s!=null)return s throw H.a(P.F("deltaY is not supported"))}, ga8Z:function(a){var s=a.deltaX if(s!=null)return s throw H.a(P.F("deltaX is not supported"))}, ga8Y:function(a){if(!!a.deltaMode)return a.deltaMode return 0}, $iou:1} W.ov.prototype={ OR:function(a,b){var s this.ZG(a) s=W.aln(b,t.Jy) s.toString return this.a4t(a,s)}, a4t:function(a,b){return a.requestAnimationFrame(H.fh(b,1))}, ZG:function(a){if(!!(a.requestAnimationFrame&&a.cancelAnimationFrame))return;(function(b){var s=['ms','moz','webkit','o'] for(var r=0;r>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1} W.zY.prototype={ j:function(a){var s,r=a.left r.toString r="Rectangle ("+H.c(r)+", " s=a.top s.toString s=r+H.c(s)+") " r=a.width r.toString r=s+H.c(r)+" x " s=a.height s.toString return r+H.c(s)}, k:function(a,b){var s,r if(b==null)return!1 if(t.Bb.b(b)){s=a.left s.toString r=J.k(b) if(s===r.gnm(b)){s=a.top s.toString if(s===r.gnO(b)){s=a.width s.toString if(s===r.gay(b)){s=a.height s.toString r=s===r.gai(b) s=r}else s=!1}else s=!1}else s=!1}else s=!1 return s}, gt:function(a){var s,r,q,p=a.left p.toString p=C.d.gt(p) s=a.top s.toString s=C.d.gt(s) r=a.width r.toString r=C.d.gt(r) q=a.height q.toString return W.aqk(p,s,r,C.d.gt(q))}, gHq:function(a){return a.height}, gai:function(a){var s=a.height s.toString return s}, sai:function(a,b){a.height=b}, gKI:function(a){return a.width}, gay:function(a){var s=a.width s.toString return s}, say:function(a,b){a.width=b}} W.N_.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1} W.AU.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1} W.PK.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1} W.Q_.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a[b]}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return a[b]}, $iaQ:1, $iM:1, $ib1:1, $il:1, $iv:1} W.Lc.prototype={ hY:function(a,b,c){var s=t.N return P.ajT(this,s,s,b,c)}, bX:function(a,b,c){var s=this.a,r=s.hasAttribute(b) if(!r)s.setAttribute(b,c.$0()) return s.getAttribute(b)}, az:function(a){var s,r,q,p,o for(s=this.gaj(this),r=s.length,q=this.a,p=0;p"))}, B:function(a,b){throw H.a(P.F("Cannot add to immutable List."))}, J:function(a,b){throw H.a(P.F("Cannot add to immutable List."))}, d5:function(a,b){throw H.a(P.F("Cannot sort immutable List."))}, em:function(a){throw H.a(P.F("Cannot remove from immutable List."))}, u:function(a,b){throw H.a(P.F("Cannot remove from immutable List."))}, b3:function(a,b,c,d,e){throw H.a(P.F("Cannot setRange on immutable List."))}, cV:function(a,b,c,d){return this.b3(a,b,c,d,0)}, fu:function(a,b,c){throw H.a(P.F("Cannot removeRange on immutable List."))}} W.xb.prototype={ mP:function(a){return C.b.hX(this.a,new W.a0p(a))}, jO:function(a,b,c){return C.b.hX(this.a,new W.a0o(a,b,c))}, $iiP:1} W.a0p.prototype={ $1:function(a){return a.mP(this.a)}, $S:123} W.a0o.prototype={ $1:function(a){return a.jO(this.a,this.b,this.c)}, $S:123} W.Bt.prototype={ Xe:function(a,b,c,d){var s,r,q this.a.J(0,c) s=b.nT(0,new W.aet()) r=b.nT(0,new W.aeu()) this.b.J(0,s) q=this.c q.J(0,C.cq) q.J(0,r)}, mP:function(a){return this.a.C(0,W.vI(a))}, jO:function(a,b,c){var s=this,r=W.vI(a),q=s.c if(q.C(0,H.c(r)+"::"+b))return s.d.a78(c) else if(q.C(0,"*::"+b))return s.d.a78(c) else{q=s.b if(q.C(0,H.c(r)+"::"+b))return!0 else if(q.C(0,"*::"+b))return!0 else if(q.C(0,H.c(r)+"::*"))return!0 else if(q.C(0,"*::*"))return!0}return!1}, $iiP:1} W.aet.prototype={ $1:function(a){return!C.b.C(C.h7,a)}, $S:29} W.aeu.prototype={ $1:function(a){return C.b.C(C.h7,a)}, $S:29} W.Qe.prototype={ jO:function(a,b,c){if(this.Up(a,b,c))return!0 if(b==="template"&&c==="")return!0 if(a.getAttribute("template")==="")return this.e.C(0,b) return!1}} W.aeT.prototype={ $1:function(a){return"TEMPLATE::"+H.c(a)}, $S:45} W.Q0.prototype={ mP:function(a){var s if(t.MF.b(a))return!1 s=t.ry.b(a) if(s&&W.vI(a)==="foreignObject")return!1 if(s)return!0 return!1}, jO:function(a,b,c){if(b==="is"||C.c.bv(b,"on"))return!1 return this.mP(a)}, $iiP:1} W.pP.prototype={ q:function(){var s=this,r=s.c+1,q=s.b if(r" if(typeof console!="undefined")window.console.warn(s) return}if(!m.a.mP(a)){m.oW(a,b) window s="Removing disallowed element <"+H.c(e)+"> from "+H.c(b) if(typeof console!="undefined")window.console.warn(s) return}if(g!=null)if(!m.a.jO(a,"is",g)){m.oW(a,b) window s="Removing disallowed type extension <"+H.c(e)+' is="'+g+'">' if(typeof console!="undefined")window.console.warn(s) return}s=f.gaj(f) r=H.b(s.slice(0),H.Y(s)) for(q=f.gaj(f).length-1,s=f.a;q>=0;--q){p=r[q] o=m.a n=J.axj(p) H.cr(p) if(!o.jO(a,n,s.getAttribute(p))){window o="Removing disallowed attribute <"+H.c(e)+" "+p+'="'+H.c(s.getAttribute(p))+'">' if(typeof console!="undefined")window.console.warn(o) s.removeAttribute(p)}}if(t.aW.b(a)){s=a.content s.toString m.w8(s)}}} W.afW.prototype={ $2:function(a,b){var s,r,q,p,o,n=this.a switch(a.nodeType){case 1:n.a4O(a,b) break case 8:case 11:case 3:case 4:break default:n.oW(a,b)}s=a.lastChild for(;null!=s;){r=null try{r=s.previousSibling if(r!=null){q=r.nextSibling p=s p=q==null?p!=null:q!==p q=p}else q=!1 if(q){q=P.a4("Corrupt HTML") throw H.a(q)}}catch(o){H.U(o) q=s;++n.b p=q.parentNode p=a==null?p!=null:a!==p if(p){p=q.parentNode if(p!=null)p.removeChild(q)}else a.removeChild(q) s=null r=a.lastChild}if(s!=null)this.$2(s,a) s=r}}, $S:259} W.LN.prototype={} W.Mg.prototype={} W.Mh.prototype={} W.Mi.prototype={} W.Mj.prototype={} W.MK.prototype={} W.ML.prototype={} W.N7.prototype={} W.N8.prototype={} W.NF.prototype={} W.NG.prototype={} W.NH.prototype={} W.NI.prototype={} W.O0.prototype={} W.O1.prototype={} W.Oi.prototype={} W.Oj.prototype={} W.Ph.prototype={} W.Bu.prototype={} W.Bv.prototype={} W.PI.prototype={} W.PJ.prototype={} W.PR.prototype={} W.Qo.prototype={} W.Qp.prototype={} W.BO.prototype={} W.BP.prototype={} W.Qw.prototype={} W.Qx.prototype={} W.R5.prototype={} W.R6.prototype={} W.Ra.prototype={} W.Rb.prototype={} W.Rh.prototype={} W.Ri.prototype={} W.Rr.prototype={} W.Rs.prototype={} W.Rt.prototype={} W.Ru.prototype={} P.aeD.prototype={ n8:function(a){var s,r=this.a,q=r.length for(s=0;s")),new P.WT(),r.h("ft"))}, K:function(a,b){C.b.K(P.bk(this.ghO(),!1,t.h),b)}, n:function(a,b,c){var s=this.ghO() J.awW(s.b.$1(J.p4(s.a,b)),c)}, sl:function(a,b){var s=J.bQ(this.ghO().a) if(b>=s)return else if(b<0)throw H.a(P.bc("Invalid list length")) this.fu(0,b,s)}, B:function(a,b){this.b.a.appendChild(b)}, J:function(a,b){var s,r for(s=J.as(b),r=this.b.a;s.q();)r.appendChild(s.gw(s))}, C:function(a,b){if(!t.h.b(b))return!1 return b.parentNode===this.a}, d5:function(a,b){throw H.a(P.F("Cannot sort filtered list"))}, b3:function(a,b,c,d,e){throw H.a(P.F("Cannot setRange on filtered list"))}, cV:function(a,b,c,d){return this.b3(a,b,c,d,0)}, fu:function(a,b,c){var s=this.ghO() s=H.a5X(s,b,s.$ti.h("l.E")) C.b.K(P.bk(H.a6Q(s,c-b,H.u(s).h("l.E")),!0,t.z),new P.WU())}, az:function(a){J.aiJ(this.b.a)}, em:function(a){var s=this.ghO(),r=s.b.$1(J.CY(s.a)) if(r!=null)J.c9(r) return r}, lq:function(a,b,c){var s,r if(b===J.bQ(this.ghO().a))this.b.a.appendChild(c) else{s=this.ghO() r=s.b.$1(J.p4(s.a,b)) r.parentNode.insertBefore(c,r)}}, u:function(a,b){return!1}, gl:function(a){return J.bQ(this.ghO().a)}, i:function(a,b){var s=this.ghO() return s.b.$1(J.p4(s.a,b))}, gM:function(a){var s=P.bk(this.ghO(),!1,t.h) return new J.dA(s,s.length,H.Y(s).h("dA<1>"))}} P.WS.prototype={ $1:function(a){return t.h.b(a)}, $S:118} P.WT.prototype={ $1:function(a){return t.h.a(a)}, $S:251} P.WU.prototype={ $1:function(a){return J.c9(a)}, $S:28} P.V6.prototype={ gar:function(a){return a.name}, aT:function(a){return a.close()}} P.Zl.prototype={ gar:function(a){return a.name}} P.wt.prototype={$iwt:1} P.a0A.prototype={ gar:function(a){return a.name}} P.Kz.prototype={ gj7:function(a){return a.target}} P.ZJ.prototype={ $1:function(a){var s,r,q,p,o=this.a if(o.am(0,a))return o.i(0,a) if(t.f.b(a)){s={} o.n(0,a,s) for(o=J.k(a),r=J.as(o.gaj(a));r.q();){q=r.gw(r) s[q]=this.$1(o.i(a,q))}return s}else if(t.JY.b(a)){p=[] o.n(0,a,p) C.b.J(p,J.mn(a,this,t.z)) return p}else return P.RM(a)}, $S:109} P.agx.prototype={ $1:function(a){var s=function(b,c,d){return function(){return b(c,d,this,Array.prototype.slice.apply(arguments))}}(P.aCY,a,!1) P.al5(s,$.S8(),a) return s}, $S:41} P.agy.prototype={ $1:function(a){return new this.a(a)}, $S:41} P.aho.prototype={ $1:function(a){return new P.wp(a)}, $S:248} P.ahp.prototype={ $1:function(a){return new P.nh(a,t.sW)}, $S:246} P.ahq.prototype={ $1:function(a){return new P.jL(a)}, $S:239} P.jL.prototype={ i:function(a,b){if(typeof b!="string"&&typeof b!="number")throw H.a(P.bc("property is not a String or num")) return P.al2(this.a[b])}, n:function(a,b,c){if(typeof b!="string"&&typeof b!="number")throw H.a(P.bc("property is not a String or num")) this.a[b]=P.RM(c)}, k:function(a,b){if(b==null)return!1 return b instanceof P.jL&&this.a===b.a}, j:function(a){var s,r try{s=String(this.a) return s}catch(r){H.U(r) s=this.bP(0) return s}}, jQ:function(a,b){var s=this.a,r=b==null?null:P.bk(new H.Z(b,P.aFM(),H.Y(b).h("Z<1,@>")),!0,t.z) return P.al2(s[a].apply(s,r))}, a7E:function(a){return this.jQ(a,null)}, gt:function(a){return 0}} P.wp.prototype={} P.nh.prototype={ Fr:function(a){var s=this,r=a<0||a>=s.gl(s) if(r)throw H.a(P.bz(a,0,s.gl(s),null,null))}, i:function(a,b){if(H.dz(b))this.Fr(b) return this.Se(0,b)}, n:function(a,b,c){if(H.dz(b))this.Fr(b) this.EI(0,b,c)}, gl:function(a){var s=this.a.length if(typeof s==="number"&&s>>>0===s)return s throw H.a(P.a4("Bad JsArray length"))}, sl:function(a,b){this.EI(0,"length",b)}, B:function(a,b){this.jQ("push",[b])}, J:function(a,b){this.jQ("push",b instanceof Array?b:P.bk(b,!0,t.z))}, em:function(a){if(this.gl(this)===0)throw H.a(P.cN(-1)) return this.a7E("pop")}, fu:function(a,b,c){P.aou(b,c,this.gl(this)) this.jQ("splice",[b,c-b])}, b3:function(a,b,c,d,e){var s,r P.aou(b,c,this.gl(this)) s=c-b if(s===0)return r=[b,s] C.b.J(r,J.up(d,e).hF(0,s)) this.jQ("splice",r)}, cV:function(a,b,c,d){return this.b3(a,b,c,d,0)}, d5:function(a,b){this.jQ("sort",b==null?[]:[b])}, $iM:1, $il:1, $iv:1} P.tE.prototype={ n:function(a,b,c){return this.Sf(0,b,c)}} P.GU.prototype={ j:function(a){return"Promise was rejected with a value of `"+(this.a?"undefined":"null")+"`."}, $icc:1} P.aif.prototype={ $1:function(a){return this.a.ci(0,a)}, $S:28} P.aig.prototype={ $1:function(a){if(a==null)return this.a.hZ(new P.GU(a===undefined)) return this.a.hZ(a)}, $S:28} P.fC.prototype={ j:function(a){return"Point("+H.c(this.a)+", "+H.c(this.b)+")"}, k:function(a,b){if(b==null)return!1 return b instanceof P.fC&&this.a==b.a&&this.b==b.b}, gt:function(a){var s=J.a3(this.a),r=J.a3(this.b) return H.aBh(H.apK(H.apK(0,s),r))}, U:function(a,b){var s=this.$ti,r=s.c return new P.fC(r.a(this.a+b.a),r.a(this.b+b.b),s)}, a5:function(a,b){var s=this.$ti,r=s.c return new P.fC(r.a(this.a-b.a),r.a(this.b-b.b),s)}, a4:function(a,b){var s=this.$ti,r=s.c return new P.fC(r.a(this.a*b),r.a(this.b*b),s)}} P.hT.prototype={$ihT:1} P.Gl.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a.getItem(b)}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return this.i(a,b)}, az:function(a){return a.clear()}, $iM:1, $il:1, $iv:1} P.i_.prototype={$ii_:1} P.GX.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a.getItem(b)}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return this.i(a,b)}, az:function(a){return a.clear()}, $iM:1, $il:1, $iv:1} P.a1l.prototype={ gl:function(a){return a.length}} P.a23.prototype={ sai:function(a,b){a.height=b}, say:function(a,b){a.width=b}} P.qW.prototype={$iqW:1} P.JR.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a.getItem(b)}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return this.i(a,b)}, az:function(a){return a.clear()}, $iM:1, $il:1, $iv:1} P.am.prototype={ gLm:function(a){return new P.Ft(a,new W.dx(a))}, i0:function(a,b,c,d){var s,r,q,p,o,n=H.b([],t.qF) n.push(W.aqj(null)) n.push(W.aqE()) n.push(new W.Q0()) c=new W.QW(new W.xb(n)) s=''+b+"" n=document r=n.body r.toString q=C.j6.a8E(r,s,c) p=n.createDocumentFragment() q.toString n=new W.dx(q) o=n.gc5(n) for(;n=o.firstChild,n!=null;)p.appendChild(n) return p}, $iam:1} P.i9.prototype={$ii9:1} P.Kj.prototype={ gl:function(a){return a.length}, i:function(a,b){if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) return a.getItem(b)}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return this.i(a,b)}, az:function(a){return a.clear()}, $iM:1, $il:1, $iv:1} P.Np.prototype={} P.Nq.prototype={} P.O7.prototype={} P.O8.prototype={} P.PV.prototype={} P.PW.prototype={} P.QC.prototype={} P.QD.prototype={} P.F9.prototype={} P.Ed.prototype={ j:function(a){return this.b}} P.Ht.prototype={ j:function(a){return this.b}} P.BD.prototype={ bF:function(a){H.S0(this.b,this.c,a,t.CD)}} P.oz.prototype={ gl:function(a){var s=this.a return s.gl(s)}, qx:function(a){var s,r=this.c if(r<=0)return!0 s=this.Gk(r-1) this.a.dV(0,a) return s}, Gk:function(a){var s,r,q,p for(s=this.a,r=t.CD,q=!1;(s.c-s.b&s.a.length-1)>>>0>a;q=!0){p=s.lJ() H.S0(p.b,p.c,null,r)}return q}} P.U2.prototype={ Os:function(a,b,c){this.a.bX(0,a,new P.U3()).qx(new P.BD(b,c,$.R))}, uJ:function(a,b){return this.a9d(a,b)}, a9d:function(a,b){var s=0,r=P.af(t.H),q=this,p,o,n var $async$uJ=P.a9(function(c,d){if(c===1)return P.ac(d,r) while(true)switch(s){case 0:o=q.a.i(0,a) n=o!=null case 2:if(!!0){s=3 break}if(n){p=o.a p=p.b!==p.c}else p=!1 if(!p){s=3 break}p=o.a.lJ() s=4 return P.ak(b.$2(p.a,p.gabl()),$async$uJ) case 4:s=2 break case 3:return P.ad(null,r)}}) return P.ae($async$uJ,r)}, OU:function(a,b,c){var s=this.a,r=s.i(0,b) if(r==null)s.n(0,b,new P.oz(P.jQ(c,t.S8),c)) else{r.c=c r.Gk(c)}}} P.U3.prototype={ $0:function(){return new P.oz(P.jQ(1,t.S8),1)}, $S:236} P.H_.prototype={ k:function(a,b){if(b==null)return!1 return b instanceof P.H_&&b.a==this.a&&b.b==this.b}, gt:function(a){return P.a5(this.a,this.b,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){return"OffsetBase("+J.aU(this.a,1)+", "+J.aU(this.b,1)+")"}} P.m.prototype={ gdB:function(){var s=this.a,r=this.b return Math.sqrt(s*s+r*r)}, guH:function(){var s=this.a,r=this.b return s*s+r*r}, a5:function(a,b){return new P.m(this.a-b.a,this.b-b.b)}, U:function(a,b){return new P.m(this.a+b.a,this.b+b.b)}, a4:function(a,b){return new P.m(this.a*b,this.b*b)}, hH:function(a,b){return new P.m(this.a/b,this.b/b)}, k:function(a,b){if(b==null)return!1 return b instanceof P.m&&b.a==this.a&&b.b==this.b}, gt:function(a){return P.a5(this.a,this.b,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){return"Offset("+J.aU(this.a,1)+", "+J.aU(this.b,1)+")"}} P.Q.prototype={ gO:function(a){return this.a<=0||this.b<=0}, a5:function(a,b){var s=this if(b instanceof P.Q)return new P.m(s.a-b.a,s.b-b.b) if(b instanceof P.m)return new P.Q(s.a-b.a,s.b-b.b) throw H.a(P.bc(b))}, U:function(a,b){return new P.Q(this.a+b.a,this.b+b.b)}, a4:function(a,b){return new P.Q(this.a*b,this.b*b)}, hH:function(a,b){return new P.Q(this.a/b,this.b/b)}, jS:function(a){return new P.m(a.a+this.a/2,a.b+this.b/2)}, a7t:function(a,b){return new P.m(b.a+this.a,b.b+this.b)}, C:function(a,b){var s=b.a if(s>=0)if(s=0&&s=s.c||s.b>=s.d}, bJ:function(a){var s=this,r=a.a,q=a.b return new P.x(s.a+r,s.b+q,s.c+r,s.d+q)}, af:function(a,b,c){var s=this return new P.x(s.a+b,s.b+c,s.c+b,s.d+c)}, hz:function(a){var s=this return new P.x(s.a-a,s.b-a,s.c+a,s.d+a)}, f_:function(a){var s,r,q,p=this,o=a.a o=Math.max(H.B(p.a),H.B(o)) s=a.b s=Math.max(H.B(p.b),H.B(s)) r=a.c r=Math.min(H.B(p.c),H.B(r)) q=a.d return new P.x(o,s,r,Math.min(H.B(p.d),H.B(q)))}, ka:function(a){var s,r,q,p=this,o=a.a o=Math.min(H.B(p.a),H.B(o)) s=a.b s=Math.min(H.B(p.b),H.B(s)) r=a.c r=Math.max(H.B(p.c),H.B(r)) q=a.d return new P.x(o,s,r,Math.max(H.B(p.d),H.B(q)))}, Cd:function(a){var s=this if(s.c<=a.a||a.c<=s.a)return!1 if(s.d<=a.b||a.d<=s.b)return!1 return!0}, gkJ:function(){var s=this return Math.min(Math.abs(s.c-s.a),Math.abs(s.d-s.b))}, ga7J:function(){var s=this.b return new P.m(this.a,s+(this.d-s)/2)}, gbn:function(){var s=this,r=s.a,q=s.b return new P.m(r+(s.c-r)/2,q+(s.d-q)/2)}, C:function(a,b){var s=this,r=b.a if(r>=s.a)if(r=s.b&&rd&&s!==0)return Math.min(a,d/s) return a}, r9:function(){var s=this,r=s.c,q=s.a,p=Math.abs(r-q),o=s.d,n=s.b,m=Math.abs(o-n),l=s.ch,k=s.f,j=s.e,i=s.r,h=s.x,g=s.z,f=s.y,e=s.Q,d=s.t2(s.t2(s.t2(s.t2(1,l,k,m),j,i,p),h,g,m),f,e,p) if(d<1)return new P.hc(q,n,r,o,j*d,k*d,i*d,h*d,f*d,g*d,e*d,l*d,!1) return new P.hc(q,n,r,o,j,k,i,h,f,g,e,l,!1)}, C:function(a,b){var s,r,q,p,o,n,m=this,l=b.a,k=m.a if(!(l=m.c)){s=b.b s=s=m.d}else s=!0 else s=!0 if(s)return!1 r=m.r9() q=r.e if(ls-q&&b.bs-q&&b.b>m.d-r.z){p=l-s+q o=r.z n=b.b-m.d+o}else{q=r.Q if(lm.d-r.ch){p=l-k-q o=r.ch n=b.b-m.d+o}else return!0}}}p/=q n/=o if(p*p+n*n>1)return!1 return!0}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(H.E(s)!==J.N(b))return!1 return b instanceof P.hc&&b.a==s.a&&b.b==s.b&&b.c==s.c&&b.d==s.d&&b.e===s.e&&b.f===s.f&&b.r===s.r&&b.x===s.x&&b.Q===s.Q&&b.ch===s.ch&&b.y===s.y&&b.z===s.z}, gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,s.r,s.x,s.Q,s.ch,s.y,s.z,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){var s,r,q=this,p=J.aU(q.a,1)+", "+J.aU(q.b,1)+", "+J.aU(q.c,1)+", "+J.aU(q.d,1),o=q.e,n=q.f,m=q.r,l=q.x if(new P.c2(o,n).k(0,new P.c2(m,l))){s=q.y r=q.z s=new P.c2(m,l).k(0,new P.c2(s,r))&&new P.c2(s,r).k(0,new P.c2(q.Q,q.ch))}else s=!1 if(s){if(o===n)return"RRect.fromLTRBR("+p+", "+C.d.ba(o,1)+")" return"RRect.fromLTRBXY("+p+", "+C.d.ba(o,1)+", "+C.d.ba(n,1)+")"}return"RRect.fromLTRBAndCorners("+p+", topLeft: "+new P.c2(o,n).j(0)+", topRight: "+new P.c2(m,l).j(0)+", bottomRight: "+new P.c2(q.y,q.z).j(0)+", bottomLeft: "+new P.c2(q.Q,q.ch).j(0)+")"}} P.aaO.prototype={} P.ais.prototype={ $0:function(){$.Sk()}, $C:"$0", $R:0, $S:0} P.ws.prototype={ j:function(a){return this.b}} P.iL.prototype={ j:function(a){var s=this return"KeyData(type: "+P.aze(s.b)+", physical: 0x"+J.anc(s.c,16)+", logical: 0x"+J.anc(s.d,16)+", character: "+H.c(s.e)+")"}} P.C.prototype={ gadt:function(){return this.gm(this)>>>16&255}, gQa:function(){return this.gm(this)>>>8&255}, ga7o:function(){return this.gm(this)&255}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof P.C&&b.gm(b)===s.gm(s)}, gt:function(a){return C.f.gt(this.gm(this))}, j:function(a){return"Color(0x"+C.c.qp(C.f.j9(this.gm(this),16),8,"0")+")"}, gm:function(a){return this.a}} P.yK.prototype={ j:function(a){return this.b}} P.yL.prototype={ j:function(a){return this.b}} P.Hp.prototype={ j:function(a){return this.b}} P.c_.prototype={ j:function(a){return this.b}} P.po.prototype={ j:function(a){return this.b}} P.Ti.prototype={ j:function(a){return this.b}} P.qi.prototype={ k:function(a,b){if(b==null)return!1 return b instanceof P.qi&&b.a===this.a&&b.b===this.b}, gt:function(a){return P.a5(this.a,this.b,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){return"MaskFilter.blur("+this.a.j(0)+", "+C.d.ba(this.b,1)+")"}} P.pO.prototype={ j:function(a){return this.b}} P.Z1.prototype={ j:function(a){return this.b}} P.J8.prototype={ k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 return b instanceof P.J8&&J.d(b.a,s.a)&&J.d(b.b,s.b)&&b.c==s.c}, gt:function(a){return P.a5(this.a,this.b,this.c,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){return"TextShadow("+H.c(this.a)+", "+H.c(this.b)+", "+H.c(this.c)+")"}} P.a1g.prototype={} P.HI.prototype={ Ao:function(a,b,c){var s=this,r=c==null?s.c:c,q=b==null?s.d:b,p=a==null?s.f:a return new P.HI(s.a,!1,r,q,s.e,p,s.r)}, a8r:function(a){return this.Ao(null,a,null)}, LG:function(a){return this.Ao(a,null,null)}, a8s:function(a){return this.Ao(null,null,a)}} P.KC.prototype={ j:function(a){return H.E(this).j(0)+"[window: null, geometry: "+C.Z.j(0)+"]"}} P.jH.prototype={ j:function(a){var s=this.a return H.E(this).j(0)+"(buildDuration: "+(H.c((P.cJ(s[2],0).a-P.cJ(s[1],0).a)*0.001)+"ms")+", rasterDuration: "+(H.c((P.cJ(s[4],0).a-P.cJ(s[3],0).a)*0.001)+"ms")+", vsyncOverhead: "+(H.c((P.cJ(s[1],0).a-P.cJ(s[0],0).a)*0.001)+"ms")+", totalSpan: "+(H.c((P.cJ(s[4],0).a-P.cJ(s[0],0).a)*0.001)+"ms")+")"}} P.pb.prototype={ j:function(a){return this.b}} P.jS.prototype={ gnl:function(a){var s=this.a,r=C.b7.i(0,s) return r==null?s:r}, gup:function(){var s=this.c,r=C.bn.i(0,s) return r==null?s:r}, k:function(a,b){var s,r=this if(b==null)return!1 if(r===b)return!0 if(b instanceof P.jS)if(b.gnl(b)==r.gnl(r))s=b.gup()==r.gup() else s=!1 else s=!1 return s}, gt:function(a){return P.a5(this.gnl(this),null,this.gup(),C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){return this.a42("_")}, a42:function(a){var s=this,r=H.c(s.gnl(s)) if(s.c!=null)r+=a+H.c(s.gup()) return r.charCodeAt(0)==0?r:r}} P.k_.prototype={ j:function(a){return this.b}} P.lt.prototype={ j:function(a){return this.b}} P.xy.prototype={ j:function(a){return this.b}} P.qz.prototype={ j:function(a){return"PointerData(x: "+H.c(this.x)+", y: "+H.c(this.y)+")"}} P.qA.prototype={} P.cv.prototype={ j:function(a){switch(this.a){case 1:return"SemanticsAction.tap" case 2:return"SemanticsAction.longPress" case 4:return"SemanticsAction.scrollLeft" case 8:return"SemanticsAction.scrollRight" case 16:return"SemanticsAction.scrollUp" case 32:return"SemanticsAction.scrollDown" case 64:return"SemanticsAction.increase" case 128:return"SemanticsAction.decrease" case 256:return"SemanticsAction.showOnScreen" case 512:return"SemanticsAction.moveCursorForwardByCharacter" case 1024:return"SemanticsAction.moveCursorBackwardByCharacter" case 2048:return"SemanticsAction.setSelection" case 4096:return"SemanticsAction.copy" case 8192:return"SemanticsAction.cut" case 16384:return"SemanticsAction.paste" case 32768:return"SemanticsAction.didGainAccessibilityFocus" case 65536:return"SemanticsAction.didLoseAccessibilityFocus" case 131072:return"SemanticsAction.customAction" case 262144:return"SemanticsAction.dismiss" case 524288:return"SemanticsAction.moveCursorForwardByWord" case 1048576:return"SemanticsAction.moveCursorBackwardByWord" case 2097152:return"SemanticsAction.setText"}return""}} P.cp.prototype={ j:function(a){switch(this.a){case 1:return"SemanticsFlag.hasCheckedState" case 2:return"SemanticsFlag.isChecked" case 4:return"SemanticsFlag.isSelected" case 8:return"SemanticsFlag.isButton" case 4194304:return"SemanticsFlag.isLink" case 16:return"SemanticsFlag.isTextField" case 2097152:return"SemanticsFlag.isFocusable" case 32:return"SemanticsFlag.isFocused" case 64:return"SemanticsFlag.hasEnabledState" case 128:return"SemanticsFlag.isEnabled" case 256:return"SemanticsFlag.isInMutuallyExclusiveGroup" case 512:return"SemanticsFlag.isHeader" case 1024:return"SemanticsFlag.isObscured" case 2048:return"SemanticsFlag.scopesRoute" case 4096:return"SemanticsFlag.namesRoute" case 8192:return"SemanticsFlag.isHidden" case 16384:return"SemanticsFlag.isImage" case 32768:return"SemanticsFlag.isLiveRegion" case 65536:return"SemanticsFlag.hasToggledState" case 131072:return"SemanticsFlag.isToggled" case 262144:return"SemanticsFlag.hasImplicitScrolling" case 524288:return"SemanticsFlag.isMultiline" case 1048576:return"SemanticsFlag.isReadOnly" case 16777216:return"SemanticsFlag.isKeyboardKey"}return""}} P.a4F.prototype={} P.ls.prototype={ j:function(a){return this.b}} P.h5.prototype={ j:function(a){var s=C.x6.i(0,this.a) s.toString return s}} P.kg.prototype={ j:function(a){return this.b}} P.yV.prototype={ j:function(a){return this.b}} P.yY.prototype={ k:function(a,b){if(b==null)return!1 return b instanceof P.yY&&b.a===this.a}, gt:function(a){return C.f.gt(this.a)}, j:function(a){var s,r=this.a if(r===0)return"TextDecoration.none" s=H.b([],t.s) if((r&1)!==0)s.push("underline") if((r&2)!==0)s.push("overline") if((r&4)!==0)s.push("lineThrough") if(s.length===1)return"TextDecoration."+s[0] return"TextDecoration.combine(["+C.b.bI(s,", ")+"])"}} P.oi.prototype={ j:function(a){return this.b}} P.oj.prototype={ j:function(a){return this.b}} P.f8.prototype={ k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof P.f8&&b.a==s.a&&b.b==s.b&&b.c==s.c&&b.d==s.d&&b.e===s.e}, gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){var s=this return"TextBox.fromLTRBD("+J.aU(s.a,1)+", "+J.aU(s.b,1)+", "+J.aU(s.c,1)+", "+J.aU(s.d,1)+", "+s.e.j(0)+")"}} P.yU.prototype={ j:function(a){return this.b}} P.aV.prototype={ k:function(a,b){if(b==null)return!1 if(J.N(b)!==H.E(this))return!1 return b instanceof P.aV&&b.a==this.a&&b.b===this.b}, gt:function(a){return P.a5(this.a,this.b,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){return H.E(this).j(0)+"(offset: "+H.c(this.a)+", affinity: "+this.b.j(0)+")"}} P.eM.prototype={ ghB:function(){return this.a>=0&&this.b>=0}, k:function(a,b){if(b==null)return!1 if(this===b)return!0 return b instanceof P.eM&&b.a==this.a&&b.b==this.b}, gt:function(a){return P.a5(J.a3(this.a),J.a3(this.b),C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){return"TextRange(start: "+H.c(this.a)+", end: "+H.c(this.b)+")"}} P.iT.prototype={ k:function(a,b){if(b==null)return!1 if(J.N(b)!==H.E(this))return!1 return b instanceof P.iT&&b.a==this.a}, gt:function(a){return J.a3(this.a)}, j:function(a){return H.E(this).j(0)+"(width: "+H.c(this.a)+")"}} P.Dx.prototype={ j:function(a){return this.b}} P.Tn.prototype={ j:function(a){return"BoxWidthStyle.tight"}} P.rV.prototype={ j:function(a){return this.b}} P.Xg.prototype={} P.mX.prototype={} P.Jd.prototype={} P.D1.prototype={ j:function(a){var s=H.b([],t.s) return"AccessibilityFeatures"+H.c(s)}, k:function(a,b){if(b==null)return!1 if(J.N(b)!==H.E(this))return!1 return b instanceof P.D1&&!0}, gt:function(a){return C.f.gt(0)}} P.DA.prototype={ j:function(a){return this.b}} P.TI.prototype={ k:function(a,b){if(b==null)return!1 return this===b}, gt:function(a){return P.z.prototype.gt.call(this,this)}} P.a1j.prototype={} P.ST.prototype={ gl:function(a){return a.length}} P.Dg.prototype={ aT:function(a){return P.hw(a.close(),t.z)}} P.Dh.prototype={ am:function(a,b){return P.hv(a.get(b))!=null}, i:function(a,b){return P.hv(a.get(b))}, K:function(a,b){var s,r=a.entries() for(;!0;){s=r.next() if(s.done)return b.$2(s.value[0],P.hv(s.value[1]))}}, gaj:function(a){var s=H.b([],t.s) this.K(a,new P.SU(s)) return s}, gaZ:function(a){var s=H.b([],t.n4) this.K(a,new P.SV(s)) return s}, gl:function(a){return a.size}, gO:function(a){return a.size===0}, gaV:function(a){return a.size!==0}, n:function(a,b,c){throw H.a(P.F("Not supported"))}, bX:function(a,b,c){throw H.a(P.F("Not supported"))}, u:function(a,b){throw H.a(P.F("Not supported"))}, $iW:1} P.SU.prototype={ $2:function(a,b){return this.a.push(a)}, $S:16} P.SV.prototype={ $2:function(a,b){return this.a.push(b)}, $S:16} P.SW.prototype={ gl:function(a){return a.length}} P.Do.prototype={ gb9:function(a){return a.state}} P.a0B.prototype={ gl:function(a){return a.length}} P.Ld.prototype={} P.SF.prototype={ gar:function(a){return a.name}} P.JK.prototype={ gl:function(a){return a.length}, i:function(a,b){var s if(b>>>0!==b||b>=a.length)throw H.a(P.bY(b,a,null,null,null)) s=P.hv(a.item(b)) s.toString return s}, n:function(a,b,c){throw H.a(P.F("Cannot assign element of immutable List."))}, sl:function(a,b){throw H.a(P.F("Cannot resize immutable List."))}, gI:function(a){if(a.length>0)return a[0] throw H.a(P.a4("No elements"))}, gL:function(a){var s=a.length if(s>0)return a[s-1] throw H.a(P.a4("No elements"))}, b0:function(a,b){return this.i(a,b)}, $iM:1, $il:1, $iv:1} P.PO.prototype={} P.PP.prototype={} Y.bJ.prototype={ B:function(a,b){var s,r,q,p=this.d if((p.c&4)!==0)return try{$.jo().toString p.B(0,b)}catch(q){s=H.U(q) r=H.aB(q) this.wF(0,s,r)}}, C7:function(a,b,c){this.wF(0,b,c)}, aT:function(a){var s=0,r=P.af(t.H),q,p=this,o var $async$aT=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)switch(s){case 0:s=3 return P.ak(p.d.aT(0),$async$aT) case 3:o=p.e s=4 return P.ak(o==null?null:o.aH(0),$async$aT) case 4:q=p.RM(0) s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$aT,r)}, oq:function(){var s=this,r=s.d s.e=new P.ko(r,H.u(r).h("ko<1>")).a7e(new Y.Tg(s),H.u(s).h("ia*")).abP(new Y.Th(s),s.gacv(s))}} Y.Tg.prototype={ $1:function(a){var s=this.a,r=s.bo(a) r.toString return new P.oG(new Y.Tf(s,a),r,r.$ti.h("@").a3(H.u(s).h("ia*")).h("oG<1,2>"))}, $S:function(){return H.u(this.a).h("bg*>*(bJ.0*)")}} Y.Tf.prototype={ $1:function(a){var s=this.a,r=H.u(s) return new M.ia(this.b,s.b,a,r.h("@").a3(r.h("bJ.1*")).h("ia<1,2>"))}, $S:function(){return H.u(this.a).h("ia*(bJ.1*)")}} Y.Th.prototype={ $1:function(a){var s,r,q,p=a.b,o=this.a if(J.d(p,o.b)&&o.f)return try{$.jo().toString o.RN(p)}catch(q){s=H.U(q) r=H.aB(q) o.wF(0,s,r)}o.f=!0}, $S:function(){return H.u(this.a).h("a6(ia*)")}} F.Tb.prototype={} X.ju.prototype={ k:function(a,b){var s,r=this if(b==null)return!1 if(r!==b)s=H.u(r).h("ju*").b(b)&&H.E(r)===H.E(b)&&J.d(r.a,b.a)&&J.d(r.b,b.b) else s=!0 return s}, gt:function(a){return(J.a3(this.a)^J.a3(this.b))>>>0}, j:function(a){return"Change { currentState: "+H.c(this.a)+", nextState: "+H.c(this.b)+" }"}} L.cI.prototype={ gb9:function(a){return this.b}, a9p:function(a){var s=this,r=s.a if(((r==null?s.a=P.od(H.u(s).h("cI.0*")):r).c&4)!==0)return if(J.d(a,s.b)&&s.gxT())return $.jo().toString s.b=a s.a.B(0,a) s.sxT(!0)}, C7:function(a,b,c){$.jo().toString}, cX:function(a,b,c,d){var s=this.a if(s==null)s=this.a=P.od(H.u(this).h("cI.0*")) return new P.ko(s,H.u(s).h("ko<1>")).cX(a,b,c,d)}, nn:function(a){return this.cX(a,null,null,null)}, no:function(a,b,c){return this.cX(a,null,b,c)}, giU:function(){return!0}, aT:function(a){var s $.jo().toString s=this.a return(s==null?this.a=P.od(H.u(this).h("cI.0*")):s).aT(0)}, gxT:function(){return this.c}, sxT:function(a){return this.c=a}} M.ia.prototype={ k:function(a,b){var s,r=this if(b==null)return!1 if(r!==b)s=r.$ti.h("ia<1*,2*>*").b(b)&&H.E(r)===H.E(b)&&J.d(r.a,b.a)&&J.d(r.c,b.c)&&J.d(r.b,b.b) else s=!0 return s}, gt:function(a){return(J.a3(this.a)^J.a3(this.c)^J.a3(this.b))>>>0}, j:function(a){return"Transition { currentState: "+H.c(this.a)+", event: "+H.c(this.c)+", nextState: "+H.c(this.b)+" }"}} T.hh.prototype={ gM:function(a){return new T.JQ(this.a,0,0)}, gI:function(a){var s=this.a,r=s.length return r===0?H.e(P.a4("No element")):C.c.V(s,0,new A.iy(s,r,0,176).ih())}, gL:function(a){var s=this.a,r=s.length return r===0?H.e(P.a4("No element")):C.c.bw(s,new A.SY(s,0,r,176).ih())}, gO:function(a){return this.a.length===0}, gaV:function(a){return this.a.length!==0}, gl:function(a){var s,r,q=this.a,p=q.length if(p===0)return 0 s=new A.iy(q,p,0,176) for(r=0;s.ih()>=0;)++r return r}, b0:function(a,b){var s,r,q,p,o,n P.cV(b,"index") s=this.a r=s.length if(r!==0){q=new A.iy(s,r,0,176) for(p=0,o=0;n=q.ih(),n>=0;o=n){if(p===b)return C.c.V(s,o,n);++p}}else p=0 throw H.a(P.bY(b,this,"index",null,p))}, C:function(a,b){var s if(typeof b=="string"){s=b.length if(s===0)return!1 if(new A.iy(b,s,0,176).ih()!==s)return!1 s=this.a return T.aDH(s,b,0,s.length)>=0}return!1}, Js:function(a,b,c){var s,r if(a===0||b===this.a.length)return b s=this.a c=new A.iy(s,s.length,b,176) do{r=c.ih() if(r<0)break if(--a,a>0){b=r continue}else{b=r break}}while(!0) return b}, fb:function(a,b){P.cV(b,"count") return this.a5k(b)}, a5k:function(a){var s=this.Js(a,0,null),r=this.a if(s===r.length)return C.hS return new T.hh(J.uq(r,s))}, hF:function(a,b){P.cV(b,"count") return this.a5V(b)}, a5V:function(a){var s=this.Js(a,0,null),r=this.a if(s===r.length)return this return new T.hh(J.e7(r,0,s))}, QU:function(a,b){var s,r,q,p=this.a,o=p.length if(o!==0){s=new A.iy(p,o,0,176) for(r=0;q=s.ih(),q>=0;r=q)if(!b.$1(C.c.V(p,r,q))){if(r===0)return this if(r===o)return C.hS return new T.hh(C.c.bw(p,r))}}return C.hS}, U:function(a,b){return new T.hh(J.mk(this.a,b.a))}, P9:function(a){return new T.hh(this.a.toLowerCase())}, k:function(a,b){if(b==null)return!1 return t.lF.b(b)&&this.a==b.a}, gt:function(a){return J.a3(this.a)}, j:function(a){return this.a}, $ianC:1} T.JQ.prototype={ gw:function(a){var s=this,r=s.d return r==null?s.d=J.e7(s.a,s.b,s.c):r}, q:function(){return this.F2(1,this.c)}, F2:function(a,b){var s,r,q,p,o,n,m,l,k,j,i=this if(a>0){s=i.c for(r=i.a,q=r.length,p=J.cj(r),o=176;ss;){o=j.c=p-1 n=q.al(r,o) if((n&64512)!==56320){o=j.d=C.c.W(i,j.d&240|S.CK(n)) if(((o>=208?j.d=A.ai5(r,s,j.c,o):o)&1)===0)return p continue}if(o>=s){m=C.c.al(r,o-1) if((m&64512)===55296){l=S.ui(m,n) o=--j.c}else l=2}else l=2 k=j.d=C.c.W(i,j.d&240|l) if(((k>=208?j.d=A.ai5(r,s,o,k):k)&1)===0)return p}q=j.d=C.c.W(i,j.d&240|15) if(((q>=208?j.d=A.ai5(r,s,p,q):q)&1)===0)return j.c return-1}, gb9:function(a){return this.d}} M.bf.prototype={ i:function(a,b){var s,r=this if(!r.tg(b))return null s=r.c.i(0,r.a.$1(r.$ti.h("bf.K").a(b))) return s==null?null:s.gm(s)}, n:function(a,b,c){var s,r=this if(!r.tg(b))return s=r.$ti r.c.n(0,r.a.$1(b),new P.bm(b,c,s.h("@").a3(s.h("bf.V")).h("bm<1,2>")))}, J:function(a,b){b.K(0,new M.TJ(this))}, hY:function(a,b,c){var s=this.c return s.hY(s,b,c)}, am:function(a,b){var s=this if(!s.tg(b))return!1 return s.c.am(0,s.a.$1(s.$ti.h("bf.K").a(b)))}, gh_:function(a){var s=this.c return s.gh_(s).dn(0,new M.TK(this),this.$ti.h("bm"))}, K:function(a,b){this.c.K(0,new M.TL(this,b))}, gO:function(a){var s=this.c return s.gO(s)}, gaV:function(a){var s=this.c return s.gaV(s)}, gaj:function(a){var s=this.c s=s.gaZ(s) return H.jT(s,new M.TM(this),H.u(s).h("l.E"),this.$ti.h("bf.K"))}, gl:function(a){var s=this.c return s.gl(s)}, ic:function(a,b,c,d){var s=this.c return s.ic(s,new M.TN(this,b,c,d),c,d)}, fp:function(a,b){return this.ic(a,b,t.z,t.z)}, bX:function(a,b,c){return J.aiS(this.c.bX(0,this.a.$1(b),new M.TO(this,b,c)))}, u:function(a,b){var s,r=this if(!r.tg(b))return null s=r.c.u(0,r.a.$1(r.$ti.h("bf.K").a(b))) return s==null?null:s.gm(s)}, gaZ:function(a){var s=this.c s=s.gaZ(s) return H.jT(s,new M.TP(this),H.u(s).h("l.E"),this.$ti.h("bf.V"))}, j:function(a){return P.Gw(this)}, tg:function(a){var s if(this.$ti.h("bf.K").b(a)){s=this.b.$1(a) s=s}else s=!1 return s}, $iW:1} M.TJ.prototype={ $2:function(a,b){this.a.n(0,a,b) return b}, $S:function(){return this.a.$ti.h("~(bf.K,bf.V)")}} M.TK.prototype={ $1:function(a){var s=this.a.$ti return new P.bm(J.awe(a.gm(a)),J.aiS(a.gm(a)),s.h("@").a3(s.h("bf.V")).h("bm<1,2>"))}, $S:function(){return this.a.$ti.h("bm(bm>)")}} M.TL.prototype={ $2:function(a,b){return this.b.$2(b.gdN(b),b.gm(b))}, $S:function(){return this.a.$ti.h("~(bf.C,bm)")}} M.TM.prototype={ $1:function(a){return a.gdN(a)}, $S:function(){return this.a.$ti.h("bf.K(bm)")}} M.TN.prototype={ $2:function(a,b){return this.b.$2(b.gdN(b),b.gm(b))}, $S:function(){return this.a.$ti.a3(this.c).a3(this.d).h("bm<1,2>(bf.C,bm)")}} M.TO.prototype={ $0:function(){var s=this.a.$ti return new P.bm(this.b,this.c.$0(),s.h("@").a3(s.h("bf.V")).h("bm<1,2>"))}, $S:function(){return this.a.$ti.h("bm()")}} M.TP.prototype={ $1:function(a){return a.gm(a)}, $S:function(){return this.a.$ti.h("bf.V(bm)")}} U.EO.prototype={ eC:function(a,b){return J.d(a,b)}, dL:function(a,b){return J.a3(b)}} U.wk.prototype={ eC:function(a,b){var s,r,q,p if(a===b)return!0 s=J.as(a) r=J.as(b) for(q=this.a;!0;){p=s.q() if(p!==r.q())return!1 if(!p)return!0 if(!q.eC(s.gw(s),r.gw(r)))return!1}}, dL:function(a,b){var s,r,q for(s=J.as(b),r=this.a,q=0;s.q();){q=q+r.dL(0,s.gw(s))&2147483647 q=q+(q<<10>>>0)&2147483647 q^=q>>>6}q=q+(q<<3>>>0)&2147483647 q^=q>>>11 return q+(q<<15>>>0)&2147483647}} U.qc.prototype={ eC:function(a,b){var s,r,q,p,o if(a===b)return!0 s=J.ag(a) r=s.gl(a) q=J.ag(b) if(r!=q.gl(b))return!1 for(p=this.a,o=0;o>>0)&2147483647 q^=q>>>6}q=q+(q<<3>>>0)&2147483647 q^=q>>>11 return q+(q<<15>>>0)&2147483647}} U.u9.prototype={ eC:function(a,b){var s,r,q,p,o if(a===b)return!0 s=this.a r=P.fr(s.ga9F(),s.gaaW(s),s.gabD(),H.u(this).h("u9.E"),t.z) for(s=J.as(a),q=0;s.q();){p=s.gw(s) o=r.i(0,p) r.n(0,p,J.mk(o==null?0:o,1));++q}for(s=J.as(b);s.q();){p=s.gw(s) o=r.i(0,p) if(o==null||J.d(o,0))return!1 r.n(0,p,J.aiI(o,1));--q}return q===0}, dL:function(a,b){var s,r,q for(s=J.as(b),r=this.a,q=0;s.q();)q=q+r.dL(0,s.gw(s))&2147483647 q=q+(q<<3>>>0)&2147483647 q^=q>>>11 return q+(q<<15>>>0)&2147483647}} U.r3.prototype={} U.tJ.prototype={ gt:function(a){var s=this.a return 3*s.a.dL(0,this.b)+7*s.b.dL(0,this.c)&2147483647}, k:function(a,b){var s if(b==null)return!1 if(b instanceof U.tJ){s=this.a s=s.a.eC(this.b,b.b)&&s.b.eC(this.c,b.c)}else s=!1 return s}} U.wK.prototype={ eC:function(a,b){var s,r,q,p,o,n,m if(a===b)return!0 s=J.ag(a) r=J.ag(b) if(s.gl(a)!=r.gl(b))return!1 q=P.fr(null,null,null,t.PJ,t.S) for(p=J.as(s.gaj(a));p.q();){o=p.gw(p) n=new U.tJ(this,o,s.i(a,o)) m=q.i(0,n) q.n(0,n,(m==null?0:m)+1)}for(s=J.as(r.gaj(b));s.q();){o=s.gw(s) n=new U.tJ(this,o,r.i(b,o)) m=q.i(0,n) if(m==null||m===0)return!1 q.n(0,n,m-1)}return!0}, dL:function(a,b){var s,r,q,p,o,n for(s=J.k(b),r=J.as(s.gaj(b)),q=this.a,p=this.b,o=0;r.q();){n=r.gw(r) o=o+3*q.dL(0,n)+7*p.dL(0,s.i(b,n))&2147483647}o=o+(o<<3>>>0)&2147483647 o^=o>>>11 return o+(o<<15>>>0)&2147483647}} U.EM.prototype={ eC:function(a,b){var s=this,r=t.Ro if(r.b(a))return r.b(b)&&new U.r3(s,t.n5).eC(a,b) r=t.f if(r.b(a))return r.b(b)&&new U.wK(s,s,t.Dx).eC(a,b) r=t.j if(r.b(a))return r.b(b)&&new U.qc(s,t.wO).eC(a,b) r=t.JY if(r.b(a))return r.b(b)&&new U.wk(s,t.K9).eC(a,b) return J.d(a,b)}, dL:function(a,b){var s=this if(t.Ro.b(b))return new U.r3(s,t.n5).dL(0,b) if(t.f.b(b))return new U.wK(s,s,t.Dx).dL(0,b) if(t.j.b(b))return new U.qc(s,t.wO).dL(0,b) if(t.JY.b(b))return new U.wk(s,t.K9).dL(0,b) return J.a3(b)}, abE:function(a){!t.JY.b(a) return!0}} Y.FR.prototype={ rS:function(a){var s=this.b[a] return s==null?null:s}, B:function(a,b){var s,r,q,p,o=this;++o.d s=o.c r=o.b.length if(s===r){q=r*2+1 if(q<7)q=7 p=P.b6(q,null,!1,o.$ti.h("1?")) C.b.cV(p,0,o.c,o.b) o.b=p}o.XY(b,o.c++)}, gl:function(a){return this.c}, j:function(a){var s=this.b return P.ajI(H.eJ(s,0,H.e3(this.c,"count",t.S),H.Y(s).c),"(",")")}, XY:function(a,b){var s,r,q,p=this for(s=p.a;b>0;b=r){r=C.f.cr(b-1,2) q=p.b[r] if(q==null)q=null if(s.$2(a,q)>0)break C.b.n(p.b,b,q)}C.b.n(p.b,b,a)}, XX:function(a,b){var s,r,q,p,o,n,m,l,k=this,j=b*2+2 for(s=k.a;r=k.c,j0){C.b.n(k.b,b,l) b=q}}C.b.n(k.b,b,a)}} N.Yk.prototype={ gfY:function(){return C.oe}} R.Yl.prototype={ c6:function(a){return R.aD9(a,0,a.length)}} B.EY.prototype={ k:function(a,b){var s,r,q,p,o if(b==null)return!1 if(b instanceof B.EY){s=this.a r=b.a q=s.length if(q!==r.length)return!1 for(p=0,o=0;o>>0)-s,q=0;q1125899906842623)throw H.a(P.F("Hashing is unsupported for messages with more than 2^53 bits.")) p=r*8 o=l.b l.J(0,new Uint8Array(8)) n=H.ha(l.a.buffer,0,null) n.setUint32(o,C.f.ew(p,32),!1) n.setUint32(o+4,p>>>0,!1)}} V.a4J.prototype={} V.aes.prototype={ aen:function(a){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c for(s=this.y,r=0;r<16;++r)s[r]=a[r] for(r=16;r<64;++r){q=s[r-2] p=s[r-7] o=s[r-15] s[r]=((((q>>>17|q<<15)^(q>>>19|q<<13)^q>>>10)>>>0)+p>>>0)+((((o>>>7|o<<25)^(o>>>18|o<<14)^o>>>3)>>>0)+s[r-16]>>>0)>>>0}q=this.x n=q[0] m=q[1] l=q[2] k=q[3] j=q[4] i=q[5] h=q[6] g=q[7] for(f=n,r=0;r<64;++r,g=h,h=i,i=j,j=d,k=l,l=m,m=f,f=c){e=(g+(((j>>>6|j<<26)^(j>>>11|j<<21)^(j>>>25|j<<7))>>>0)>>>0)+(((j&i^~j&h)>>>0)+(C.rN[r]+s[r]>>>0)>>>0)>>>0 d=k+e>>>0 c=e+((((f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10))>>>0)+((f&m^f&l^m&l)>>>0)>>>0)>>>0}q[0]=f+n>>>0 q[1]=m+q[1]>>>0 q[2]=l+q[2]>>>0 q[3]=k+q[3]>>>0 q[4]=j+q[4]>>>0 q[5]=i+q[5]>>>0 q[6]=h+q[6]>>>0 q[7]=g+q[7]>>>0}} V.aer.prototype={} B.Ff.prototype={ k:function(a,b){var s if(b==null)return!1 if(this!==b)s=b instanceof B.Ff&&H.E(this)===H.E(b)&&Y.aFe(this.gft(),b.gft()) else s=!0 return s}, gt:function(a){var s,r=H.di(H.E(this)),q=C.b.lo(this.gft(),0,Y.aFf()) if(q==null)q=0 s=q+((q&67108863)<<3)&536870911 s^=s>>>11 return(r^s+((s&16383)<<15)&536870911)>>>0}, j:function(a){var s,r=this switch(null){case!0:return Y.aFS(H.E(r),r.gft()) case!1:return H.E(r).j(0) default:s=H.E(r).j(0) return s}}} Y.agr.prototype={ $2:function(a,b){var s=this.a,r=s.a s.a=(r^Y.al0(r,[a,b]))>>>0}, $S:72} Y.aib.prototype={ $1:function(a){var s=a==null?null:J.bB(a) return s==null?"":s}, $S:230} R.Y5.prototype={ j:function(a){return this.b}} R.Y4.prototype={} R.D9.prototype={} R.eO.prototype={ j:function(a){return this.b}} R.y6.prototype={ j:function(a){return this.b}} R.IH.prototype={} R.II.prototype={ j:function(a){return u.n+this.b+"'"}, $icc:1} L.FD.prototype={ ach:function(a,b,c){var s,r=this.NO(a,b,!0,null,null,c,null),q=r.a,p=new P.a1($.R,t.LR),o=new P.aH(p,t.zh) if(r.b===C.Bt)o.ci(0,"Non visual route type.") else if(q!=null){s=K.qn(a,!1) p=s.qx(q) o.ez(0)}else{P.uk(u.n+b+"'.") o.hZ(new R.II(b))}return p}, NO:function(a,b,c,d,e,f,g){var s,r,q,p,o,n,m,l,k,j=null,i={} i.a=e s=d==null?new K.dU(b,j):d r=s.a if(r==null){r=b==null?r:b s=new K.dU(r,s.b)}q=this.a.ac2(b) r=q==null p=r?j:q.a o=p==null if((o?j:p.d)!=null)i.a=o?j:p.d n=!o if(n)m=p.b else m=j i.b=f if(f==null){if(n)l=p.c else l=C.mm i.b=l}if(o&&!0)return new R.IH(j,C.Bu) k=r?j:q.b if(k==null)k=P.y(t.X,t.gP) m.toString return new R.IH(new L.Xa(i,this,!0,m,g,p).$2(s,k),C.Bs)}, ac3:function(a,b,c){return this.NO(a,b,!0,c,null,null,null)}, a5s:function(a){return new L.X4(a)}, Py:function(a){return this.ac3(null,a.a,a).a}} L.Xa.prototype={ $2:function(a,b){var s,r,q,p,o,n,m,l,k,j=this,i=null,h=j.a,g=h.b if(g===C.mm||g===C.mn)return V.ajU(new L.X5(j.d,b),g===C.mn,j.c,a,t.z) else if(g===C.FV||g===C.mq)return V.ajU(new L.X6(j.d,b),g===C.mq,j.c,a,t.z) else if(g===C.FO||g===C.mo){h=H.b([],t.Zt) s=$.R r=t.LR q=t.zh p=S.xD(C.by) o=H.b([],t.fy) n=$.R return new D.vo(new L.X7(j.d,b),j.c,i,g===C.mo,i,h,new N.aY(i,t.Ts),new N.aY(i,t.A),new S.qv(),i,new P.aH(new P.a1(s,r),q),p,o,a,new B.cZ(i,new P.a7(t.V),t.XR),new P.aH(new P.a1(n,r),q),t.EY)}else{if(g===C.FU){g=j.f m=g==null?i:g.e}else m=j.b.a5s(g) g=h.b===C.FP if(g)s=C.G else{s=h.a if(s==null){s=j.f s=s==null?i:s.d}}if(g)h=C.G else{h=h.a if(h==null){h=j.f h=h==null?i:h.d}}g=g?new L.X8():m r=H.b([],t.Zt) q=$.R p=t.LR o=t.zh n=S.xD(C.by) l=H.b([],t.fy) k=$.R return new V.xk(new L.X9(j.d,b),g,s,h,j.c,!1,i,r,new N.aY(i,t.Ts),new N.aY(i,t.A),new S.qv(),i,new P.aH(new P.a1(q,p),o),n,l,a,new B.cZ(i,new P.a7(t.V),t.XR),new P.aH(new P.a1(k,p),o),t.K3)}}, $S:217} L.X5.prototype={ $1:function(a){return this.a.b.$2(a,this.b)}, $S:75} L.X6.prototype={ $1:function(a){return this.a.b.$2(a,this.b)}, $S:75} L.X7.prototype={ $1:function(a){return this.a.b.$2(a,this.b)}, $S:75} L.X9.prototype={ $3:function(a,b,c){return this.a.b.$2(a,this.b)}, $C:"$3", $R:3, $S:216} L.X8.prototype={ $4:function(a,b,c,d){return d}, $C:"$4", $R:4, $S:140} L.X4.prototype={ $4:function(a,b,c,d){var s,r=this.a if(r===C.mp)return K.pM(!1,d,b) else{if(r===C.FQ)s=C.ld else if(r===C.FS)s=C.cy else if(r===C.FT)s=C.az else s=r===C.FR?new P.m(0,-1):C.az r=t.wr return K.yy(d,new R.b3(b,new R.aM(s,C.i,r),r.h("b3")),null,!0)}}, $C:"$4", $R:4, $S:140} Y.IK.prototype={ j:function(a){return this.b}} Y.SJ.prototype={} Y.IJ.prototype={} Y.qU.prototype={} Y.a3q.prototype={ a7_:function(a){var s,r,q,p,o,n,m,l,k,j,i=this,h=a.a if(h==="/"){if(i.b)throw H.a("Default route was already defined") s=t.tk r=new Y.qU(h,C.lC,H.b([],s),H.b([],t.ws)) r.c=H.b([a],s) i.a.push(r) i.b=!0 return}q=(C.c.bv(h,"/")?C.c.bw(h,1):h).split("/") for(s=t.tk,p=t.ws,o=i.a,n=null,m=0;l=q.length,m0){a3=C.b.gI(a5) a6=a3.a s=a6.c.length>0 if(s){a7=new Y.SJ(a6.c[0],P.y(n,m)) a7.b=a3.b return a7}}return null}, a36:function(a,b){var s,r,q,p=this.a if(b!=null)p=b.d for(s=p.length,r=0;r#"+Y.cf(this)+"("+this.vR()+")"}, vR:function(){switch(this.gbg(this)){case C.aC:return"\u25b6" case C.as:return"\u25c0" case C.a7:return"\u23ed" case C.N:return"\u23ee" default:throw H.a(H.j(u.I))}}} G.L3.prototype={ j:function(a){return this.b}} G.D7.prototype={ j:function(a){return this.b}} G.pa.prototype={ gm:function(a){return this.gbz()}, gbz:function(){var s=this.y return s===$?H.e(H.t("_value")):s}, sm:function(a,b){var s=this s.fB(0) s.yE(b) s.aa() s.rF()}, geJ:function(){var s=this.r if(!(s!=null&&s.a!=null))return 0 s=this.x s.toString return s.hu(0,this.z.a/1e6)}, yE:function(a){var s=this,r=s.a,q=s.b s.y=J.aW(a,r,q) if(s.gbz()===r)s.ch=C.N else if(s.gbz()===q)s.ch=C.a7 else s.ch=s.Q===C.aw?C.aC:C.as}, gbg:function(a){var s=this.ch return s===$?H.e(H.t("_status")):s}, gmF:function(){var s=this.ch return s===$?H.e(H.t("_status")):s}, uX:function(a,b){var s=this s.Q=C.aw if(b!=null)s.sm(0,b) return s.F5(s.b)}, cm:function(a){return this.uX(a,null)}, OX:function(a,b){var s=this s.Q=C.is if(b!=null)s.sm(0,b) return s.F5(s.a)}, cT:function(a){return this.OX(a,null)}, jp:function(a,b,c){var s,r,q,p,o,n=this $.J1.gET().toString if(c==null){s=n.b-n.a r=isFinite(s)?Math.abs(a-n.gbz())/s:1 if(n.Q===C.is&&n.f!=null){q=n.f q.toString p=q}else{q=n.e q.toString p=q}o=new P.aK(C.d.aO(p.a*r))}else o=a==n.gbz()?C.G:c n.fB(0) q=o.a if(q===0){if(n.gbz()!=a){n.y=J.aW(a,n.a,n.b) n.aa()}n.ch=n.Q===C.aw?C.a7:C.N n.rF() return M.akw()}return n.JA(new G.abf(q/1e6,n.gbz(),a,b,C.cI))}, F5:function(a){return this.jp(a,C.ah,null)}, JA:function(a){var s,r=this r.x=a r.z=C.G r.y=J.aW(a.en(0,0),r.a,r.b) s=r.r.rn(0) r.ch=r.Q===C.aw?C.aC:C.as r.rF() return s}, oa:function(a,b){this.z=this.x=null this.r.oa(0,b)}, fB:function(a){return this.oa(a,!0)}, p:function(a){this.r.p(0) this.r=null this.ro(0)}, rF:function(){var s=this,r=s.gmF() if(s.cx!=r){s.cx=r s.qk(r)}}, XM:function(a){var s,r=this r.z=a s=a.a/1e6 r.y=J.aW(r.x.en(0,s),r.a,r.b) if(r.x.lr(s)){r.ch=r.Q===C.aw?C.a7:C.N r.oa(0,!1)}r.aa() r.rF()}, vR:function(){var s,r,q=this,p=q.r,o=p==null,n=!o&&p.a!=null?"":"; paused" if(o)s="; DISPOSED" else s=p.b?"; silenced":"" p=q.c r=p==null?"":"; for "+p return q.wD()+" "+J.aU(q.gbz(),3)+n+s+r}} G.abf.prototype={ en:function(a,b){var s,r,q=this,p=C.d.a6(b/q.b,0,1) if(p===0)return q.c else{s=q.d if(p===1)return s else{r=q.c return r+(s-r)*q.e.b1(0,p)}}}, hu:function(a,b){this.a.toString return(this.en(0,b+0.001)-this.en(0,b-0.001))/0.002}, lr:function(a){return a>this.b}} G.L0.prototype={} G.L1.prototype={} G.L2.prototype={} S.KV.prototype={ aQ:function(a,b){}, T:function(a,b){}, dh:function(a){}, eI:function(a){}, gbg:function(a){return C.a7}, gm:function(a){return 1}, j:function(a){return"kAlwaysCompleteAnimation"}} S.KW.prototype={ aQ:function(a,b){}, T:function(a,b){}, dh:function(a){}, eI:function(a){}, gbg:function(a){return C.N}, gm:function(a){return 0}, j:function(a){return"kAlwaysDismissedAnimation"}} S.kO.prototype={ aQ:function(a,b){return this.ga9(this).aQ(0,b)}, T:function(a,b){return this.ga9(this).T(0,b)}, dh:function(a){return this.ga9(this).dh(a)}, eI:function(a){return this.ga9(this).eI(a)}, gbg:function(a){var s=this.ga9(this) return s.gbg(s)}} S.xC.prototype={ sa9:function(a,b){var s,r=this,q=r.c if(b==q)return if(q!=null){r.a=q.gbg(q) q=r.c r.b=q.gm(q) if(r.bS$>0)r.uB()}r.c=b if(b!=null){if(r.bS$>0)r.uA() q=r.b s=r.c s=s.gm(s) if(q==null?s!=null:q!==s)r.aa() q=r.a s=r.c if(q!=s.gbg(s)){q=r.c r.qk(q.gbg(q))}r.b=r.a=null}}, uA:function(){var s=this,r=s.c if(r!=null){r.aQ(0,s.gcL()) s.c.dh(s.gO4())}}, uB:function(){var s=this,r=s.c if(r!=null){r.T(0,s.gcL()) s.c.eI(s.gO4())}}, gbg:function(a){var s=this.c if(s!=null)s=s.gbg(s) else{s=this.a s.toString}return s}, gm:function(a){var s=this.c if(s!=null)s=s.gm(s) else{s=this.b s.toString}return s}, j:function(a){var s=this,r=s.c if(r==null)return"ProxyAnimation(null; "+s.wD()+" "+J.aU(s.gm(s),3)+")" return r.j(0)+"\u27a9ProxyAnimation"}} S.i1.prototype={ aQ:function(a,b){var s this.dm() s=this.a s.ga9(s).aQ(0,b)}, T:function(a,b){this.a.T(0,b) this.uE()}, uA:function(){var s=this.a s.ga9(s).dh(this.gmG())}, uB:function(){this.a.eI(this.gmG())}, tJ:function(a){this.qk(this.IV(a))}, gbg:function(a){var s=this.a s=s.ga9(s) return this.IV(s.gbg(s))}, gm:function(a){var s=this.a return 1-s.gm(s)}, IV:function(a){switch(a){case C.aC:return C.as case C.as:return C.aC case C.a7:return C.N case C.N:return C.a7 default:throw H.a(H.j(u.I))}}, j:function(a){return this.a.j(0)+"\u27aaReverseAnimation"}} S.vs.prototype={ Ka:function(a){var s=this switch(a){case C.N:case C.a7:s.d=null break case C.aC:if(s.d==null)s.d=C.aC break case C.as:if(s.d==null)s.d=C.as break default:throw H.a(H.j(u.I))}}, gKB:function(){if(this.c!=null){var s=this.d if(s==null){s=this.a s=s.gbg(s)}s=s!==C.as}else s=!0 return s}, gm:function(a){var s=this,r=s.gKB()?s.b:s.c,q=s.a,p=q.gm(q) if(r==null)return p if(p===0||p===1)return p return r.b1(0,p)}, j:function(a){var s=this if(s.c==null)return H.c(s.a)+"\u27a9"+s.b.j(0) if(s.gKB())return H.c(s.a)+"\u27a9"+s.b.j(0)+"\u2092\u2099/"+H.c(s.c) return H.c(s.a)+"\u27a9"+s.b.j(0)+"/"+H.c(s.c)+"\u2092\u2099"}, ga9:function(a){return this.a}} S.QB.prototype={ j:function(a){return this.b}} S.or.prototype={ tJ:function(a){if(a!=this.e){this.aa() this.e=a}}, gbg:function(a){var s=this.a return s.gbg(s)}, a6F:function(){var s,r,q=this,p=q.b if(p!=null){s=q.c s.toString switch(s){case C.mQ:p=p.gm(p) s=q.a r=p<=s.gm(s) break case C.mR:p=p.gm(p) s=q.a r=p>=s.gm(s) break default:throw H.a(H.j(u.I))}if(r){p=q.a s=q.gmG() p.eI(s) p.T(0,q.gzG()) p=q.b q.a=p q.b=null p.dh(s) s=q.a q.tJ(s.gbg(s))}}else r=!1 p=q.a p=p.gm(p) if(p!=q.f){q.aa() q.f=p}if(r&&q.d!=null)q.d.$0()}, gm:function(a){var s=this.a return s.gm(s)}, p:function(a){var s,r,q=this q.a.eI(q.gmG()) s=q.gzG() q.a.T(0,s) q.a=null r=q.b if(r!=null)r.T(0,s) q.b=null q.ro(0)}, j:function(a){var s=this if(s.b!=null)return H.c(s.a)+"\u27a9TrainHoppingAnimation(next: "+H.c(s.b)+")" return H.c(s.a)+"\u27a9TrainHoppingAnimation(no next)"}} S.ps.prototype={ uA:function(){var s,r=this,q=r.a,p=r.gHW() q.aQ(0,p) s=r.gHX() q.dh(s) q=r.b q.aQ(0,p) q.dh(s)}, uB:function(){var s,r=this,q=r.a,p=r.gHW() q.T(0,p) s=r.gHX() q.eI(s) q=r.b q.T(0,p) q.eI(s)}, gbg:function(a){var s=this.b if(s.gbg(s)===C.aC||s.gbg(s)===C.as)return s.gbg(s) s=this.a return s.gbg(s)}, j:function(a){return"CompoundAnimation("+this.a.j(0)+", "+this.b.j(0)+")"}, a2X:function(a){var s=this if(s.gbg(s)!=s.c){s.c=s.gbg(s) s.qk(s.gbg(s))}}, a2W:function(){var s=this if(!J.d(s.gm(s),s.d)){s.d=s.gm(s) s.aa()}}} S.uC.prototype={ gm:function(a){var s,r=this.a r=r.gm(r) s=this.b s=s.gm(s) return Math.min(H.B(r),H.B(s))}} S.zM.prototype={} S.zN.prototype={} S.zO.prototype={} S.LX.prototype={} S.OH.prototype={} S.OI.prototype={} S.OJ.prototype={} S.Pd.prototype={} S.Pe.prototype={} S.Qy.prototype={} S.Qz.prototype={} S.QA.prototype={} Z.xn.prototype={ b1:function(a,b){return this.lR(b)}, lR:function(a){throw H.a(P.ce(null))}, j:function(a){return"ParametricCurve"}} Z.hI.prototype={ b1:function(a,b){if(b===0||b===1)return b return this.Sp(0,b)}} Z.AE.prototype={ lR:function(a){return a}} Z.iI.prototype={ lR:function(a){var s=this.a a=C.d.a6((a-s)/(this.b-s),0,1) if(a===0||a===1)return a return this.c.b1(0,a)}, j:function(a){var s=this,r=s.c if(!(r instanceof Z.AE))return"Interval("+H.c(s.a)+"\u22ef"+H.c(s.b)+")\u27a9"+r.j(0) return"Interval("+H.c(s.a)+"\u22ef"+H.c(s.b)+")"}} Z.z7.prototype={ lR:function(a){return a"))}} R.b3.prototype={ gm:function(a){var s=this.a return this.b.b1(0,s.gm(s))}, j:function(a){var s=this.a,r=this.b return H.c(s)+"\u27a9"+r.j(0)+"\u27a9"+H.c(r.b1(0,s.gm(s)))}, vR:function(){return this.wD()+" "+this.b.j(0)}, ga9:function(a){return this.a}} R.kq.prototype={ b1:function(a,b){return this.b.b1(0,this.a.b1(0,b))}, j:function(a){return H.c(this.a)+"\u27a9"+this.b.j(0)}} R.aM.prototype={ ej:function(a){var s=this.a return H.u(this).h("aM.T").a(J.mk(s,J.aux(J.aiI(this.b,s),a)))}, b1:function(a,b){if(b===0)return this.a if(b===1)return this.b return this.ej(b)}, j:function(a){return"Animatable("+H.c(this.a)+" \u2192 "+H.c(this.b)+")"}, sA3:function(a){return this.a=a}, saX:function(a,b){return this.b=b}} R.y3.prototype={ ej:function(a){return this.c.ej(1-a)}} R.hE.prototype={ ej:function(a){return P.K(this.a,this.b,a)}} R.xL.prototype={ ej:function(a){return P.aph(this.a,this.b,a)}} R.q3.prototype={ ej:function(a){var s,r=this.a r.toString s=this.b s.toString return C.d.aO(r+(s-r)*a)}} R.jy.prototype={ b1:function(a,b){if(b===0||b===1)return b return this.a.b1(0,b)}, j:function(a){return"CurveTween(curve: "+this.a.j(0)+")"}} R.Ca.prototype={} E.dq.prototype={ gm:function(a){return this.b.a}, goM:function(){var s=this return!s.e.k(0,s.f)||!s.y.k(0,s.z)||!s.r.k(0,s.x)||!s.Q.k(0,s.ch)}, goK:function(){var s=this return!s.e.k(0,s.r)||!s.f.k(0,s.x)||!s.y.k(0,s.Q)||!s.z.k(0,s.ch)}, goL:function(){var s=this return!s.e.k(0,s.y)||!s.f.k(0,s.z)||!s.r.k(0,s.Q)||!s.x.k(0,s.ch)}, e8:function(a){var s,r,q,p,o,n=this,m=null,l=u.I if(n.goM()){s=a.a0(t.WD) r=s==null?m:s.f.c.gu4() if(r==null){r=F.fv(a) r=r==null?m:r.d q=r}else q=r if(q==null)q=C.a3}else q=C.a3 if(n.goK()){r=F.fv(a) r=r==null?m:r.ch p=r===!0}else p=!1 if(n.goL())K.aye(a) switch(q){case C.a3:switch(C.dX){case C.dX:o=p?n.r:n.e break case C.jJ:o=p?n.Q:n.y break default:throw H.a(H.j(l))}break case C.a2:switch(C.dX){case C.dX:o=p?n.x:n.f break case C.jJ:o=p?n.ch:n.z break default:throw H.a(H.j(l))}break default:throw H.a(H.j(l))}return new E.dq(o,n.c,m,n.e,n.f,n.r,n.x,n.y,n.z,n.Q,n.ch,0)}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof E.dq&&b.b.a===s.b.a&&b.e.k(0,s.e)&&b.f.k(0,s.f)&&b.r.k(0,s.r)&&b.x.k(0,s.x)&&b.y.k(0,s.y)&&b.z.k(0,s.z)&&b.Q.k(0,s.Q)&&b.ch.k(0,s.ch)}, gt:function(a){var s=this return P.a5(s.b.a,s.e,s.f,s.r,s.y,s.z,s.x,s.ch,s.Q,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){var s=this,r=new E.UX(s),q=H.b([r.$2("color",s.e)],t.s) if(s.goM())q.push(r.$2("darkColor",s.f)) if(s.goK())q.push(r.$2("highContrastColor",s.r)) if(s.goM()&&s.goK())q.push(r.$2("darkHighContrastColor",s.x)) if(s.goL())q.push(r.$2("elevatedColor",s.y)) if(s.goM()&&s.goL())q.push(r.$2("darkElevatedColor",s.z)) if(s.goK()&&s.goL())q.push(r.$2("highContrastElevatedColor",s.Q)) if(s.goM()&&s.goK()&&s.goL())q.push(r.$2("darkHighContrastElevatedColor",s.ch)) r=s.c r=(r==null?"CupertinoDynamicColor":r)+"("+C.b.bI(q,", ") return r+", resolved by: UNRESOLVED)"}} E.UX.prototype={ $2:function(a,b){var s=b.k(0,this.a.b)?"*":"" return s+a+" = "+b.j(0)+s}, $S:199} E.LO.prototype={} L.a9D.prototype={ lT:function(a){return C.r}, u6:function(a,b,c){return C.dv}, nV:function(a,b){return C.i}} T.Ew.prototype={ ak:function(a){var s=this.a,r=E.UW(s,a) return J.d(r,s)?this:this.fi(r)}, um:function(a,b,c){var s=this,r=a==null?s.a:a,q=b==null?s.ge6(s):b return new T.Ew(r,q,c==null?s.c:c)}, fi:function(a){return this.um(a,null,null)}} T.LQ.prototype={} K.EB.prototype={ j:function(a){return this.b}} L.LR.prototype={ BK:function(a){return a.gnl(a)==="en"}, dD:function(a,b){return new O.cX(C.o6,t.u4)}, wo:function(a){return!1}, j:function(a){return"DefaultCupertinoLocalizations.delegate(en_US)"}} L.EN.prototype={$iUY:1} D.vp.prototype={ gqL:function(a){return C.qf}, gu1:function(){return null}, gu2:function(){return null}, uc:function(a){return t.My.b(a)&&!a.A}, u8:function(a,b,c){var s=null return T.cu(s,this.c_.$1(a),!1,s,s,!0,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,!0,s,s,s,s,s)}, ua:function(a,b,c,d){return D.anH(this,a,b,c,d,this.$ti.c)}} D.UZ.prototype={ $0:function(){return D.ayb(this.a)}, $S:39} D.V_.prototype={ $0:function(){var s=this.a,r=s.a r.toString s=s.ch s.toString r.a96() return new D.zS(s,r,this.b.h("zS<0>"))}, $S:function(){return this.b.h("zS<0>()")}} D.vo.prototype={ gpr:function(){return T.d4.prototype.gpr.call(this)+"("+H.c(this.b.a)+")"}, gkm:function(){return this.aK}} D.Ex.prototype={ H:function(a,b){var s,r=this,q=b.a0(t.I) q.toString s=q.f q=r.e return K.yy(K.yy(new K.EG(q,r.f,q,null),r.c,s,!0),r.d,s,!1)}} D.Ev.prototype={ H:function(a,b){var s=b.a0(t.I) s.toString return K.yy(K.yy(this.e,this.c,null,!0),this.d,s.f,!1)}} D.tc.prototype={ ah:function(){return new D.td(C.k,this.$ti.h("td<1>"))}, a9q:function(){return this.d.$0()}, acR:function(){return this.e.$0()}} D.td.prototype={ gIv:function(){var s=this.e return s===$?H.e(H.t("_recognizer")):s}, aC:function(){var s,r=this r.b_() s=O.FS(r,null) s.ch=r.ga4D() s.cx=r.ga4F() s.cy=r.ga4B() s.db=r.ga0e() r.e=s}, p:function(a){var s=this.gIv() s.r1.az(0) s.kM(0) this.bh(0)}, a4E:function(a){this.d=this.a.acR()}, a4G:function(a){var s,r,q=this.d q.toString s=a.c s.toString r=this.c r=this.FU(s/r.giu(r).a) q=q.a q.sm(0,q.gbz()-r)}, a4C:function(a){var s,r,q=this,p=q.d p.toString s=a.a r=q.c p.Mf(q.FU(s.a.a/r.giu(r).a)) q.d=null}, a0f:function(){var s=this.d if(s!=null)s.Mf(0) this.d=null}, a4I:function(a){if(this.a.a9q())this.gIv().zR(a)}, FU:function(a){var s=this.c.a0(t.I) s.toString switch(s.f){case C.p:return-a case C.m:return a default:throw H.a(H.j(u.I))}}, H:function(a,b){var s,r,q=null,p=b.a0(t.I) p.toString s=t.w r=Math.max(H.B(p.f===C.m?b.a0(s).f.f.a:b.a0(s).f.f.c),20) return T.yF(C.ca,H.b([this.a.c,new T.HM(0,0,0,r,T.a_j(C.cm,q,q,this.ga4H(),q,q),q)],t.J),C.m3,q,q)}} D.zS.prototype={ Mf:function(a){var s,r,q=this,p={} if(Math.abs(a)>=1?a<=0:q.a.gbz()>0.5){s=q.a r=P.aa(800,0,s.gbz()) r.toString r=P.cJ(0,Math.min(C.d.dC(r),300)) s.Q=C.aw s.jp(1,C.jG,r)}else{q.b.dr(0) s=q.a r=s.r if(r!=null&&r.a!=null){r=P.aa(0,800,s.gbz()) r.toString r=P.cJ(0,C.d.dC(r)) s.Q=C.is s.jp(0,C.jG,r)}}r=s.r if(r!=null&&r.a!=null){p.a=$ r=new D.a9A(p) new D.a9B(p).$1(new D.a9C(q,r)) s.dh(r.$0())}else q.b.uD()}} D.a9B.prototype={ $1:function(a){return this.a.a=a}, $S:188} D.a9A.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("animationStatusCallback")):s}, $S:183} D.a9C.prototype={ $1:function(a){var s=this.a s.b.uD() s.a.eI(this.b.$0())}, $S:9} D.ie.prototype={ dO:function(a,b){var s if(a instanceof D.ie){s=D.a9E(a,this,b) s.toString return s}s=D.a9E(null,this,b) s.toString return s}, dP:function(a,b){var s if(a instanceof D.ie){s=D.a9E(this,a,b) s.toString return s}s=D.a9E(this,null,b) s.toString return s}, po:function(a){return new D.LP(this,a)}, k:function(a,b){var s,r if(b==null)return!1 if(J.N(b)!==H.E(this))return!1 if(b instanceof D.ie){s=b.a r=this.a r=s==null?r==null:s===r s=r}else s=!1 return s}, gt:function(a){return J.a3(this.a)}} D.a9F.prototype={ $1:function(a){var s=P.K(null,a,this.a) s.toString return s}, $S:78} D.a9G.prototype={ $1:function(a){var s=P.K(null,a,1-this.a) s.toString return s}, $S:78} D.LP.prototype={ fs:function(a,b,c){var s,r,q,p,o,n,m,l,k,j,i,h=this.b.a if(h==null)return s=c.e r=s.a q=0.05*r p=s.b o=q/(h.length-1) n=c.d n.toString switch(n){case C.p:m=b.a+r l=1 break case C.m:m=b.a l=-1 break default:throw H.a(H.j(u.I))}for(s=b.b,k=0,j=0;j0)X.w6() break case C.o:if(Math.abs(b.a.a)<10&&Math.abs(a.a-s.dy)>0)X.w6() break default:throw H.a(H.j(u.I))}}, p:function(a){this.gmH().p(0) this.Ey(0)}} E.a9I.prototype={ $0:function(){this.a.qM()}, $C:"$0", $R:0, $S:0} E.a9H.prototype={ $1:function(a){return X.w6()}, $S:181} N.vq.prototype={ ah:function(){return new N.zV(null,C.k)}} N.zV.prototype={ gJI:function(){var s=this.d return s===$?H.e(H.t("_tap")):s}, gxN:function(){var s=this.e return s===$?H.e(H.t("_drag")):s}, gmy:function(){var s=this.f return s===$?H.e(H.t("_positionController")):s}, gbB:function(a){var s=this.r return s===$?H.e(H.t("position")):s}, gl7:function(){var s=this.x return s===$?H.e(H.t("_reactionController")):s}, gIu:function(){var s=this.y return s===$?H.e(H.t("_reaction")):s}, aC:function(){var s,r,q=this,p=null q.b_() s=N.akt(p) s.aR=q.ga5K() s.v=q.ga5M() s.A=q.gJH() s.aE=q.ga5I() q.d=s s=O.FS(p,p) s.ch=q.ga5D() s.cx=q.ga5F() s.cy=q.ga5B() r=q.a s.z=r.r q.e=s q.f=G.cl(p,C.a9,0,p,1,r.c?1:0,q) q.r=S.cy(C.ah,q.gmy(),p) q.x=G.cl(p,C.aE,0,p,1,p,q) q.y=S.cy(C.ax,q.gl7(),p)}, bd:function(a){var s,r,q=this q.bG(a) s=q.gxN() r=q.a s.z=r.r s=q.z if(s||a.c!=r.c)q.IT(s)}, IT:function(a){var s,r=this r.z=!1 s=r.gbB(r) s.b=a?C.ah:C.ax s.c=a?C.ah:new Z.mU(C.ax) if(r.a.c)r.gmy().cm(0) else r.gmy().cT(0)}, a4y:function(){return this.IT(!0)}, a5L:function(a){this.a.toString this.z=!1 this.gl7().cm(0)}, a5H:function(){var s=this.a s.d.$1(!s.c) this.Gp()}, a5N:function(a){this.a.toString this.z=!1 this.gl7().cT(0)}, a5J:function(){this.a.toString this.gl7().cT(0)}, a5E:function(a){var s=this s.a.toString s.z=!1 s.gl7().cm(0) s.Gp()}, a5G:function(a){var s,r,q=this q.a.toString s=q.gbB(q) s.c=s.b=C.ah s=a.c s.toString r=s/20 s=q.c.a0(t.I) s.toString switch(s.f){case C.p:s=q.gmy() s.sm(0,s.gbz()-r) break case C.m:s=q.gmy() s.sm(0,s.gbz()+r) break default:throw H.a(H.j(u.I))}}, a5C:function(a){var s,r,q,p=this p.Y(new N.a9J(p)) s=p.gbB(p) s=s.gm(s) r=p.a q=r.c if(s>=0.5!==q)r.d.$1(!q) p.gl7().cT(0)}, Gp:function(){switch(U.e4()){case C.z:X.Y6() break case C.I:case C.M:case C.D:case C.C:case C.E:break default:throw H.a(H.j(u.I))}}, H:function(a,b){var s,r,q,p,o,n=this if(n.z)n.a4y() s=n.a s=s.c r=C.pT.e8(b) n.a.toString q=C.pS.e8(b) p=n.a.d o=b.a0(t.I) o.toString return T.a0E(!1,new N.LS(s,r,q,p,n,o.f,null),1)}, p:function(a){var s=this,r=s.gJI() r.l6() r.kM(0) r=s.gxN() r.r1.az(0) r.kM(0) s.gmy().p(0) s.gl7().p(0) s.UC(0)}} N.a9J.prototype={ $0:function(){this.a.z=!0}, $S:0} N.LS.prototype={ aM:function(a){var s,r=this,q=r.x,p=new N.OS(q,r.d,r.e,r.f,r.r,r.y,C.nc,null) p.gav() p.gaF() p.dy=!1 p.sbc(null) s=p.gdd() q.gbB(q).a.aQ(0,s) q.gIu().aQ(0,s) return p}, aP:function(a,b){var s=this b.sm(0,s.d) b.szM(s.e) b.sCE(s.f) b.sf1(s.r) b.sbt(0,s.y)}, gb9:function(a){return this.x}} N.OS.prototype={ sm:function(a,b){if(b==this.bq)return this.bq=b this.ao()}, szM:function(a){if(a.k(0,this.bL))return this.bL=a this.aw()}, sCE:function(a){if(a.k(0,this.bA))return this.bA=a this.aw()}, sf1:function(a){if(J.d(a,this.cC))return this.cC=a}, sbt:function(a,b){if(this.cb===b)return this.cb=b this.aw()}, h0:function(a){return!0}, i5:function(a,b){var s if(t.pY.b(a)&&!0){s=this.bS s.gxN().zR(a) s.gJI().zR(a)}}, eA:function(a){var s this.fC(a) a.shC(this.bS.gJH()) a.b6(C.hP,!0) a.b6(C.hM,!0) s=this.bq a.b6(C.hQ,!0) s.toString a.b6(C.hN,s)}, aD:function(a,b){var s,r,q,p,o,n,m,l,k,j=this,i=a.gbZ(a),h=j.bS,g=h.gbB(h),f=g.gm(g) h=h.gIu() s=h.gm(h) switch(j.cb){case C.p:r=1-f break case C.m:r=f break default:throw H.a(H.j(u.I))}h=H.aF() q=h?H.b_():new H.aR(new H.aT()) h=P.K(j.bA,j.bL,f) h.toString q.sap(0,h) h=j.r2 g=b.a+(h.a-51)/2 p=b.b h=p+(h.b-31)/2 o=P.xE(new P.x(g,h,g+51,h+31),C.Bi) i.ct(0,o,q) n=7*s h=g+15.5 g+=35.5 m=P.aa(h-14,g-14-n,r) m.toString g=P.aa(h+14+n,g+14,r) g.toString l=p+j.r2.b/2 k=new P.x(m,l-14,g,l+14) j.cc=a.adc(j.geT(),C.i,k,o,new N.adr(k),j.cc)}} N.adr.prototype={ $2:function(a,b){C.o3.aD(a.gbZ(a),this.a)}, $S:12} N.Cd.prototype={ p:function(a){this.bh(0)}, aG:function(){var s,r=this.c r.toString s=!U.dm(r) r=this.by$ if(r!=null)for(r=P.cq(r,r.r,H.u(r).c);r.q();)r.d.sdE(0,s) this.cq()}} F.Qi.prototype={ aD:function(a,b){var s,r,q,p=H.aF(),o=p?H.b_():new H.aR(new H.aT()) o.sap(0,this.b) s=P.k6(C.xy,6) r=P.akj(C.xz,new P.m(7,b.b)) q=P.dh() q.mO(0,s) q.jK(0,r) a.cj(0,q,o)}, eq:function(a){return!J.d(this.b,a.b)}} F.V0.prototype={ lT:function(a){return new P.Q(12,a+12-1.5)}, u6:function(a,b,c){var s,r,q,p,o,n,m,l,k,j,i,h,g=null,f=c+12-1.5,e=T.l3(g,g,g,new F.Qi(K.aje(a).gil(),g),C.r),d=new T.o0(12,f,e,g) switch(b){case C.cG:return d case C.cH:e=new Float64Array(16) s=new E.b8(e) s.du() s.af(0,6,f/2) r=Math.cos(3.141592653589793) q=Math.sin(3.141592653589793) p=e[0] o=e[4] n=e[1] m=e[5] l=e[2] k=e[6] j=e[3] i=e[7] h=-q e[0]=p*r+o*q e[1]=n*r+m*q e[2]=l*r+k*q e[3]=j*r+i*q e[4]=p*h+o*r e[5]=n*h+m*r e[6]=l*h+k*r e[7]=j*h+i*r s.af(0,-6,-f/2) return T.Kh(g,d,s,!0) case C.dy:return C.eH default:throw H.a(H.j(u.I))}}, nV:function(a,b){var s=b+12-1.5 switch(a){case C.cG:return new P.m(6,s) case C.cH:return new P.m(6,s-12+1.5) case C.dy:return new P.m(6,b+(s-b)/2) default:throw H.a(H.j(u.I))}}} R.Ez.prototype={ e8:function(a){var s=this,r=s.a,q=r.a,p=q instanceof E.dq?q.e8(a):q,o=r.b if(o instanceof E.dq)o=o.e8(a) r=p.k(0,q)&&o.k(0,C.dW)?r:new R.Qm(p,o) return new R.Ez(r,E.UW(s.b,a),R.oV(s.c,a),R.oV(s.d,a),R.oV(s.e,a),R.oV(s.f,a),R.oV(s.r,a),R.oV(s.x,a),R.oV(s.y,a),R.oV(s.z,a))}} R.Qm.prototype={} R.LT.prototype={} K.EA.prototype={ H:function(a,b){var s=null return new K.Ap(this,Y.FX(this.d,new T.Ew(this.c.gil(),s,s),s),s)}} K.Ap.prototype={ cZ:function(a){return this.f.c!==a.f.c}} K.vr.prototype={ gil:function(){var s=this.b return s==null?this.r.b:s}, gCk:function(){var s=this.c return s==null?this.r.c:s}, gP3:function(){var s=null,r=this.d if(r==null){r=this.r.f r=new K.a9T(r.a,r.b,C.HK,this.gil(),s,s,s,s,s,s,s,s)}return r}, gLd:function(){var s=this.e return s==null?this.r.d:s}, gw9:function(){var s=this.f return s==null?this.r.e:s}, e8:function(a){var s=this,r=new K.V1(a),q=s.gu4(),p=r.$1(s.b),o=r.$1(s.c),n=s.d n=n==null?null:n.e8(a) return K.ayc(q,p,o,n,r.$1(s.e),r.$1(s.f),s.r.adQ(a,s.d==null))}} K.V1.prototype={ $1:function(a){return E.UW(a,this.a)}, $S:158} K.xa.prototype={ e8:function(a){var s=this,r=new K.a0m(a),q=s.gu4(),p=r.$1(s.gil()),o=r.$1(s.gCk()),n=s.gP3() n=n==null?null:n.e8(a) return new K.xa(q,p,o,n,r.$1(s.gLd()),r.$1(s.gw9()))}, gu4:function(){return this.a}, gil:function(){return this.b}, gCk:function(){return this.c}, gP3:function(){return this.d}, gLd:function(){return this.e}, gw9:function(){return this.f}} K.a0m.prototype={ $1:function(a){return E.UW(a,this.a)}, $S:158} K.LW.prototype={ adQ:function(a,b){var s,r,q=this,p=new K.a9K(a),o=p.$1(q.b),n=p.$1(q.c),m=p.$1(q.d) p=p.$1(q.e) s=q.f if(b){r=s.a if(r instanceof E.dq)r=r.e8(a) s=s.b s=new K.LU(r,s instanceof E.dq?s.e8(a):s)}return new K.LW(q.a,o,n,m,p,s)}} K.a9K.prototype={ $1:function(a){return a instanceof E.dq?a.e8(this.a):a}, $S:78} K.LU.prototype={} K.a9T.prototype={} K.LV.prototype={} A.V2.prototype={ aD:function(a,b){var s,r,q,p,o=b.gkJ()/2,n=P.xE(b,new P.c2(o,o)) for(s=0;s<2;++s){r=C.tb[s] o=n.bJ(r.b) q=H.aF() p=q?H.b_():new H.aR(new H.aT()) p.sap(0,r.a) p.sBU(new P.qi(C.ft,r.c*0.57735+0.5)) a.ct(0,o,p)}o=n.hz(0.5) q=H.aF() q=q?H.b_():new H.aR(new H.aT()) q.sap(0,C.ju) a.ct(0,o,q) o=H.aF() o=o?H.b_():new H.aR(new H.aT()) o.sap(0,C.j) a.ct(0,n,o)}} U.ahk.prototype={ $0:function(){return null}, $S:169} U.agl.prototype={ $0:function(){var s=window.navigator.platform,r=s==null?null:s.toLowerCase() if(r==null)r="" if(C.c.bv(r,"mac"))return C.C if(C.c.bv(r,"win"))return C.E if(C.c.C(r,"iphone")||C.c.C(r,"ipad")||C.c.C(r,"ipod"))return C.z if(C.c.C(r,"android"))return C.I if(window.matchMedia("only screen and (pointer: fine)").matches)return C.D return C.I}, $S:164} U.lX.prototype={} U.pL.prototype={} U.vO.prototype={} U.Fg.prototype={} U.Fh.prototype={} U.bK.prototype={ a9K:function(){var s,r,q,p,o,n,m,l=this.a if(t.vp.b(l)){s=l.gqf(l) r=l.j(0) if(typeof s=="string"&&s!==r){q=r.length p=J.ag(s) if(q>p.gl(s)){o=C.c.vh(r,s) if(o===q-p.gl(s)&&o>2&&C.c.V(r,o-2,o)===": "){n=C.c.V(r,0,o-2) m=C.c.eF(n," Failed assertion:") if(m>=0)n=C.c.V(n,0,m)+"\n"+C.c.bw(n,m+1) l=p.CH(s)+"\n"+n}else l=null}else l=null}else l=null if(l==null)l=r}else if(!(typeof l=="string")){q=t.Lt.b(l)||t.VI.b(l) p=J.jn(l) l=q?p.j(l):" "+H.c(p.j(l))}l=J.axm(l) return l.length===0?" ":l}, gR6:function(){var s=Y.ayl(new U.Xc(this).$0(),!0,C.dY) return s}, cp:function(){var s="Exception caught by "+this.c return s}, j:function(a){U.aC1(null,C.q4,this) return""}} U.Xc.prototype={ $0:function(){return J.axl(this.a.a9K().split("\n")[0])}, $S:80} U.mV.prototype={ gqf:function(a){return this.j(0)}, cp:function(){return"FlutterError"}, j:function(a){var s,r,q=new H.fP(this.a,t.ow) if(!q.gO(q)){s=q.gI(q) s.toString r=J.k(s) s=Y.es.prototype.gm.call(r,s) s.toString s=J.amZ(s,"")}else s="FlutterError" return s}, $imt:1} U.Xd.prototype={ $1:function(a){return U.bE(a)}, $S:163} U.Xe.prototype={ $1:function(a){return a+1}, $S:134} U.Xf.prototype={ $1:function(a){return a+1}, $S:134} U.ahw.prototype={ $1:function(a){return J.ml(a,"StackTrace.current")||C.c.C(a,"dart-sdk/lib/_internal")||C.c.C(a,"dart:sdk_internal")}, $S:29} U.vx.prototype={constructor:U.vx,$ivx:1} U.MP.prototype={} U.MR.prototype={} U.MQ.prototype={} N.Dq.prototype={ V_:function(){var s,r,q,p,o,n,m=this,l=null P.oq("Framework initialization",l,l) m.Uz() $.D=m s=t.t r=P.be(s) q=H.b([],t.CE) p=P.be(s) o=P.a_h(l,l,t.Su,t.S) n=O.Xk(!0,"Root Focus Scope",!1) n=n.f=new O.vZ(new R.w7(o,t.op),n,P.aZ(t.mx),new P.a7(t.V)) $.p1().b=n.gHm() o=$.f1 o.k4$.b.n(0,n.gGF(),l) s=new N.Tx(new N.Nc(r),q,n,P.y(t.yi,s),p,P.y(s,t.j7)) m.A$=s s.a=m.ga_Y() $.b4().b.id=m.gaaD() C.lg.rj(m.ga1b()) $.ayI.push(N.aGm()) m.iS() s=t.N P.aFX("Flutter.FrameworkInitialization",P.y(s,s)) P.op()}, fo:function(){}, iS:function(){}, abV:function(a){var s P.oq("Lock events",null,null);++this.a s=a.$0() s.f9(new N.T7(this)) return s}, CK:function(){}, j:function(a){return""}} N.T7.prototype={ $0:function(){var s=this.a if(--s.a<=0){P.op() s.Ur() if(s.f$.c!==0)s.xV()}}, $C:"$0", $R:0, $S:1} B.aq.prototype={} B.bn.prototype={ abQ:function(a){return this.d.$0()}} B.jv.prototype={ aQ:function(a,b){var s=this.P$ s.bQ(s.c,new B.bn(b),!1)}, T:function(a,b){var s,r,q,p=this.P$ p.toString p=P.aCb(p,p.$ti.c) for(;p.q();){s=p.c if(J.d(s.d,b)){p=s.a p.toString H.u(s).h("nm.E").a(s);++p.a r=s.b r.c=s.c s.c.b=r q=--p.b s.a=s.b=s.c=null if(q===0)p.c=null else if(s===p.c)p.c=r return}}}, p:function(a){this.P$=null}, aa:function(){var s,r,q,p,o,n,m,l,k,j=this,i=j.P$ if(i.b===0)return p=P.bk(i,!0,t.Sx) for(i=p.length,o=0;o#"+Y.cf(this)+"("+H.c(this.a)+")"}} Y.pC.prototype={ j:function(a){return this.b}} Y.jz.prototype={ j:function(a){return this.b}} Y.acX.prototype={} Y.cz.prototype={ CC:function(a,b){return this.bP(0)}, j:function(a){return this.CC(a,C.aQ)}, gar:function(a){return this.a}} Y.es.prototype={ gm:function(a){this.a2V() return this.cy}, a2V:function(){return}} Y.mI.prototype={} Y.EV.prototype={} Y.aw.prototype={ cp:function(){return"#"+Y.cf(this)}, CC:function(a,b){var s=this.cp() return s}, j:function(a){return this.CC(a,C.aQ)}} Y.EU.prototype={ cp:function(){return"#"+Y.cf(this)}} Y.iD.prototype={ j:function(a){return this.P6(C.dY).bP(0)}, cp:function(){return"#"+Y.cf(this)}, ae3:function(a,b){return Y.ajf(a,b,this)}, P6:function(a){return this.ae3(null,a)}} Y.M9.prototype={} D.ds.prototype={} D.jR.prototype={} D.eQ.prototype={ k:function(a,b){if(b==null)return!1 if(J.N(b)!==H.E(this))return!1 return H.u(this).h("eQ").b(b)&&J.d(b.a,this.a)}, gt:function(a){return P.a5(H.E(this),this.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){var s=H.u(this),r=s.h("eQ.T"),q=this.a,p=H.bO(r)===C.ms?"<'"+H.c(q)+"'>":"<"+H.c(q)+">" if(H.E(this)===H.bO(s.h("eQ")))return"["+p+"]" return"["+H.bO(r).j(0)+" "+p+"]"}} D.akP.prototype={} F.f3.prototype={} F.wy.prototype={ d4:function(a){return this.b.$0()}} B.I.prototype={ qE:function(a){var s=a.a,r=this.a if(s<=r){a.a=r+1 a.io()}}, io:function(){}, gca:function(){return this.b}, ag:function(a){this.b=a}, ab:function(a){this.b=null}, ga9:function(a){return this.c}, ff:function(a){var s a.c=this s=this.b if(s!=null)a.ag(s) this.qE(a)}, fX:function(a){a.c=null if(this.b!=null)a.ab(0)}} R.by.prototype={ goQ:function(){var s=this,r=s.c if(r===$){r=P.be(s.$ti.c) if(s.c===$)s.c=r else r=H.e(H.bS("_set"))}return r}, u:function(a,b){this.b=!0 this.goQ().az(0) return C.b.u(this.a,b)}, C:function(a,b){var s=this,r=s.a if(r.length<3)return C.b.C(r,b) if(s.b){s.goQ().J(0,r) s.b=!1}return s.goQ().C(0,b)}, gM:function(a){var s=this.a return new J.dA(s,s.length,H.Y(s).h("dA<1>"))}, gO:function(a){return this.a.length===0}, gaV:function(a){return this.a.length!==0}} R.w7.prototype={ B:function(a,b){var s=this.a,r=s.i(0,b) s.n(0,b,(r==null?0:r)+1)}, u:function(a,b){var s=this.a,r=s.i(0,b) if(r==null)return!1 if(r===1)s.u(0,b) else s.n(0,b,r-1) return!0}, C:function(a,b){return this.a.am(0,b)}, gM:function(a){var s=this.a s=s.gaj(s) return s.gM(s)}, gO:function(a){var s=this.a return s.gO(s)}, gaV:function(a){var s=this.a return s.gaV(s)}} T.dW.prototype={ j:function(a){return this.b}} G.a7Z.prototype={ grR:function(){var s=this.c return s===$?H.e(H.t("_eightBytesAsList")):s}, jo:function(a){var s,r,q=C.f.ea(this.a.b,a) if(q!==0)for(s=a-q,r=0;r"))}, jR:function(a){return this.mT(a,null)}, f6:function(a,b,c,d){var s=b.$1(this.a) if(d.h("ax<0>").b(s))return s return new O.cX(d.a(s),d.h("cX<0>"))}, bN:function(a,b,c){return this.f6(a,b,null,c)}, f9:function(a){var s,r,q,p,o,n=this try{s=a.$0() if(t.L0.b(s)){p=J.ur(s,new O.a6J(n),n.$ti.c) return p}return n}catch(o){r=H.U(o) q=H.aB(o) p=P.aoc(r,q,n.$ti.c) return p}}, $iax:1} O.a6J.prototype={ $1:function(a){return this.a.a}, $S:function(){return this.a.$ti.h("1(@)")}} D.FN.prototype={ j:function(a){return this.b}} D.cT.prototype={} D.FL.prototype={} D.tw.prototype={ j:function(a){var s=this,r=s.a r=r.length===0?"":new H.Z(r,new D.aaM(s),H.Y(r).h("Z<1,f>")).bI(0,", ") if(s.b)r+=" [open]" if(s.c)r+=" [held]" if(s.d)r+=" [hasPendingSweep]" return r.charCodeAt(0)==0?r:r}} D.aaM.prototype={ $1:function(a){if(a==this.a.e)return H.c(a)+" (eager winner)" return H.c(a)}, $S:166} D.XO.prototype={ KQ:function(a,b,c){this.a.bX(0,b,new D.XQ(this,b)).a.push(c) return new D.FL(this,b,c)}, a80:function(a,b){var s=this.a.i(0,b) if(s==null)return s.b=!1 this.K1(b,s)}, EK:function(a){var s,r=this.a,q=r.i(0,a) if(q==null)return if(q.c){q.d=!0 return}r.u(0,a) r=q.a if(r.length!==0){C.b.gI(r).ho(a) for(s=1;s0.4){r.fx=C.f3 r.ak(C.cl)}else if(a.gpt().guH()>F.CF(a.gda(a)))r.ak(C.am) if(s>0.4&&r.fx===C.mD){r.fx=C.f3 if(r.z!=null)r.dM("onStart",new K.Xx(r,s))}}r.E2(a)}, ho:function(a){var s=this,r=s.fx if(r===C.f2)r=s.fx=C.mD if(s.z!=null&&r===C.f3)s.dM("onStart",new K.Xv(s))}, uC:function(a){var s=this,r=s.fx,q=r===C.f3||r===C.Hc if(r===C.f2){s.ak(C.am) return}if(q&&s.cx!=null)if(s.cx!=null)s.dM("onEnd",new K.Xw(s)) s.fx=C.iC}, hE:function(a){this.hK(a) this.uC(a)}} K.Xx.prototype={ $0:function(){var s,r=this.a,q=r.z q.toString s=r.gms().b r.gms().toString return q.$1(new K.n2(s))}, $S:0} K.Xv.prototype={ $0:function(){var s,r=this.a,q=r.z q.toString if(r.fr===$)H.e(H.t("_lastPressure")) s=r.gms().b r.gms().toString return q.$1(new K.n2(s))}, $S:0} K.Xw.prototype={ $0:function(){var s,r=this.a,q=r.cx q.toString s=r.gms().b r.gms().toString return q.$1(new K.n2(s))}, $S:0} O.iF.prototype={ j:function(a){return"#"+Y.cf(this)+"("+this.gj7(this).j(0)+")"}, gj7:function(a){return this.a}} O.u8.prototype={} O.AP.prototype={ cz:function(a,b){return t.xV.a(this.a.a4(0,b))}} O.tQ.prototype={ cz:function(a,b){var s,r,q,p,o,n=null,m=new Float64Array(16),l=new E.b8(m) l.bC(b) s=this.a r=s.a q=s.b if(typeof r=="number")p=0 else{H.e(P.ce(n)) p=n q=p r=q}s=m[0] o=m[3] m[0]=s+r*o m[1]=m[1]+q*o m[2]=m[2]+p*o m[3]=o o=m[4] s=m[7] m[4]=o+r*s m[5]=m[5]+q*s m[6]=m[6]+p*s m[7]=s s=m[8] o=m[11] m[8]=s+r*o m[9]=m[9]+q*o m[10]=m[10]+p*o m[11]=o o=m[12] s=m[15] m[12]=o+r*s m[13]=m[13]+q*s m[14]=m[14]+p*s m[15]=s return l}} O.hN.prototype={ kZ:function(){var s,r,q,p,o=this.c if(o.length===0)return s=this.b r=C.b.gL(s) for(q=o.length,p=0;p":C.b.bI(s,", "))+")"}} T.qf.prototype={} T.wF.prototype={} T.qe.prototype={} T.f4.prototype={ h1:function(a){var s=this switch(a.gdz(a)){case 1:if(s.r2==null&&s.r1==null&&s.rx==null&&s.x1==null&&!0)return!1 break case 2:return!1 case 4:return!1 default:return!1}return s.oe(a)}, AG:function(){var s,r=this r.ak(C.cl) r.k2=!0 s=r.cy s.toString r.Ev(s) r.Yr()}, N0:function(a){var s,r=this if(!a.goi()){if(t.pY.b(a)){s=new R.j8(a.gda(a),P.b6(20,null,!1,t.av)) r.aR=s s.tU(a.gj8(a),a.ge4())}if(t.n2.b(a)){s=r.aR s.toString s.tU(a.gj8(a),a.ge4())}}if(t.oN.b(a)){if(r.k2)r.Yp(a) else r.ak(C.am) r.z2()}else if(t.Ko.b(a))r.z2() else if(t.pY.b(a)){r.k3=new S.hb(a.ge4(),a.gbB(a)) r.k4=a.gdz(a)}else if(t.n2.b(a))if(a.gdz(a)!=r.k4){r.ak(C.am) s=r.cy s.toString r.hK(s)}else if(r.k2)r.Yq(a)}, Yr:function(){var s,r,q=this switch(q.k4){case 1:if(q.r2!=null){s=q.k3 r=s.b s=s.a q.dM("onLongPressStart",new T.a_n(q,new T.qf(r,s==null?r:s)))}s=q.r1 if(s!=null)q.dM("onLongPress",s) break case 2:break case 4:break}}, Yq:function(a){var s=this,r=a.gbB(a),q=a.ge4(),p=a.gbB(a).a5(0,s.k3.b) a.ge4().a5(0,s.k3.a) if(q==null)q=r switch(s.k4){case 1:if(s.rx!=null)s.dM("onLongPressMoveUpdate",new T.a_m(s,new T.wF(r,q,p))) break case 2:break case 4:break}}, Yp:function(a){var s=this,r=s.aR.w6(),q=r==null?C.c6:new R.j7(r.a),p=a.gbB(a),o=a.ge4() p=o==null?p:o s.aR=null switch(s.k4){case 1:if(s.x1!=null)s.dM("onLongPressEnd",new T.a_l(s,new T.qe(p,q))) break case 2:break case 4:break}}, z2:function(){var s=this s.k2=!1 s.aR=s.k4=s.k3=null}, ak:function(a){if(this.k2&&a===C.am)this.z2() this.Ep(a)}, ho:function(a){}} T.a_n.prototype={ $0:function(){return this.a.r2.$1(this.b)}, $S:0} T.a_m.prototype={ $0:function(){return this.a.rx.$1(this.b)}, $S:0} T.a_l.prototype={ $0:function(){return this.a.x1.$1(this.b)}, $S:0} B.kB.prototype={ i:function(a,b){return this.c[b+this.a]}, n:function(a,b,c){this.c[b+this.a]=c}, a4:function(a,b){var s,r,q,p,o for(s=this.b,r=this.c,q=this.a,p=0,o=0;oa5)return null s=a6+1 r=new B.a1t(new Float64Array(s)) q=s*a5 p=new Float64Array(q) for(o=this.c,n=0*a5,m=0;m=0;--c){p[c]=new B.kB(c*a5,a5,q).a4(0,d) for(i=c*s,k=l;k>c;--k)p[c]=p[c]-n[i+k]*p[k] p[c]=p[c]/n[i+c]}for(b=0,m=0;mr&&Math.abs(a.d.b)>s}, yx:function(a){return Math.abs(this.gt6())>F.CF(a)}, oE:function(a){return new P.m(0,a.b)}, mn:function(a){return a.b}} O.hO.prototype={ BG:function(a,b){var s,r=this.dy if(r==null)r=50 s=this.dx if(s==null)s=F.CF(b) return Math.abs(a.a.a)>r&&Math.abs(a.d.a)>s}, yx:function(a){return Math.abs(this.gt6())>F.CF(a)}, oE:function(a){return new P.m(a.a,0)}, mn:function(a){return a.a}} O.i0.prototype={ BG:function(a,b){var s,r=this.dy if(r==null)r=50 s=this.dx if(s==null)s=F.CF(b) return a.a.guH()>r*r&&a.d.guH()>s*s}, yx:function(a){return Math.abs(this.gt6())>F.aF3(a)}, oE:function(a){return a}, mn:function(a){return null}} F.LL.prototype={ a3k:function(){this.a=!0}} F.u6.prototype={ hK:function(a){if(this.f){this.f=!1 $.f1.k4$.OL(this.a,a)}}, NJ:function(a,b){return a.gbB(a).a5(0,this.c).gdB()<=b}} F.hJ.prototype={ h1:function(a){var s if(this.x==null)switch(a.gdz(a)){case 1:s=this.e==null&&!0 if(s)return!1 break default:return!1}return this.oe(a)}, jI:function(a){var s=this,r=s.x if(r!=null)if(!r.NJ(a,100))return else{r=s.x if(!r.e.a||a.gdz(a)!=r.d){s.mw() return s.K0(a)}}s.K0(a)}, K0:function(a){var s,r,q,p,o,n,m=this m.JD() s=$.f1.r1$.KQ(0,a.gco(),m) r=a.gco() q=a.gbB(a) p=a.gdz(a) o=new F.LL() P.ci(C.qe,o.ga3j()) n=new F.u6(r,s,q,p,o) m.y.n(0,a.gco(),n) o=a.gc0(a) if(!n.f){n.f=!0 $.f1.k4$.KX(r,m.gt9(),o)}}, a0s:function(a){var s,r=this,q=r.y,p=q.i(0,a.gco()) p.toString if(t.oN.b(a)){s=r.x if(s==null){if(r.r==null)r.r=P.ci(C.aE,r.ga31()) s=p.a $.f1.r1$.ab5(s) p.hK(r.gt9()) q.u(0,s) r.FC() r.x=p}else{s=s.b s.a.oX(s.b,s.c,C.cl) s=p.b s.a.oX(s.b,s.c,C.cl) p.hK(r.gt9()) q.u(0,p.a) q=r.e if(q!=null)r.dM("onDoubleTap",q) r.mw()}}else if(t.n2.b(a)){if(!p.NJ(a,18))r.oV(p)}else if(t.Ko.b(a))r.oV(p)}, ho:function(a){}, hE:function(a){var s,r=this,q=r.y.i(0,a) if(q==null){s=r.x s=s!=null&&s.a==a}else s=!1 if(s)q=r.x if(q!=null)r.oV(q)}, oV:function(a){var s,r=this,q=r.y q.u(0,a.a) s=a.b s.a.oX(s.b,s.c,C.am) a.hK(r.gt9()) s=r.x if(s!=null)if(a===s)r.mw() else{r.Fq() if(q.gO(q))r.mw()}}, p:function(a){this.mw() this.Ek(0)}, mw:function(){var s,r=this r.JD() if(r.x!=null){s=r.y if(s.gaV(s))r.Fq() s=r.x s.toString r.x=null r.oV(s) $.f1.r1$.adz(0,s.a)}r.FC()}, FC:function(){var s=this.y s=s.gaZ(s) C.b.K(P.an(s,!0,H.u(s).h("l.E")),this.ga47())}, JD:function(){var s=this.r if(s!=null){s.aH(0) this.r=null}}, Fq:function(){}} O.a1o.prototype={ KX:function(a,b,c){J.it(this.a.bX(0,a,new O.a1q()),b,c)}, OL:function(a,b){var s,r=this.a,q=r.i(0,a) q.toString s=J.bP(q) s.u(q,b) if(s.gO(q))r.u(0,a)}, Zd:function(a,b,c){var s,r,q,p try{b.$1(a.bO(c))}catch(q){s=H.U(q) r=H.aB(q) p=U.bE("while routing a pointer event") U.dC(new U.bK(s,r,"gesture library",p,null,!1))}}, P_:function(a){var s=this,r=s.a.i(0,a.gco()),q=s.b,p=t.Ld,o=t.iD,n=P.qb(q,p,o) if(r!=null)s.Gd(a,r,P.qb(r,p,o)) s.Gd(a,q,n)}, Gd:function(a,b,c){c.K(0,new O.a1p(this,b,a))}} O.a1q.prototype={ $0:function(){return P.y(t.Ld,t.iD)}, $S:517} O.a1p.prototype={ $2:function(a,b){if(J.fW(this.b,a))this.a.Zd(this.c,a,b)}, $S:173} G.a1r.prototype={ nH:function(a,b,c){if(this.a!=null)return this.b=b this.a=c}, ak:function(a){var s,r,q,p,o=this,n=o.a if(n==null)return try{q=o.b q.toString n.$1(q)}catch(p){s=H.U(p) r=H.aB(p) n=U.bE("while resolving a PointerSignalEvent") U.dC(new U.bK(s,r,"gesture library",n,null,!1))}o.b=o.a=null}} S.F5.prototype={ j:function(a){return this.b}} S.cG.prototype={ zR:function(a){var s=this s.c.n(0,a.gco(),a.gda(a)) if(s.h1(a))s.jI(a) else s.Bk(a)}, jI:function(a){}, Bk:function(a){}, h1:function(a){var s=this.b return s==null||s===a.gda(a)}, p:function(a){}, Ns:function(a,b,c){var s,r,q,p,o=null try{o=b.$0()}catch(q){s=H.U(q) r=H.aB(q) p=U.bE("while handling a gesture") U.dC(new U.bK(s,r,"gesture",p,null,!1))}return o}, dM:function(a,b){return this.Ns(a,b,null,t.z)}, abn:function(a,b,c){return this.Ns(a,b,c,t.z)}} S.xf.prototype={ Bk:function(a){this.ak(C.am)}, ho:function(a){}, hE:function(a){}, ak:function(a){var s,r,q=this.d,p=P.bk(q.gaZ(q),!0,t.o) q.az(0) for(q=p.length,s=0;s"));r.q();){q=r.d p=$.f1.k4$ o=l.gpZ() p=p.a n=p.i(0,q) n.toString m=J.bP(n) m.u(n,o) if(m.gO(n))p.u(0,q)}s.az(0) l.Ek(0)}, XF:function(a){return $.f1.r1$.KQ(0,a,this)}, o9:function(a,b){var s=this $.f1.k4$.KX(a,s.gpZ(),b) s.e.B(0,a) s.d.n(0,a,s.XF(a))}, hK:function(a){var s=this.e if(s.C(0,a)){$.f1.k4$.OL(a,this.gpZ()) s.u(0,a) if(s.a===0)this.uC(a)}}, E2:function(a){if(t.oN.b(a)||t.Ko.b(a))this.hK(a.gco())}} S.w4.prototype={ j:function(a){return this.b}} S.qC.prototype={ jI:function(a){var s=this s.o9(a.gco(),a.gc0(a)) if(s.cx===C.b1){s.cx=C.fT s.cy=a.gco() s.db=new S.hb(a.ge4(),a.gbB(a)) s.dy=P.ci(s.z,new S.a1y(s,a))}}, kd:function(a){var s,r,q,p=this if(p.cx===C.fT&&a.gco()==p.cy){if(!p.dx)s=p.GR(a)>18 else s=!1 if(p.dx){r=p.ch q=r!=null&&p.GR(a)>r}else q=!1 if(t.n2.b(a))r=s||q else r=!1 if(r){p.ak(C.am) r=p.cy r.toString p.hK(r)}else p.N0(a)}p.E2(a)}, AG:function(){}, ho:function(a){if(a==this.cy){this.l6() this.dx=!0}}, hE:function(a){var s=this if(a==s.cy&&s.cx===C.fT){s.l6() s.cx=C.qH}}, uC:function(a){this.l6() this.cx=C.b1}, p:function(a){this.l6() this.kM(0)}, l6:function(){var s=this.dy if(s!=null){s.aH(0) this.dy=null}}, GR:function(a){return a.gbB(a).a5(0,this.db.b).gdB()}, gb9:function(a){return this.cx}} S.a1y.prototype={ $0:function(){this.a.AG() return null}, $C:"$0", $R:0, $S:0} S.hb.prototype={ U:function(a,b){return new S.hb(this.a.U(0,b.a),this.b.U(0,b.b))}, a5:function(a,b){return new S.hb(this.a.a5(0,b.a),this.b.a5(0,b.b))}, j:function(a){return"OffsetPair(local: "+H.c(this.a)+", global: "+H.c(this.b)+")"}} S.N0.prototype={} N.rH.prototype={} N.lM.prototype={} N.uN.prototype={ jI:function(a){var s=this if(s.cx===C.b1){if(s.k4!=null&&s.r1!=null)s.p0() s.k4=a}if(s.k4!=null)s.Ss(a)}, o9:function(a,b){this.Sl(a,b)}, N0:function(a){var s,r,q=this if(t.oN.b(a)){q.r1=a q.Ft()}else if(t.Ko.b(a)){q.ak(C.am) if(q.k2){s=q.k4 s.toString q.v2(a,s,"")}q.p0()}else{s=a.gdz(a) r=q.k4 if(s!=r.gdz(r)){q.ak(C.am) s=q.cy s.toString q.hK(s)}}}, ak:function(a){var s,r=this if(r.k3&&a===C.am){s=r.k4 s.toString r.v2(null,s,"spontaneous") r.p0()}r.Ep(a)}, AG:function(){this.JL()}, ho:function(a){var s=this s.Ev(a) if(a==s.cy){s.JL() s.k3=!0 s.Ft()}}, hE:function(a){var s,r=this r.St(a) if(a==r.cy){if(r.k2){s=r.k4 s.toString r.v2(null,s,"forced")}r.p0()}}, JL:function(){var s,r=this if(r.k2)return s=r.k4 s.toString r.N1(s) r.k2=!0}, Ft:function(){var s,r,q=this if(!q.k3||q.r1==null)return s=q.k4 s.toString r=q.r1 r.toString q.N2(s,r) q.p0()}, p0:function(){var s=this s.k3=s.k2=!1 s.k4=s.r1=null}} N.eK.prototype={ h1:function(a){var s,r=this switch(a.gdz(a)){case 1:if(r.aR==null&&r.A==null&&r.v==null&&r.aE==null)return!1 break case 2:if(r.bT==null)if(r.aA==null)s=!0 else s=!1 else s=!1 if(s)return!1 break case 4:return!1 default:return!1}return r.oe(a)}, N1:function(a){var s,r=this,q=a.gbB(a),p=a.ge4(),o=r.c.i(0,a.gco()) o.toString s=new N.rH(q,o,p==null?q:p) switch(a.gdz(a)){case 1:if(r.aR!=null)r.dM("onTapDown",new N.a6R(r,s)) break case 2:if(r.aA!=null)r.dM("onSecondaryTapDown",new N.a6S(r,s)) break case 4:break}}, N2:function(a,b){var s=this,r=b.gda(b),q=b.gbB(b) b.ge4() switch(a.gdz(a)){case 1:if(s.v!=null)s.dM("onTapUp",new N.a6T(s,new N.lM(q,r))) r=s.A if(r!=null)s.dM("onTap",r) break case 2:if(s.bT!=null)s.dM("onSecondaryTap",new N.a6U(s)) break case 4:break}}, v2:function(a,b,c){var s,r=c===""?c:c+" " switch(b.gdz(b)){case 1:s=this.aE if(s!=null)this.dM(r+"onTapCancel",s) break case 2:break case 4:break}}} N.a6R.prototype={ $0:function(){return this.a.aR.$1(this.b)}, $S:0} N.a6S.prototype={ $0:function(){return this.a.aA.$1(this.b)}, $S:0} N.a6T.prototype={ $0:function(){return this.a.v.$1(this.b)}, $S:0} N.a6U.prototype={ $0:function(){return this.a.bT.$0()}, $S:0} R.j7.prototype={ a5:function(a,b){return new R.j7(this.a.a5(0,b.a))}, U:function(a,b){return new R.j7(this.a.U(0,b.a))}, a7S:function(a,b){var s=this.a,r=s.guH() if(r>b*b)return new R.j7(s.hH(0,s.gdB()).a4(0,b)) if(r100||Math.abs(m-p.a.a)/1000>40)break k=n.b g.push(k.a) f.push(k.b) e.push(1) d.push(-l) c=(c===0?20:c)-1;++o if(o<20){q=n p=q continue}else{q=n break}}while(!0) if(o>=3){j=new B.Gk(d,g,e).E0(2) if(j!=null){i=new B.Gk(d,f,e).E0(2) if(i!=null)return new R.t_(new P.m(j.a[1]*1000,i.a[1]*1000),j.gLx(j)*i.gLx(i),new P.aK(r-q.a.a),s.b.a5(0,q.b))}}return new R.t_(C.i,1,new P.aK(r-q.a.a),s.b.a5(0,q.b))}} R.pV.prototype={ tU:function(a,b){var s=(this.c+1)%20 this.c=s this.d[s]=new R.B5(a,b)}, yY:function(a){var s,r,q=this.c+a,p=C.f.ea(q,20),o=C.f.ea(q-1,20) q=this.d s=q[p] r=q[o] if(s==null||r==null)return C.i q=s.a.a-r.a.a return q>0?s.b.a5(0,r.b).a4(0,1000).hH(0,q/1000):C.i}, w6:function(){var s,r,q=this,p=q.yY(-2).a4(0,0.6).U(0,q.yY(-1).a4(0,0.35)).U(0,q.yY(0).a4(0,0.05)),o=q.d,n=q.c,m=o[n] for(s=null,r=1;r<=20;++r){s=o[C.f.ea(n+r,20)] if(s!=null)break}if(s==null||m==null)return C.GZ else return new R.t_(p,1,new P.aK(m.a.a-s.a.a),m.b.a5(0,s.b))}} S.a7i.prototype={ j:function(a){return this.b}} S.wM.prototype={ ah:function(){return new S.AK(C.k)}} S.a_s.prototype={ $2:function(a,b){return new D.qj(a,b)}, $S:174} S.a_v.prototype={ nY:function(a){return K.aA(a).aA}, u9:function(a,b,c){var s=u.I switch(G.bW(c.a)){case C.o:return b case C.n:switch(K.aA(a).aA){case C.D:case C.C:case C.E:return E.apz(b,c.b,null) case C.I:case C.M:case C.z:return b default:throw H.a(H.j(s))}default:throw H.a(H.j(s))}}, u7:function(a,b,c){switch(K.aA(a).aA){case C.z:case C.D:case C.C:case C.E:return b case C.I:case C.M:return L.aod(c.a,b,K.aA(a).S.c) default:throw H.a(H.j(u.I))}}} S.AK.prototype={ aC:function(){this.b_() this.d=S.azp()}, gHN:function(){var s=this return P.d9(function(){var r=0,q=1,p return function $async$gHN(a,b){if(a===1){p=b r=q}while(true)switch(r){case 0:s.a.toString r=2 return C.oD case 2:r=3 return C.oz case 3:return P.d5() case 1:return P.d6(p)}}},t.bh)}, a2w:function(a,b){return new E.FC(C.r5,b,C.nb,null)}, a2S:function(a,b){var s,r,q,p,o,n=this,m=null n.a.toString s=F.fv(a) r=s==null?m:s.d if(r==null)r=C.a3 q=r===C.a2 s=F.fv(a) s=s==null?m:s.ch p=s===!0 if(q)if(p)n.a.toString if(q)n.a.toString if(p)n.a.toString s=n.a o=s.fx s.toString b.toString s=b return new M.ya(new K.uy(o,s,C.ah,C.a9,m,m),m)}, Y6:function(a){var s,r=this,q=null,p=r.a,o=p.fx o=o.b s=o if(s==null)s=C.bC p=p.x o=r.gHN() r.a.toString return new S.zq(q,p,q,new S.acc(),q,q,q,q,q,C.wV,q,q,C.tk,r.ga2R(),"",q,C.EC,s,q,o,q,q,C.kh,!1,!1,!1,!1,r.ga2v(),!0,q,q,q,new N.lb(r,t.bT))}, H:function(a,b){var s,r=this.Y6(b) this.a.toString s=this.d return K.apx(C.om,new K.n7(s===$?H.e(H.t("_heroController")):s,r,null))}} S.acc.prototype={ $1$2:function(a,b,c){return V.ajU(b,!1,!0,a,c)}, $2:function(a,b){return this.$1$2(a,b,t.z)}, $S:177} E.afb.prototype={ qU:function(a){return a.vN(this.b)}, w5:function(a){return new P.Q(a.b,this.b)}, r0:function(a,b){return new P.m(0,a.b-b.b)}, m4:function(a){return this.b!==a.b}} E.uG.prototype={ a_u:function(a){switch(a.aA){case C.I:case C.M:case C.D:case C.E:return!1 case C.z:case C.C:return!0 default:throw H.a(H.j(u.I))}}, ah:function(){return new E.zy(C.k)}, gvB:function(){return this.k2}} E.zy.prototype={ a0n:function(){var s,r=this.c r.toString r=M.apv(r) s=r.e if(s.gas()!=null&&r.x.e)s.gas().aT(0) r=r.d.gas() if(r!=null)r.acW(0)}, a0p:function(){var s,r=this.c r.toString r=M.apv(r) s=r.d if(s.gas()!=null&&r.r.e)s.gas().aT(0) r=r.e.gas() if(r!=null)r.acW(0)}, H:function(a7,a8){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b=this,a=null,a0="Open navigation menu",a1=K.aA(a8),a2=a1.S,a3=K.aA(a8).bl,a4=a8.pX(t.Np),a5=T.wZ(a8,t.O),a6=a4==null if(a6)s=a else{a4.a.toString s=!1}if(a6)a4=a else{a4.a.toString a4=!1}r=a4===!0 if(a5==null)a4=a else if(!a5.gN6()){a4=a5.eg$ a4=a4!=null&&a4.length!==0}else a4=!0 q=a4===!0 p=a5 instanceof V.fA&&a5.A b.a.toString a4=a3.b o=a4==null?a1.b:a4 n=a3.c if(n==null)n=a2.cx===C.a2?a2.z:a2.x a4=a3.f m=a4==null?a1.P:a4 l=a3.r if(l==null)l=m a4=a3.x a4=a4==null?a:a4.z k=a4==null?a1.at.z:a4 a4=a3.x a4=a4==null?a:a4.f j=a4==null?a1.at.f:a4 if(s===!0){L.lk(a8,C.bs,t.c4).toString i=B.jI(a,a,C.k3,b.ga0m(),C.ck,a0)}else if(!r&&q)i=p?C.oN:C.n0 else i=a if(i!=null){b.a.toString i=new T.hF(S.hB(a,56),i,a)}h=b.a.e switch(a1.aA){case C.I:case C.M:case C.D:case C.E:g=!0 break case C.z:case C.C:g=a break default:throw H.a(H.j(u.I))}h=T.cu(a,new E.L6(h,a),!1,a,a,!1,a,a,!0,a,a,a,a,g,a,a,a,a,a,a,a,a,a,a,a,a,a) j.toString h=L.mH(h,a,a,C.aV,!1,j,a,a,C.av) f=a8.a0(t.w).f h=new F.ln(f.a8t(Math.min(f.c,1.34)),h,a) b.a.toString if(r){L.lk(a8,C.bs,t.c4).toString e=B.jI(a,a,C.k3,b.ga0o(),C.ck,a0)}else e=a if(e!=null)e=Y.wc(e,l) a4=b.a.a_u(a1) b.a.toString a6=a3.z if(a6==null)a6=16 k.toString a6=Y.wc(L.mH(new E.GS(i,h,e,a4,a6,a),a,a,C.bL,!0,k,a,a,C.av),m) d=Q.aAE(!1,new T.Ei(new T.l4(new E.afb(56),a6,a),a),!0) c=a2.cx===C.a2?C.Cv:C.Cw a4=a3.d if(a4==null)a4=4 a6=a3.e if(a6==null)a6=C.t return T.cu(a,new X.uD(c,M.a_r(C.a9,a,T.cu(a,new T.mo(C.mT,a,a,d,a),!1,a,a,!0,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a),C.V,o,a4,a,a6,a,a,C.cs),a,t.ph),!0,a,a,!1,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a)}} E.L6.prototype={ aM:function(a){var s=a.a0(t.I) s.toString s=new E.OQ(C.ar,s.f,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){var s=a.a0(t.I) s.toString b.sbt(0,s.f)}} E.OQ.prototype={ cB:function(a){var s=a.LI(1/0) return a.bH(this.v$.iq(s))}, bM:function(){var s,r=this,q=t.k,p=q.a(K.r.prototype.gX.call(r)).LI(1/0) r.v$.cJ(0,p,!0) q=q.a(K.r.prototype.gX.call(r)) s=r.v$.r2 s.toString r.r2=q.bH(s) r.L2()}} V.uH.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,s.r,s.x,s.y,s.z,s.Q,s.ch,s.cx,s.cy,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s,r=this if(b==null)return!1 if(r===b)return!0 if(J.N(b)!==H.E(r))return!1 if(b instanceof V.uH)if(J.d(b.b,r.b))if(J.d(b.c,r.c))if(b.d==r.d)if(J.d(b.e,r.e))if(J.d(b.f,r.f))if(J.d(b.r,r.r))if(J.d(b.x,r.x))if(b.z==r.z)if(J.d(b.Q,r.Q))if(J.d(b.ch,r.ch))s=!0 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 return s}} V.L5.prototype={} D.wQ.prototype={ iA:function(){var s,r,q,p,o,n,m,l,k,j,i,h,g=this,f=g.a f.toString s=g.b s.toString r=s.a5(0,f) q=Math.abs(r.a) p=Math.abs(r.b) o=r.gdB() n=s.a m=f.b l=new P.m(n,m) k=new D.a_t(g,o) if(q>2&&p>2){j=o*o i=f.a h=s.b if(q>>16&255,s.gm(s)>>>8&255,s.gm(s)&255)}, D2:function(a){var s=this.z if(s==null){s=this.lW(a) s=P.aI(31,s.gm(s)>>>16&255,s.gm(s)>>>8&255,s.gm(s)&255)}return s}, D7:function(a){var s=this.Q if(s==null){s=this.lW(a) s=P.aI(10,s.gm(s)>>>16&255,s.gm(s)>>>8&255,s.gm(s)&255)}return s}, PQ:function(a){var s switch(this.c){case C.cc:case C.cR:s=this.lW(a) return P.aI(41,s.gm(s)>>>16&255,s.gm(s)>>>8&255,s.gm(s)&255) case C.cS:return C.aP default:throw H.a(H.j(u.I))}}, D0:function(a){return 2}, D3:function(a){return 4}, D8:function(a){return 4}, D6:function(a){return 8}, PI:function(a){return 0}, Df:function(a){var s=a.k1 if(s!=null)return s s=this.e if(s!=null)return s switch(this.c){case C.cc:case C.cR:return C.d0 case C.cS:return C.jN default:throw H.a(H.j(u.I))}}, k:function(a,b){var s,r=this if(b==null)return!1 if(J.N(b)!==H.E(r))return!1 if(b instanceof M.DD)if(b.c===r.c)if(b.a===r.a)if(b.b===r.b)if(J.d(b.gek(b),r.gek(r)))if(J.d(b.gji(b),r.gji(r)))if(J.d(b.x,r.x))if(J.d(b.z,r.z))if(J.d(b.Q,r.Q))s=J.d(b.cy,r.cy)&&b.db==r.db else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 return s}, gt:function(a){var s=this return P.a5(s.c,s.a,s.b,s.gek(s),s.gji(s),!1,s.x,s.y,s.z,s.Q,s.ch,s.cx,s.cy,s.db,C.a,C.a,C.a,C.a,C.a,C.a)}} M.Ln.prototype={} A.v6.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s,r=this if(b==null)return!1 if(r===b)return!0 if(J.N(b)!==H.E(r))return!1 if(b instanceof A.v6)s=J.d(b.b,r.b)&&J.d(b.c,r.c)&&b.d==r.d&&J.d(b.e,r.e)&&J.d(b.f,r.f) else s=!1 return s}} A.Lt.prototype={} F.v9.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,s.r,s.x,s.y,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s,r=this if(b==null)return!1 if(r===b)return!0 if(J.N(b)!==H.E(r))return!1 if(b instanceof F.v9)if(b.b==r.b)if(b.c==r.c)if(b.d==r.d)if(b.e==r.e)s=J.d(b.x,r.x)&&J.d(b.y,r.y) else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 return s}} F.AA.prototype={$idf:1} F.Lv.prototype={} K.DK.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,s.r,s.y,s.z,s.Q,s.ch,s.cx,s.cy,s.db,s.dx,s.dy,s.fr,C.a,C.a,C.a)}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof K.DK&&J.d(b.a,s.a)&&J.d(b.b,s.b)&&J.d(b.c,s.c)&&J.d(b.d,s.d)&&J.d(b.e,s.e)&&J.d(b.f,s.f)&&J.d(b.r,s.r)&&J.d(b.y,s.y)&&J.d(b.z,s.z)&&J.d(b.Q,s.Q)&&J.d(b.ch,s.ch)&&J.d(b.cx,s.cx)&&J.d(b.cy,s.cy)&&J.d(b.db,s.db)&&b.dx===s.dx&&b.dy==s.dy&&b.fr==s.fr}} K.Lx.prototype={} A.pq.prototype={ k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof A.pq&&J.d(b.a,s.a)&&J.d(b.b,s.b)&&J.d(b.c,s.c)&&J.d(b.d,s.d)&&J.d(b.e,s.e)&&J.d(b.f,s.f)&&J.d(b.r,s.r)&&J.d(b.x,s.x)&&J.d(b.y,s.y)&&J.d(b.z,s.z)&&J.d(b.Q,s.Q)&&J.d(b.ch,s.ch)&&b.cx===s.cx}, gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,s.r,s.x,s.y,s.z,s.Q,s.ch,s.cx,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}} A.Ly.prototype={} E.np.prototype={} E.Gy.prototype={} Z.vv.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,s.r,s.x,s.y,s.z,s.Q,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof Z.vv&&J.d(b.a,s.a)&&b.b==s.b&&b.c==s.c&&J.d(b.d,s.d)&&b.e==s.e&&b.f==s.f&&J.d(b.r,s.r)&&b.x==s.x&&b.y==s.y&&b.z==s.z&&b.Q==s.Q}} Z.AB.prototype={$idf:1} Z.LZ.prototype={} L.aa3.prototype={ lT:function(a){return C.r}, u6:function(a,b,c){return C.dv}, nV:function(a,b){return C.i}} Y.vy.prototype={ gt:function(a){return J.a3(this.c)}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof Y.vy&&J.d(b.a,s.a)&&b.b==s.b&&J.d(b.c,s.c)&&J.d(b.d,s.d)&&J.d(b.e,s.e)}} Y.Ma.prototype={} G.vA.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof G.vA&&J.d(b.a,s.a)&&b.b==s.b&&b.c==s.c&&b.d==s.d&&b.e==s.e}} G.Md.prototype={} K.Mm.prototype={ aD:function(a,b){var s=null,r=this.f.$0(),q=b.b,p=J.aW(r,0,Math.max(q-48,0)),o=t.H7,n=C.d.a6(p+48,Math.min(48,q),q),m=this.e p=new R.aM(p,0,o).b1(0,m.gm(m)) this.r.fs(a,new P.m(0,p),new M.nb(s,s,s,s,new P.Q(b.a-0,new R.aM(n,q,o).b1(0,m.gm(m))-p),s))}, eq:function(a){var s=this return!J.d(a.b,s.b)||a.c!==s.c||a.d!==s.d||a.e!=s.e}} K.tl.prototype={ ah:function(){return new K.tm(C.k,this.$ti.h("tm<1>"))}} K.tm.prototype={ a0w:function(a){var s,r,q=$.D.A$.f.b switch(q==null?O.mZ():q){case C.bz:s=!1 break case C.bd:s=!0 break default:throw H.a(H.j(u.I))}if(a&&s){q=this.a r=q.c.w3(q.e,q.f.d,q.r) this.a.c.fm.hq(r.d,C.fI,C.at)}}, a1i:function(){var s,r=this.a r=r.c.d2[r.r].f r.toString s=this.c s.toString K.qn(s,!1).qu(0,new K.hq(r.f,this.$ti.h("hq<1>")))}, H:function(a,b){var s,r,q,p,o,n=this,m=null,l=n.a,k=l.c,j=0.5/(k.d2.length+1.5) l=l.r if(l===k.aK){l=k.k1 l.toString s=S.cy(C.mi,l,m)}else{r=C.d.a6(0.5+(l+1)*j,0,1) q=C.d.a6(r+1.5*j,0,1) l=n.a.c.k1 l.toString s=S.cy(new Z.iI(r,q,C.ah),l,m)}l=n.a k=l.r p=l.c l=l.d o=K.pM(!1,R.ajG(k===p.aK,!0,M.ap(m,p.d2[k],m,m,m,m,m,l,m),m,!0,m,m,m,m,m,n.ga0v(),m,m,m,n.ga1h(),m,m,m),s) l=$.atB() return new X.lD(l,o,m,m)}} K.tk.prototype={ ah:function(){return new K.A0(C.k,this.$ti.h("A0<1>"))}} K.A0.prototype={ aC:function(){var s,r=this r.b_() s=r.a.c.k1 s.toString r.d=S.cy(C.rb,s,C.rc) s=r.a.c.k1 s.toString r.e=S.cy(C.rd,s,C.mi)}, H:function(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g,f=this,e=null L.lk(b,C.bs,t.c4).toString s=f.a.c r=H.b([],t.J) for(q=s.d2,p=f.$ti.h("tl<1>"),o=0;o0?8+C.b.vE(C.b.c2(this.fl,0,a),new K.aaf()):8}, w3:function(a,b,c){var s,r,q=this,p=b-96,o=a.b,n=a.d,m=Math.min(H.B(n),b),l=q.Da(c),k=Math.min(48,H.B(o)),j=Math.max(b-48,m),i=q.fl,h=o-l-(i[q.aK]-(n-o))/2,g=C.cj.gcA(C.cj)+C.cj.gcH(C.cj) if(q.d2.length!==0)g+=C.b.vE(i,new K.aag()) s=Math.min(p,g) r=hj?Math.max(m,j)-s:r return new K.acF(h,s,g>p?Math.min(Math.max(0,l-(o-h)),g-s):0)}, gu2:function(){return this.ll}} K.aae.prototype={ $2:function(a,b){var s=this.a return new K.tn(s,b,s.c_,s.cl,s.aK,s.e3,s.d8,null,s.$ti.h("tn<1>"))}, $S:function(){return this.a.$ti.h("tn<1>(S,aN)")}} K.aaf.prototype={ $2:function(a,b){return a+b}, $S:103} K.aag.prototype={ $2:function(a,b){return a+b}, $S:103} K.tn.prototype={ H:function(a,b){var s=this,r=s.c if(r.fm==null)r.fm=F.IV(r.w3(s.r,s.d.d,s.x).d) return F.aoJ(new T.kT(new K.aad(s,T.dQ(b),new K.tk(r,s.f,s.r,s.d,s.ch,null,s.$ti.h("tk<1>"))),null),b,!0,!0,!0,!0)}} K.aad.prototype={ $1:function(a){var s=this.a return new T.l4(new K.Mn(s.r,s.c,this.b,s.$ti.h("Mn<1>")),new M.Ls(s.z.a,this.c,null),null)}, $S:182} K.tM.prototype={ aM:function(a){var s=new K.P_(this.e,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){b.G=this.e}} K.P_.prototype={ bM:function(){this.of() var s=this.r2 s.toString this.G.$1(s)}} K.Ml.prototype={ H:function(a,b){var s=null return M.ap(C.iN,this.c,s,C.ne,s,s,s,s,s)}} K.jC.prototype={} K.pG.prototype={ ah:function(){return new K.tj(C.k,this.$ti.h("tj<1>"))}} K.tj.prototype={ gcd:function(a){var s this.a.toString s=this.r return s}, aC:function(){var s,r,q,p=this p.b_() p.Kt() s=p.a s.toString if(p.r==null)p.r=O.Xi(!0,s.gcM(s).j(0),!0,null,!1) s=t.ot r=t.wS p.y=P.aj([C.ie,new U.iz(new K.aaa(p),new R.by(H.b([],s),r),t.wY),C.mr,new U.iz(new K.aab(p),new R.by(H.b([],s),r),t.nz)],t.n,t.od) r=p.gcd(p).P$ r.bQ(r.c,new B.bn(p.gGl()),!1) q=$.D.A$.f r=q.b p.z=r==null?O.mZ():r q.d.B(0,p.gGm())}, p:function(a){var s,r=this C.b.u($.D.aE$,r) r.yZ() $.D.A$.f.d.u(0,r.gGm()) r.gcd(r).T(0,r.gGl()) s=r.r if(s!=null)s.p(0) r.bh(0)}, yZ:function(){var s,r=this.e if(r!=null)if(r.gNt()){s=r.a if(s!=null)s.adE(r)}this.f=this.e=null}, Zn:function(){var s=this if(s.x!==s.gcd(s).gi6())s.Y(new K.aa4(s))}, Zo:function(a){if(this.c==null)return this.Y(new K.aa5(this,a))}, bd:function(a){this.bG(a) this.a.toString a.toString this.Kt()}, Kt:function(){var s,r,q=this,p=q.a,o=p.c if(o.length!==0)if(p.d==null){p=new H.aO(o,new K.aa8(q),H.Y(o).h("aO<1>")) p=!p.gM(p).q()}else p=!1 else p=!0 if(p){q.d=null return}for(p=q.a,o=p.c,s=o.length,r=0;r>")) for(q=a.h("tM<1>"),p=0;o=c.a.c,p?>") g=a.h("aH?>") f=S.xD(C.by) e=H.b([],t.fy) d=$.R a=new K.A1(r,C.d0,q,o,8,l,m,b,b,k,"Dismiss",b,j,new N.aY(b,a.h("aY>>")),new N.aY(b,t.A),new S.qv(),b,new P.aH(new P.a1(i,h),g),f,e,C.lB,new B.cZ(b,new P.a7(t.V),t.XR),new P.aH(new P.a1(d,h),g),a.h("A1<1>")) c.e=a n.qx(a).bN(0,new K.aa7(c),t.H) c.a.toString}, ga2i:function(){var s,r=this,q=u.I if(r.goC()){r.a.toString s=r.c s.toString switch(K.aA(s).S.cx){case C.a3:s=C.aa.i(0,700) s.toString return s case C.a2:return C.T default:throw H.a(H.j(q))}}else{r.a.toString s=r.c s.toString switch(K.aA(s).S.cx){case C.a3:s=C.aa.i(0,400) s.toString return s case C.a2:return C.fC default:throw H.a(H.j(q))}}}, goC:function(){var s=this.a s=s.c.length!==0&&!0 return s}, ga5d:function(){var s=this.z switch(s===$?H.e(H.t("_focusHighlightMode")):s){case C.bz:return!1 case C.bd:return this.x default:throw H.a(H.j(u.I))}}, H:function(a,b){var s,r,q,p,o,n,m,l,k,j=this,i=null,h=F.fv(b) if(h==null)s=i else{h=h.a s=h.a>h.b?C.li:C.lh}if(s==null){r=$.b4().gij() s=r.a>r.b?C.li:C.lh}h=j.f if(h==null){j.f=s h=s}if(s!==h){j.yZ() j.f=s}h=j.a q=P.bk(h.c,!0,t.l7) j.a.toString if(!j.goC())j.a.toString M.TB(b).toString if(q.length===0)p=M.ap(i,i,i,i,i,i,i,i,i) else{h=j.d if(h==null)h=i j.a.toString o=H.Y(q).h("Z<1,ar>") o=P.an(new H.Z(q,new K.aa9(j),o),!0,o.h("av.E")) p=new T.G1(h,C.iN,i,C.br,o,i)}if(j.goC()){h=j.gzm() h.toString}else{h=j.gzm() h.toString h=h.fi(K.aA(b).go)}if(j.ga5d()){j.a.toString o=K.aA(b) o=new S.dM(o.cy,i,i,C.dR,i,i,C.ac)}else o=i n=b.a0(t.I) n.toString n=C.aF.ak(n.f) j.a.toString m=t.J l=H.b([],m) j.a.toString l.push(p) k=j.ga2i() j.a.toString l.push(Y.FX(C.r4,new T.eu(k,i,24),i)) s=L.mH(M.ap(i,T.eF(l,C.w,C.kS,C.wN),i,i,o,i,i,n,i),i,i,C.bL,!0,h,i,i,C.av) if(b.a0(t.U2)==null){j.a.toString h=M.ap(i,i,i,i,C.nf,1,i,i,i) s=T.yF(C.ca,H.b([s,T.a1u(8,h,i,i,0,0,i,i)],m),C.br,i,i)}h=j.y if(h===$)h=H.e(H.t("_actionMap")) o=j.goC() n=j.gcd(j) j.a.toString return T.cu(!0,new U.fZ(h,L.vX(!1,o,D.pT(C.bh,s,C.a4,!1,i,i,i,i,i,i,i,i,i,i,i,i,j.goC()?j.gZp():i,i,i,i,i,i,i),i,!0,n,!0,i,i,i,i),i),!1,i,i,!1,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i)}} K.aaa.prototype={ $1:function(a){return this.a.xO()}, $S:184} K.aab.prototype={ $1:function(a){return this.a.xO()}, $S:185} K.aa4.prototype={ $0:function(){var s=this.a s.x=s.gcd(s).gi6()}, $S:0} K.aa5.prototype={ $0:function(){this.a.z=this.b}, $S:0} K.aa8.prototype={ $1:function(a){return a.f==this.a.a.d}, $S:function(){return this.a.$ti.h("G(jC<1>)")}} K.aa6.prototype={ $1:function(a){var s=this.a.e if(s==null)return s.fl[this.b]=a.b}, $S:186} K.aa7.prototype={ $1:function(a){var s=this.a s.yZ() if(s.c==null||a==null)return s.a.r.$1(a.a)}, $S:function(){return this.a.$ti.h("a6(hq<1>?)")}} K.aa9.prototype={ $1:function(a){var s=T.r9(a,this.a.a.fx,null) return s}, $S:187} K.Ce.prototype={} T.vJ.prototype={ gt:function(a){return J.a3(this.a)}, k:function(a,b){if(b==null)return!1 if(this===b)return!0 if(J.N(b)!==H.E(this))return!1 return b instanceof T.vJ&&J.d(b.a,this.a)}} T.Mr.prototype={} Z.FB.prototype={ cZ:function(a){var s=this return s.f!==a.f||s.r!=a.r||s.x!=a.x||s.y!=a.y}} E.a9U.prototype={ j:function(a){return""}} E.FC.prototype={ H:function(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g,f=null,e=K.aA(b),d=e.ax,c=d.a if(c==null)c=e.S.y s=d.b if(s==null)s=e.S.c r=d.c if(r==null)r=e.cy q=d.d if(q==null)q=e.db p=d.e if(p==null)p=e.dy o=d.f if(o==null)o=6 n=d.r if(n==null)n=6 m=d.x if(m==null)m=8 l=d.y if(l==null)l=o k=d.z if(k==null)k=12 j=e.bi i=e.ac.ch.a8v(c,1.2) h=d.Q if(h==null)h=C.jo g=Z.aki(C.a9,!1,this.c,C.V,this.k3,l,o,!0,s,r,n,f,f,k,q,m,j,f,f,f,this.Q,C.aF,h,p,i,C.mv) return new T.GE(new T.n6(C.oB,g,f),f)}} A.X3.prototype={ j:function(a){return"FloatingActionButtonLocation"}} A.a6f.prototype={ kE:function(a){var s=this.PY(a,0),r=a.c,q=a.b.b,p=a.a.b,o=a.x.b,n=r-p-Math.max(16,a.f.d-(a.r.b-r)+16) if(o>0)n=Math.min(n,r-o-p-16) return new P.m(s,(q>0?Math.min(n,r-q-p/2):n)+0)}} A.WN.prototype={} A.WM.prototype={ PY:function(a,b){switch(a.y){case C.p:return 16+a.e.a-b case C.m:return a.r.a-16-a.e.c-a.a.a+b default:throw H.a(H.j(u.I))}}} A.aai.prototype={ j:function(a){return"FloatingActionButtonLocation.endFloat"}} A.X2.prototype={ j:function(a){return"FloatingActionButtonAnimator"}} A.adY.prototype={ PX:function(a,b,c){if(c<0.5)return a else return b}} A.zx.prototype={ gm:function(a){var s,r=this if(r.x.gbz()>>16&255,o.gm(o)>>>8&255,o.gm(o)&255)) r=T.ajV(b) o=p.cy if(o!=null)q=o.$0() else{o=p.b.r2 q=new P.x(0,0,0+o.a,0+o.b)}if(r==null){a.bu(0) a.b1(0,b.a) p.Ib(a,q,n) a.bj(0)}else p.Ib(a,q.bJ(r),n)}} U.agK.prototype={ $0:function(){var s=this.a.r2 return new P.x(0,0,0+s.a,0+s.b)}, $S:151} U.abd.prototype={ a8B:function(a,b,c,d,e,f,g,h,i,j,k,a0){var s,r,q=null,p=i==null?U.aDE(k,d,j,h):i,o=new U.wf(h,C.ba,f,p,U.aDB(k,d,j),!d,a0,c,e,k,g),n=e.G,m=G.cl(q,C.e_,0,q,1,q,n),l=e.gdd() m.dm() s=m.bq$ s.b=!0 s.a.push(l) m.cm(0) o.fr=m m=o.gtt() s=t.H7 m.toString r=t.m o.dy=new R.b3(r.a(m),new R.aM(0,p,s),s.h("b3")) n=G.cl(q,C.a9,0,q,1,q,n) n.dm() s=n.bq$ s.b=!0 s.a.push(l) n.dh(o.ga2p()) o.fy=n l=c.gm(c) o.fx=new R.b3(r.a(n),new R.q3(l>>>24&255,0),t.gD.h("b3")) e.KS(o) return o}} U.wf.prototype={ gtt:function(){var s=this.fr return s===$?H.e(H.t("_radiusController")):s}, a8f:function(a){var s=C.d.dC(this.cx/1),r=this.gtt() r.e=P.cJ(0,s) r.cm(0) this.fy.cm(0)}, aH:function(a){var s=this.fy if(s!=null)s.cm(0)}, a2q:function(a){if(a===C.a7)this.p(0)}, p:function(a){var s=this s.gtt().p(0) s.fy.p(0) s.fy=null s.rr(0)}, Oi:function(a,b){var s,r,q=this,p=H.aF(),o=p?H.b_():new H.aR(new H.aT()) p=q.e s=q.fx if(s===$)s=H.e(H.t("_alpha")) o.sap(0,P.aI(s.gm(s),p.gm(p)>>>16&255,p.gm(p)>>>8&255,p.gm(p)&255)) r=q.z if(q.db)r=P.a0D(r,q.b.r2.jS(C.i),q.gtt().gbz()) r.toString p=q.dy if(p===$)p=H.e(H.t("_radius")) q.ad3(q.Q,a,r,q.cy,q.ch,o,p.gm(p),q.dx,b)}} R.ng.prototype={ sap:function(a,b){if(J.d(b,this.e))return this.e=b this.a.aw()}, ad3:function(a,b,c,d,e,f,g,h,i){var s,r=T.ajV(i) b.bu(0) if(r==null)b.b1(0,i.a) else b.af(0,r.a,r.b) if(d!=null){s=d.$0() if(e!=null)b.fh(0,e.h9(s,h)) else if(!a.k(0,C.ba))b.jU(0,P.a1I(s,a.c,a.d,a.a,a.b)) else b.jV(0,s)}b.eB(0,c,g,f) b.bj(0)}} R.Zu.prototype={} R.B4.prototype={ cZ:function(a){return this.f!==a.f}, gb9:function(a){return this.f}} R.q2.prototype={ Q0:function(a){return null}, H:function(a,b){var s=this,r=b.a0(t.sZ),q=r==null?null:r.f return new R.At(s.c,s.d,s.e,s.f,s.r,s.x,s.y,s.z,s.Q,s.ch,s.cx,s.cy,s.db,s.dx,s.dy,s.fr,s.fx,s.fy,s.go,s.id,s.k1,!1,s.k3,s.k4,s.r1,s.r2,q,s.gQ_(),s.ga8N(),null)}, a8O:function(a){return!0}} R.At.prototype={ ah:function(){return new R.As(P.y(t.R9,t.Pr),new R.by(H.b([],t.ML),t.yw),null,C.k)}} R.tz.prototype={ j:function(a){return this.b}} R.As.prototype={ gab_:function(){var s=this.r s=s.gaZ(s) s=new H.aO(s,new R.abb(),H.u(s).h("aO")) return!s.gO(s)}, BS:function(a,b){var s,r=this.y,q=r.a,p=q.length if(b){r.b=!0 q.push(a)}else r.u(0,a) s=q.length!==0 if(s!==(p!==0)){r=this.a.rx if(r!=null)r.BS(this,s)}}, Jq:function(a){var s=this.c s.toString this.a5w(s) this.Hz()}, a5h:function(){return this.Jq(null)}, aC:function(){this.UI() $.D.A$.f.d.B(0,this.gHy())}, bd:function(a){var s,r=this r.bG(a) s=r.a s.toString if(r.hh(s)!==r.hh(a)){s=r.a s.toString if(r.hh(s))r.Pk(C.cM,!1,r.f) r.zv()}}, p:function(a){$.D.A$.f.d.u(0,this.gHy()) this.bh(0)}, gvX:function(){if(!this.gab_()){var s=this.d s=s!=null&&s.a!==0}else s=!0 return s}, D5:function(a){var s,r=this switch(a){case C.c8:s=r.a.fx if(s==null){s=r.c s.toString s=K.aA(s).dx}return s case C.f4:s=r.a.fy s=s==null?null:s.a.$1(C.C2) if(s==null)s=r.a.dy if(s==null){s=r.c s.toString s=K.aA(s).cy}return s case C.cM:s=r.a.fy s=s==null?null:s.a.$1(C.C4) if(s==null)s=r.a.fr if(s==null){s=r.c s.toString s=K.aA(s).db}return s default:throw H.a(H.j(u.I))}}, PK:function(a){switch(a){case C.c8:return C.a9 case C.cM:case C.f4:return C.cZ default:throw H.a(H.j(u.I))}}, Pk:function(a,b,c){var s,r,q,p,o,n,m,l,k,j=this,i=j.r,h=i.i(0,a) if(a===C.c8){s=j.a.rx if(s!=null)s.BS(j,c)}s=h==null if(c===(!s&&h.fr))return if(c)if(s){s=j.c.gD() s.toString t.x.a(s) r=j.c.uT(t.zd) r.toString q=j.D5(a) p=j.a o=p.cx n=p.cy m=p.dx p=p.ry.$1(s) l=j.c.a0(t.I) l.toString k=j.PK(a) s=new Y.lg(o,n,C.ba,m,p,l.f,q,r,s,new R.abc(j,a)) k=G.cl(null,k,0,null,1,null,r.G) k.dm() p=k.bq$ p.b=!0 p.a.push(r.gdd()) k.dh(s.ga_O()) k.cm(0) s.dy=k k=s.gop() q=q.gm(q) k.toString s.dx=new R.b3(t.m.a(k),new R.q3(0,q>>>24&255),t.gD.h("b3")) r.KS(s) i.n(0,a,s) j.nQ()}else{h.fr=!0 h.gop().cm(0)}else{h.fr=!1 h.gop().cT(0)}switch(a){case C.c8:i=j.a.y if(i!=null)i.$1(c) break case C.cM:if(b){i=j.a.z if(i!=null)i.$1(c)}break case C.f4:break default:throw H.a(H.j(u.I))}}, nP:function(a,b){return this.Pk(a,!0,b)}, YS:function(a){var s,r,q,p,o,n,m,l,k,j,i=this,h={},g=i.c.uT(t.zd) g.toString s=i.c.gD() s.toString t.x.a(s) r=s.ir(a) q=i.a.fy q=q==null?null:q.a.$1(C.m0) p=q==null?i.a.go:q if(p==null){q=i.c q.toString p=K.aA(q).dy}q=i.a o=q.ch?q.ry.$1(s):null q=i.a n=q.db m=q.dx h.a=null q=q.id if(q==null){q=i.c q.toString q=K.aA(q).fr}l=i.a k=l.ch l=l.cy j=i.c.a0(t.I) j.toString return h.a=q.a8B(0,n,p,k,g,m,new R.ab9(h,i),r,l,o,s,j.f)}, a2r:function(a){if(this.c==null)return this.Y(new R.aba(this))}, ga59:function(){var s,r=this,q=r.c q.toString q=F.fv(q) s=q==null?null:q.db switch(s==null?C.ay:s){case C.ay:q=r.a q.toString return r.hh(q)&&r.z case C.de:return r.z default:throw H.a(H.j(u.I))}}, zv:function(){var s,r=$.D.A$.f.b switch(r==null?O.mZ():r){case C.bz:s=!1 break case C.bd:s=this.ga59() break default:throw H.a(H.j(u.I))}this.nP(C.f4,s)}, a0C:function(a){var s this.z=a this.zv() s=this.a.k3 if(s!=null)s.$1(a)}, a22:function(a){if(this.y.a.length!==0)return this.a5x(a) this.a.toString}, JB:function(a,b){var s,r,q,p,o=this if(a!=null){s=a.gD() s.toString t.x.a(s) r=s.r2 r=new P.x(0,0,0+r.a,0+r.b).gbn() q=T.fu(s.de(0,null),r)}else q=b.a p=o.YS(q) s=o.d;(s==null?o.d=P.be(t.nQ):s).B(0,p) o.e=p o.nQ() o.nP(C.c8,!0)}, a5x:function(a){return this.JB(null,a)}, a5w:function(a){return this.JB(a,null)}, Hz:function(){var s=this,r=s.e if(r!=null)r.a8f(0) s.e=null s.nP(C.c8,!1) r=s.a if(r.d!=null){if(r.k1){r=s.c r.toString M.ajz(r)}r=s.a.d if(r!=null)r.$0()}}, a20:function(){var s=this,r=s.e if(r!=null)r.aH(0) s.e=null s.a.toString s.nP(C.c8,!1)}, e0:function(){var s,r,q,p,o=this,n=o.d if(n!=null){o.d=null for(n=new P.hr(n,n.ou(),H.u(n).h("hr<1>"));n.q();)n.d.p(0) o.e=null}for(n=o.r,s=n.gaj(n),s=s.gM(s);s.q();){r=s.gw(s) q=n.i(0,r) if(q!=null){p=q.dy if(p===$)p=H.e(H.t("_alphaController")) p.r.p(0) p.r=null p.ro(0) q.rr(0)}n.n(0,r,null)}n=o.a.rx if(n!=null)n.BS(o,!1) o.UH()}, hh:function(a){var s if(a.d==null)s=!1 else s=!0 return s}, a1_:function(a){var s,r=this r.f=!0 s=r.a s.toString if(r.hh(s))r.nP(C.cM,r.f)}, a11:function(a){this.f=!1 this.nP(C.cM,!1)}, gYe:function(){var s,r=this,q=r.c q.toString q=F.fv(q) s=q==null?null:q.db switch(s==null?C.ay:s){case C.ay:q=r.a q.toString return r.hh(q)&&r.a.r2 case C.de:return!0 default:throw H.a(H.j(u.I))}}, H:function(a,b){var s,r,q,p,o,n,m,l,k,j,i=this,h=null i.E9(0,b) for(s=i.r,r=s.gaj(s),r=r.gM(r);r.q();){q=r.gw(r) p=s.i(0,q) if(p!=null)p.sap(0,i.D5(q))}s=i.e if(s!=null){r=i.a.fy r=r==null?h:r.a.$1(C.m0) if(r==null)r=i.a.go s.sap(0,r==null?K.aA(b).dy:r)}s=i.a r=s.Q if(r==null)r=C.iB q=P.aZ(t.ui) if(!i.hh(s))q.B(0,C.aS) if(i.f){s=i.a s.toString s=i.hh(s)}else s=!1 if(s)q.B(0,C.ao) if(i.z)q.B(0,C.b8) o=V.qk(r,q,t.Pb) s=i.x if(s===$){s=i.gJp() r=t.ot q=t.wS q=P.aj([C.ie,new U.iz(s,new R.by(H.b([],r),q),t.wY),C.mr,new U.iz(s,new R.by(H.b([],r),q),t.nz)],t.n,t.od) if(i.x===$){i.x=q s=q}else s=H.e(H.bS("_actionMap"))}r=i.a.r1 q=i.gYe() p=i.a n=p.k4 m=p.d m=m==null?h:i.gJp() p=i.hh(p)?i.ga21():h l=i.a l.toString l=i.hh(l)?i.ga2s():h k=i.a k.toString k=i.hh(k)?i.ga2_():h j=i.a return new R.B4(i,new U.fZ(s,L.vX(n,q,new T.hY(i.ga0Z(),h,i.ga10(),o,!0,T.cu(h,D.pT(C.bh,j.c,C.a4,!0,h,h,h,h,h,h,h,h,h,h,h,h,l,k,p,h,h,h,h),!1,h,h,!1,h,h,h,h,h,h,h,h,h,h,h,h,h,h,m,h,h,h,h,h,h),h),h,!0,r,!0,h,i.ga0B(),h,h),h),h)}, $iakM:1} R.abb.prototype={ $1:function(a){return a!=null}, $S:194} R.abc.prototype={ $0:function(){var s=this.a s.r.n(0,this.b,null) s.nQ()}, $S:0} R.ab9.prototype={ $0:function(){var s,r=this.b,q=r.d if(q!=null){s=this.a q.u(0,s.a) if(r.e==s.a)r.e=null r.nQ()}}, $S:0} R.aba.prototype={ $0:function(){this.a.zv()}, $S:0} R.G3.prototype={} R.Cj.prototype={ aC:function(){this.b_() if(this.gvX())this.rT()}, e0:function(){var s=this.bA$ if(s!=null){s.aa() this.bA$=null}this.oh()}} F.hS.prototype={} F.kk.prototype={ giO:function(){return new V.X(0,0,0,this.a.b)}, bp:function(a,b){return new F.kk(C.j7,this.a.bp(0,b))}, h9:function(a,b){var s=P.dh() s.hp(0,this.b.h6(a)) return s}, dO:function(a,b){var s,r if(a instanceof F.kk){s=Y.bd(a.a,this.a,b) r=K.Dt(a.b,this.b,b) r.toString return new F.kk(r,s)}return this.ma(a,b)}, dP:function(a,b){var s,r if(a instanceof F.kk){s=Y.bd(this.a,a.a,b) r=K.Dt(this.b,a.b,b) r.toString return new F.kk(r,s)}return this.mb(a,b)}, Oh:function(a,b,c,d,e,f){var s=this.b if(!J.d(s.c,C.a5)||!J.d(s.d,C.a5))a.fh(0,this.h9(b,f)) s=b.d a.hs(0,new P.m(b.a,s),new P.m(b.c,s),this.a.lQ())}, ks:function(a,b,c){return this.Oh(a,b,0,0,null,c)}, k:function(a,b){if(b==null)return!1 if(this===b)return!0 if(J.N(b)!==H.E(this))return!1 return b instanceof F.hS&&J.d(b.a,this.a)}, gt:function(a){return J.a3(this.a)}} L.Au.prototype={ sbb:function(a,b){if(b!=this.a){this.a=b this.aa()}}, sMv:function(a){if(a!==this.b){this.b=a this.aa()}}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof L.Au&&b.a==s.a&&b.b===s.b}, gt:function(a){return P.a5(this.a,this.b,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}} L.Av.prototype={ ej:function(a){var s=Y.hf(this.a,this.b,a) s.toString return t.U1.a(s)}} L.Ne.prototype={ aD:function(a,b){var s,r,q,p=this,o=p.c,n=p.b o.toString s=o.b1(0,n.gm(n)) r=new P.x(0,0,0+b.a,0+b.b) n=p.x o=p.y n.toString o=n.b1(0,o.gm(o)) o.toString q=P.ajb(o,p.r) if((q.gm(q)>>>24&255)>0){o=s.h9(r,p.f) n=H.aF() n=n?H.b_():new H.aR(new H.aT()) n.sap(0,q) n.sdf(0,C.aA) a.cj(0,o,n)}o=p.e n=o.a s.Oh(a,r,o.b,p.d.gbz(),n,p.f)}, eq:function(a){var s=this return s.b!=a.b||s.y!=a.y||s.d!==a.d||s.c!=a.c||!s.e.k(0,a.e)||s.f!==a.f}} L.zF.prototype={ ah:function(){return new L.Lg(null,C.k)}} L.Lg.prototype={ geS:function(){var s=this.d return s===$?H.e(H.t("_controller")):s}, goJ:function(){var s=this.e return s===$?H.e(H.t("_hoverColorController")):s}, gFh:function(){var s=this.f return s===$?H.e(H.t("_borderAnimation")):s}, aC:function(){var s,r=this,q=null r.b_() r.e=G.cl(q,C.qb,0,q,1,r.a.x?1:0,r) r.d=G.cl(q,C.a9,0,q,1,q,r) r.f=S.cy(C.al,r.geS(),q) s=r.a.c r.r=new L.Av(s,s) r.x=S.cy(C.ah,r.goJ(),q) r.y=new R.hE(C.aP,r.a.r)}, p:function(a){this.geS().p(0) this.goJ().p(0) this.UB(0)}, bd:function(a){var s,r,q=this q.bG(a) s=q.a.c r=a.c if(!J.d(s,r)){q.r=new L.Av(r,q.a.c) s=q.geS() s.sm(0,0) s.cm(0)}if(!J.d(q.a.r,a.r))q.y=new R.hE(C.aP,q.a.r) s=q.a.x if(s!==a.x)if(s)q.goJ().cm(0) else q.goJ().cT(0)}, H:function(a,b){var s,r,q,p,o,n,m=this,l=H.b([m.gFh(),m.a.d,m.goJ()],t.Eo),k=m.gFh(),j=m.r if(j===$)j=H.e(H.t("_border")) s=m.a r=s.e s=s.d q=b.a0(t.I) q.toString p=m.a.f o=m.y if(o===$)o=H.e(H.t("_hoverColorTween")) n=m.x if(n===$)n=H.e(H.t("_hoverAnimation")) return T.l3(null,new L.Ne(k,j,r,s,q.f,p,o,n,new B.oH(l)),null,null,C.r)}} L.Pw.prototype={ gaee:function(){var s=t.m.a(this.c),r=s.gm(s) if(r<=0.25)return-r*4 else if(r<0.75)return(r-0.5)*4 else return(1-r)*4*4}, H:function(a,b){return T.Kh(null,this.e,E.nr(this.gaee(),0,0),!0)}} L.Aj.prototype={ ah:function(){return new L.Ak(null,C.k)}} L.Ak.prototype={ geS:function(){var s=this.d return s===$?H.e(H.t("_controller")):s}, aC:function(){var s,r=this r.b_() r.d=G.cl(null,C.a9,0,null,1,null,r) if(r.a.r!=null){r.f=r.or() r.geS().sm(0,1)}s=r.geS() s.dm() s=s.bq$ s.b=!0 s.a.push(r.gyB())}, p:function(a){this.geS().p(0) this.UF(0)}, yC:function(){this.Y(new L.aaQ())}, bd:function(a){var s,r,q=this q.bG(a) s=a.r r=q.a.r!=null if(r!==(s!=null)||!1)if(r){q.f=q.or() q.geS().cm(0)}else q.geS().cT(0)}, or:function(){var s,r,q,p,o=null,n=this.geS().gbz(),m=this.geS() m=new R.aM(C.xA,C.i,t.Ly).b1(0,m.gm(m)) s=this.a r=s.r r.toString q=s.x p=s.c return T.cu(o,T.a0E(!1,T.aoa(L.ba(r,s.y,C.aV,o,o,q,p,o),!0,m),n),!0,o,o,!1,o,o,o,o,o,!0,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o)}, H:function(a,b){var s=this,r=s.geS() if(r.gbg(r)===C.N){s.f=null s.a.toString s.e=null return C.eH}r=s.geS() if(r.gbg(r)===C.a7){s.e=null if(s.a.r!=null)return s.f=s.or() else{s.f=null return C.eH}}if(s.e==null&&s.a.r!=null)return s.or() if(s.f==null)s.a.toString if(s.a.r!=null){r=s.geS().gbz() return T.yF(C.ca,H.b([T.a0E(!1,s.e,1-r),s.or()],t.J),C.br,null,null)}return C.eH}} L.aaQ.prototype={ $0:function(){}, $S:0} L.vV.prototype={ j:function(a){return this.b}} L.fc.prototype={ j:function(a){return this.b}} L.M1.prototype={ k:function(a,b){var s,r=this if(b==null)return!1 if(r===b)return!0 if(J.N(b)!==H.E(r))return!1 if(b instanceof L.M1)if(b.a.k(0,r.a))if(b.c===r.c)if(b.d==r.d)if(J.d(b.e,r.e))if(b.f.k(0,r.f))s=b.x==r.x&&b.y.k(0,r.y)&&J.d(b.z,r.z)&&J.d(b.Q,r.Q)&&J.d(b.ch,r.ch)&&J.d(b.cx,r.cx)&&J.d(b.cy,r.cy)&&J.d(b.db,r.db)&&J.d(b.dx,r.dx)&&J.d(b.dy,r.dy)&&b.fr.wK(0,r.fr)&&J.d(b.fx,r.fx)&&b.fy.wK(0,r.fy)&&!0 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 return s}, gt:function(a){var s=this return P.a5(s.a,s.c,s.d,s.e,s.f,!1,s.x,s.y,s.z,s.Q,s.ch,s.cx,s.cy,s.db,s.dx,s.dy,s.fr,s.fx,s.fy,!1)}} L.ads.prototype={} L.tZ.prototype={ hn:function(a,b,c){var s=this if(a!=null){s.fX(a) s.F.u(0,c)}if(b!=null){s.F.n(0,c,b) s.ff(b)}return b}, gmr:function(a){var s=this return P.d9(function(){var r=a var q=0,p=1,o,n return function $async$gmr(b,c){if(b===1){o=c q=p}while(true)switch(q){case 0:n=s.N q=n!=null?2:3 break case 2:q=4 return n case 4:case 3:n=s.S q=n!=null?5:6 break case 5:q=7 return n case 7:case 6:n=s.b7 q=n!=null?8:9 break case 8:q=10 return n case 10:case 9:n=s.ae q=n!=null?11:12 break case 11:q=13 return n case 13:case 12:n=s.ax q=n!=null?14:15 break case 14:q=16 return n case 16:case 15:n=s.aU q=n!=null?17:18 break case 17:q=19 return n case 19:case 18:n=s.au q=n!=null?20:21 break case 20:q=22 return n case 22:case 21:n=s.aB q=n!=null?23:24 break case 23:q=25 return n case 25:case 24:n=s.bf q=n!=null?26:27 break case 26:q=28 return n case 28:case 27:n=s.bE q=n!=null?29:30 break case 29:q=31 return n case 31:case 30:n=s.bx q=n!=null?32:33 break case 32:q=34 return n case 34:case 33:return P.d5() case 1:return P.d6(o)}}},t.x)}, sad:function(a,b){if(this.aS.k(0,b))return this.aS=b this.a1()}, sbt:function(a,b){if(this.cD===b)return this.cD=b this.a1()}, svM:function(a,b){if(this.e2==b)return this.e2=b this.a1()}, sae1:function(a){return}, sBH:function(a){if(this.c_===a)return this.c_=a this.ao()}, sAX:function(a){return}, gyF:function(){var s=this.aS s.e.toString return!1}, ag:function(a){var s this.dU(a) for(s=this.gmr(this),s=new P.d8(s.a(),s.$ti.h("d8<1>"));s.q();)s.gw(s).ag(a)}, ab:function(a){var s this.dw(0) for(s=this.gmr(this),s=new P.d8(s.a(),s.$ti.h("d8<1>"));s.q();)s.gw(s).ab(0)}, io:function(){this.gmr(this).K(0,this.gCr())}, be:function(a){this.gmr(this).K(0,a)}, f8:function(a){var s=this,r=s.N if(r!=null)a.$1(r) r=s.ax if(r!=null)a.$1(r) r=s.b7 if(r!=null)a.$1(r) r=s.au if(r!=null)a.$1(r) r=s.aB if(r!=null)if(s.c_)a.$1(r) else if(s.au==null)a.$1(r) r=s.S if(r!=null)a.$1(r) r=s.ae if(r!=null)a.$1(r) r=s.aU if(r!=null)a.$1(r) r=s.bx if(r!=null)a.$1(r) r=s.bf if(r!=null)a.$1(r) r=s.bE if(r!=null)a.$1(r)}, gjk:function(){return!1}, hP:function(a,b){var s if(a==null)return 0 a.cJ(0,b,!0) s=a.D_(C.R) s.toString return s}, a2x:function(a,b,c,d){var s=d.a if(s<=0){if(a>=b)return b return a+(b-a)*(s+1)}if(b>=c)return b return b+(c-b)*s}, dA:function(a){var s=this.S,r=s.d r.toString r=t.q.a(r).a s=s.dA(a) s.toString return r.b+s}, cB:function(a){return C.r}, bM:function(){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9=this,e0=null,e1=u.I,e2={},e3=t.k,e4=e3.a(K.r.prototype.gX.call(d9)) d9.aK=null s=P.y(t.Qv,t.d) r=e4.qc() q=d9.ax s.n(0,q,d9.hP(q,r)) q=d9.aU s.n(0,q,d9.hP(q,r)) q=d9.N s.n(0,q,d9.hP(q,r)) q=d9.b7 s.n(0,q,d9.hP(q,r)) q=d9.ae s.n(0,q,d9.hP(q,r)) q=e3.a(K.r.prototype.gX.call(d9)).b p=d9.N if(p==null)p=C.r else{p=p.r2 p.toString}o=d9.aS n=o.a m=d9.b7 if(m==null)m=C.r else{m=m.r2 m.toString}l=d9.ax if(l==null)l=C.r else{l=l.r2 l.toString}k=d9.aU if(k==null)k=C.r else{k=k.r2 k.toString}j=d9.ae i=j==null if(i)h=C.r else{h=j.r2 h.toString}g=Math.max(0,q-(p.a+n.a+m.a+l.a+k.a+h.a+n.c)) n=P.aa(1,1.3333333333333333,o.d) n.toString if(i)q=C.r else{q=j.r2 q.toString}o.e.toString e3=e3.a(K.r.prototype.gX.call(d9)).b p=d9.N if(p==null)p=C.r else{p=p.r2 p.toString}o=d9.aS.a m=d9.b7 if(m==null)m=C.r else{m=m.r2 m.toString}f=Math.max(0,e3-(p.a+o.a+m.a+q.a+o.c)) o=d9.au s.n(0,o,d9.hP(o,r.Am(f*n))) n=d9.aB s.n(0,n,d9.hP(n,r.LP(g,g))) n=d9.bE s.n(0,n,d9.hP(n,r)) n=d9.bf o=d9.N if(o==null)e3=C.r else{e3=o.r2 e3.toString}q=d9.bE if(q==null)q=C.r else{q=q.r2 q.toString}s.n(0,n,d9.hP(n,r.Am(Math.max(0,r.b-e3.a-q.a-d9.aS.a.gi8())))) e=d9.au==null?0:d9.aS.c d9.aS.e.toString e3=d9.bE if(e3==null)d=0 else{e3=s.i(0,e3) e3.toString d=e3+8}e3=d9.bf if(e3==null)q=e0 else{q=e3.r2 q.toString}c=q!=null&&e3.r2.b>0 b=!c?0:e3.r2.b+8 a=Math.max(d,b) e3=d9.aS.y a0=new P.m(e3.a,e3.b).a4(0,4) e3=d9.S q=d9.aS.a p=a0.b o=p/2 s.n(0,e3,d9.hP(e3,r.Az(new V.X(0,q.b+e+o,0,q.d+a+o)).LP(g,g))) e3=d9.aB a1=e3==null?0:e3.r2.b e3=d9.S a2=e3==null?0:e3.r2.b a3=Math.max(H.B(a1),H.B(a2)) e3=s.i(0,e3) e3.toString q=s.i(0,d9.aB) q.toString a4=Math.max(e3,q) q=d9.ax a5=q==null?e0:q.r2.b if(a5==null)a5=0 e3=d9.aU a6=e3==null?e0:e3.r2.b if(a6==null)a6=0 e3=s.i(0,q) e3.toString q=s.i(0,d9.aU) q.toString a7=Math.max(0,Math.max(e3,q)-a4) q=s.i(0,d9.ax) q.toString e3=s.i(0,d9.aU) e3.toString a8=Math.max(0,Math.max(a5-q,a6-e3)-(a3-a4)) e3=d9.b7 a9=e3==null?0:e3.r2.b e3=d9.ae b0=e3==null?0:e3.r2.b b1=Math.max(H.B(a9),H.B(b0)) e3=d9.aS q=e3.a b2=Math.max(b1,e+q.b+a7+a3+a8+q.d+p) e3=e3.x e3.toString if(!e3)e3=!1 else e3=!0 b3=e3?0:48 b4=r.d-a b5=Math.min(Math.max(b2,b3),b4) b6=b3>b2?(b3-b2)/2:0 b7=Math.max(0,b2-b4) e3=d9.gyF()?C.m8:C.m9 b8=(e3.a+1)/2 b9=a7-b7*(1-b8) e3=d9.aS.a q=e3.b c0=q+e+a4+b9+b6 c1=b5-q-e-e3.d-(a7+a3+a8) c2=c0+c1*b8+o e3=d9.gyF()?C.m8:C.m9 c3=d9.a2x(c0,a4+b9/2+(b5-(2+a3))/2,c0+c1,e3) e3=d9.bE if(e3!=null){e3=s.i(0,e3) e3.toString c4=b5+8+e3 c5=d9.bE.r2.b+8}else{c4=0 c5=0}if(c){e3=s.i(0,d9.bf) e3.toString c6=b5+8+e3 c7=b}else{c6=0 c7=0}c8=Math.max(c4,c6) c9=Math.max(c5,c7) d0=e4.b e3=d9.bx if(e3!=null){q=d9.N if(q==null)q=C.r else{q=q.r2 q.toString}e3.cJ(0,S.hB(b5,d0-q.a),!0) switch(d9.cD){case C.p:d1=0 break case C.m:e3=d9.N if(e3==null)e3=C.r else{e3=e3.r2 e3.toString}d1=e3.a break default:throw H.a(H.j(e1))}e3=d9.bx.d e3.toString t.q.a(e3).a=new P.m(d1,0)}e2.a=null d2=new L.adw(e2) e2.b=null d3=new L.adv(e2,new L.ads(s,c2,c3,c8,b5,c9)) e3=d9.aS.a d4=e3.a d5=d0-e3.c e2.a=b5 e2.b=d9.gyF()?c3:c2 e3=d9.N if(e3!=null){switch(d9.cD){case C.p:d1=d0-e3.r2.a break case C.m:d1=0 break default:throw H.a(H.j(e1))}d2.$2(e3,d1)}switch(d9.cD){case C.p:e3=d9.N if(e3==null)e3=C.r else{e3=e3.r2 e3.toString}d6=d5-e3.a e3=d9.b7 if(e3!=null){d6+=d9.aS.a.a d6-=d2.$2(e3,d6-e3.r2.a)}e3=d9.au if(e3!=null){q=e3.r2 d2.$2(e3,d6-q.a)}e3=d9.ax if(e3!=null)d6-=d3.$2(e3,d6-e3.r2.a) e3=d9.S if(e3!=null)d3.$2(e3,d6-e3.r2.a) e3=d9.aB if(e3!=null)d3.$2(e3,d6-e3.r2.a) e3=d9.ae if(e3!=null){d7=d4-d9.aS.a.a d7+=d2.$2(e3,d7)}else d7=d4 e3=d9.aU if(e3!=null)d3.$2(e3,d7) break case C.m:e3=d9.N if(e3==null)e3=C.r else{e3=e3.r2 e3.toString}d6=d4+e3.a e3=d9.b7 if(e3!=null){d6-=d9.aS.a.a d6+=d2.$2(e3,d6)}e3=d9.au if(e3!=null)d2.$2(e3,d6) e3=d9.ax if(e3!=null)d6+=d3.$2(e3,d6) e3=d9.S if(e3!=null)d3.$2(e3,d6) e3=d9.aB if(e3!=null)d3.$2(e3,d6) e3=d9.ae if(e3!=null){d7=d5+d9.aS.a.c d7-=d2.$2(e3,d7-e3.r2.a)}else d7=d5 e3=d9.aU if(e3!=null)d3.$2(e3,d7-e3.r2.a) break default:throw H.a(H.j(e1))}e3=d9.bf q=e3==null if(!q||d9.bE!=null){e2.a=c9 e2.b=c8 switch(d9.cD){case C.p:if(!q){q=e3.r2.a p=d9.N if(p==null)p=C.r else{p=p.r2 p.toString}d3.$2(e3,d5-q-p.a)}e3=d9.bE if(e3!=null)d3.$2(e3,d4) break case C.m:if(!q){q=d9.N if(q==null)q=C.r else{q=q.r2 q.toString}d3.$2(e3,d4+q.a)}e3=d9.bE if(e3!=null)d3.$2(e3,d5-e3.r2.a) break default:throw H.a(H.j(e1))}}e3=d9.au if(e3!=null){q=e3.d q.toString d8=t.q.a(q).a.a switch(d9.cD){case C.p:d9.aS.f.sbb(0,d8+e3.r2.a) break case C.m:e3=d9.aS q=d9.N if(q==null)q=C.r else{q=q.r2 q.toString}e3.f.sbb(0,d8-q.a) break default:throw H.a(H.j(e1))}d9.aS.f.sMv(d9.au.r2.a*0.75)}else{d9.aS.f.sbb(0,e0) d9.aS.f.sMv(0)}d9.r2=e4.bH(new P.Q(d0,b5+c9))}, a3v:function(a,b){var s=this.au s.toString a.dq(s,b)}, aD:function(a,b){var s,r,q,p,o,n,m,l,k=this,j=new L.adu(a,b) j.$1(k.bx) s=k.au if(s!=null){r=s.d r.toString q=t.q.a(r).a s=s.r2 s.toString r=k.aS r.e.a.toString p=r.d o=r.a.b r=P.aa(1,0.75,p) r.toString switch(k.cD){case C.p:n=q.a+s.a*(1-r) break case C.m:n=q.a break default:throw H.a(H.j(u.I))}s=q.b m=P.aa(0,o-s,p) m.toString l=new E.b8(new Float64Array(16)) l.du() l.af(0,n,s+m) l.bp(0,r) k.aK=l l=k.geT() r=k.aK r.toString k.cw=a.Cl(l,b,r,k.ga3u(),k.cw)}else k.cw=null j.$1(k.N) j.$1(k.ax) j.$1(k.aU) j.$1(k.b7) j.$1(k.ae) j.$1(k.aB) j.$1(k.S) j.$1(k.bf) j.$1(k.bE)}, h0:function(a){return!0}, cR:function(a,b){var s,r,q,p,o for(s=this.gmr(this),s=new P.d8(s.a(),s.$ti.h("d8<1>")),r=t.q;s.q();){q=s.gw(s) p=q.d p.toString o=r.a(p).a if(a.jN(new L.adt(b,o,q),o,b))return!0}return!1}, di:function(a,b){var s,r=this,q=r.au if(a==q&&r.aK!=null){q=q.d q.toString s=t.q.a(q).a q=r.aK q.toString b.cz(0,q) b.af(0,-s.a,-s.b)}r.Sz(a,b)}} L.adw.prototype={ $2:function(a,b){var s,r,q=a.d q.toString t.q.a(q) s=this.a.a s.toString r=a.r2 q.a=new P.m(b,(s-r.b)/2) return r.a}, $S:147} L.adv.prototype={ $2:function(a,b){var s,r,q=a.d q.toString t.q.a(q) s=this.a.b s.toString r=this.b.a.i(0,a) r.toString q.a=new P.m(b,s-r) return a.r2.a}, $S:147} L.adu.prototype={ $1:function(a){var s if(a!=null){s=a.d s.toString this.a.dq(a,t.q.a(s).a.U(0,this.b))}}, $S:196} L.adt.prototype={ $2:function(a,b){return this.c.c3(a,b)}, $S:197} L.M2.prototype={ gE:function(){return t.mV.a(N.a_.prototype.gE.call(this))}, gD:function(){return t.c.a(N.a_.prototype.gD.call(this))}, be:function(a){var s=this.y2 s.gaZ(s).K(0,a)}, hx:function(a){this.y2.u(0,a.c) this.iw(a)}, hi:function(a,b){var s=this.y2,r=s.i(0,b),q=this.ds(r,a,b) if(r!=null)s.u(0,b) if(q!=null)s.n(0,b,q)}, dQ:function(a,b){var s,r=this r.m8(a,b) s=t.mV r.hi(s.a(N.a_.prototype.gE.call(r)).c.z,C.eS) r.hi(s.a(N.a_.prototype.gE.call(r)).c.Q,C.eT) r.hi(s.a(N.a_.prototype.gE.call(r)).c.ch,C.eV) r.hi(s.a(N.a_.prototype.gE.call(r)).c.cx,C.eW) r.hi(s.a(N.a_.prototype.gE.call(r)).c.cy,C.eX) r.hi(s.a(N.a_.prototype.gE.call(r)).c.db,C.eY) r.hi(s.a(N.a_.prototype.gE.call(r)).c.dx,C.eZ) r.hi(s.a(N.a_.prototype.gE.call(r)).c.dy,C.f_) r.hi(s.a(N.a_.prototype.gE.call(r)).c.fr,C.f0) r.hi(s.a(N.a_.prototype.gE.call(r)).c.fx,C.f1) r.hi(s.a(N.a_.prototype.gE.call(r)).c.fy,C.eU)}, hm:function(a,b){var s=this.y2,r=s.i(0,b),q=this.ds(r,a,b) if(r!=null)s.u(0,b) if(q!=null)s.n(0,b,q)}, b5:function(a,b){var s,r=this r.jm(0,b) s=t.mV r.hm(s.a(N.a_.prototype.gE.call(r)).c.z,C.eS) r.hm(s.a(N.a_.prototype.gE.call(r)).c.Q,C.eT) r.hm(s.a(N.a_.prototype.gE.call(r)).c.ch,C.eV) r.hm(s.a(N.a_.prototype.gE.call(r)).c.cx,C.eW) r.hm(s.a(N.a_.prototype.gE.call(r)).c.cy,C.eX) r.hm(s.a(N.a_.prototype.gE.call(r)).c.db,C.eY) r.hm(s.a(N.a_.prototype.gE.call(r)).c.dx,C.eZ) r.hm(s.a(N.a_.prototype.gE.call(r)).c.dy,C.f_) r.hm(s.a(N.a_.prototype.gE.call(r)).c.fr,C.f0) r.hm(s.a(N.a_.prototype.gE.call(r)).c.fx,C.f1) r.hm(s.a(N.a_.prototype.gE.call(r)).c.fy,C.eU)}, Kn:function(a,b){var s,r=this switch(b){case C.eS:s=t.c.a(N.a_.prototype.gD.call(r)) s.N=s.hn(s.N,a,C.eS) break case C.eT:s=t.c.a(N.a_.prototype.gD.call(r)) s.S=s.hn(s.S,a,C.eT) break case C.eV:s=t.c.a(N.a_.prototype.gD.call(r)) s.au=s.hn(s.au,a,C.eV) break case C.eW:s=t.c.a(N.a_.prototype.gD.call(r)) s.aB=s.hn(s.aB,a,C.eW) break case C.eX:s=t.c.a(N.a_.prototype.gD.call(r)) s.ax=s.hn(s.ax,a,C.eX) break case C.eY:s=t.c.a(N.a_.prototype.gD.call(r)) s.aU=s.hn(s.aU,a,C.eY) break case C.eZ:s=t.c.a(N.a_.prototype.gD.call(r)) s.b7=s.hn(s.b7,a,C.eZ) break case C.f_:s=t.c.a(N.a_.prototype.gD.call(r)) s.ae=s.hn(s.ae,a,C.f_) break case C.f0:s=t.c.a(N.a_.prototype.gD.call(r)) s.bf=s.hn(s.bf,a,C.f0) break case C.f1:s=t.c.a(N.a_.prototype.gD.call(r)) s.bE=s.hn(s.bE,a,C.f1) break case C.eU:s=t.c.a(N.a_.prototype.gD.call(r)) s.bx=s.hn(s.bx,a,C.eU) break default:throw H.a(H.j(u.I))}}, iT:function(a,b){this.Kn(t.x.a(a),b)}, j4:function(a,b){this.Kn(null,b)}, iY:function(a,b,c){}} L.zX.prototype={ bK:function(a){var s=t.t,r=($.b5+1)%16777215 $.b5=r return new L.M2(P.y(t.uC,s),r,this,C.a1,P.be(s))}, aM:function(a){var s=this,r=new L.tZ(P.y(t.uC,t.x),s.c,s.d,s.e,s.f,s.r,!1) r.gav() r.gaF() r.dy=!1 return r}, aP:function(a,b){var s=this b.sad(0,s.c) b.sAX(!1) b.sBH(s.r) b.sae1(s.f) b.svM(0,s.e) b.sbt(0,s.d)}} L.ne.prototype={ ah:function(){return new L.Aw(new L.Au(new P.a7(t.V)),null,C.k)}} L.Aw.prototype={ gkW:function(){var s=this.d return s===$?H.e(H.t("_floatingLabelController")):s}, gzd:function(){var s=this.e return s===$?H.e(H.t("_shakingLabelController")):s}, aC:function(){var s,r,q,p=this,o=null p.b_() s=p.a r=s.c.db if(r!==C.fR)if(r!==C.jS){if(s.z)s=s.r&&!0 else s=!0 q=s}else q=!1 else q=!0 p.d=G.cl(o,C.a9,0,o,1,q?1:0,p) s=p.gkW() s.dm() s=s.bq$ s.b=!0 s.a.push(p.gyB()) p.e=G.cl(o,C.a9,0,o,1,o,p)}, aG:function(){this.UJ() this.r=null}, p:function(a){this.gkW().p(0) this.gzd().p(0) this.UK(0)}, yC:function(){this.Y(new L.abe())}, gad:function(a){var s,r=this,q=r.r if(q==null){q=r.a.c s=r.c s.toString s=r.r=q.zY(K.aA(s).aI) q=s}return q}, gGE:function(){var s,r=this r.gad(r).toString s=r.gad(r) return s.db!==C.jS}, bd:function(a){var s,r,q,p,o,n=this n.bG(a) s=n.a.c r=a.c if(!s.k(0,r))n.r=null s=n.a q=s.c.db!=r.db||!1 if(s.z)s=s.r&&!0 else s=!0 if(a.z)p=a.r&&!0 else p=!0 if(s!==p||q){if(n.gGE()){s=n.a if(s.z)p=s.r&&!0 else p=!0 s=p||s.c.db===C.fR}else s=!1 if(s)n.gkW().cm(0) else n.gkW().cT(0)}o=n.gad(n).Q s=n.gkW() if(s.gbg(s)===C.a7&&o!=null&&o!==r.Q){s=n.gzd() s.sm(0,0) s.cm(0)}}, GN:function(a){if(this.a.r)return a.S.a return a.x2}, a_q:function(a){var s,r,q,p=this if(p.a.r)return a.S.a p.gad(p).x2.toString s=a.S.z.a r=P.aI(97,s>>>16&255,s>>>8&255,s&255) if(p.a.x){p.gad(p).toString s=!0}else s=!1 if(s){p.gad(p).toString q=a.db s=q.a return P.ajb(P.aI(31,s>>>16&255,s>>>8&255,s&255),r)}return r}, a_w:function(a){var s=this if(s.gad(s).x2!==!0)return C.aP s.gad(s).toString switch(a.S.cx){case C.a2:s.gad(s).toString return C.fC case C.a3:s.gad(s).toString return C.ju default:throw H.a(H.j(u.I))}}, a_A:function(a){var s=this if(s.gad(s).x2!=null)s.gad(s).x2.toString return C.aP}, a_r:function(a){this.gad(this).toString switch(a.S.cx){case C.a2:return C.T case C.a3:return C.oT default:throw H.a(H.j(u.I))}}, gHp:function(){var s=this,r=s.a if(r.z)r=r.r&&!0 else r=!0 return!r&&s.gad(s).b!=null&&s.gad(s).db!==C.fR}, GS:function(a){var s=this s.gad(s).toString return a.ac.Q.fi(a.x2).bU(s.gad(s).e)}, a_p:function(a){var s,r,q,p=this p.gad(p).toString p.gad(p).toString s=p.gad(p).Q==null?p.a_q(a):a.y1 p.gad(p).toString p.gad(p) r=p.gad(p) r.toString q=p.a.r?2:1 p.gad(p).toString return new F.kk(C.j7,new Y.dL(s,q,C.a_))}, H:function(c0,c1){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5=this,b6=null,b7=K.aA(c1),b8=b7.ac,b9=b8.r b9.toString s=b9.bU(b5.a.d) b5.gad(b5).toString r=b7.x2 q=s.fi(r) s=q.ch s.toString p=q.bU(b5.gad(b5).x) if(b5.gad(b5).r==null)o=b6 else{r=b5.a.z&&!b5.gHp()?1:0 n=b5.gad(b5).r n.toString m=b5.gad(b5).y l=b5.a.e o=G.ank(!0,L.ba(n,b5.gad(b5).z,C.aV,b6,b6,p,l,m),C.al,C.a9,r)}k=b5.gad(b5).Q!=null b5.gad(b5).toString if(b5.a.r)if(k)b5.gad(b5).toString else b5.gad(b5).toString else if(k)b5.gad(b5).toString else b5.gad(b5).toString j=b5.a_p(b7) r=b5.f n=b5.gkW() n.toString m=b5.a_w(b7) l=b5.a_A(b7) if(b5.a.x){b5.gad(b5).toString i=!0}else i=!1 h=b5.gad(b5) g=q.bU(h.c) if(b5.gad(b5).b==null)f=b6 else{h=b5.gzd() h.toString e=b5.gHp()||b5.gGE()?1:0 d=b5.a if(d.z)d=d.r&&!0 else d=!0 if(d){if(b5.gad(b5).Q!=null){b5.gad(b5).toString c=b7.y1}else c=b5.GN(b7) b=b9.bU(b5.a.d) b5.gad(b5).toString b9=b.fi(c).bU(b5.gad(b5).c)}else b9=g d=b5.gad(b5).b d.toString f=new L.Pw(G.ank(!1,G.anj(L.ba(d,b6,C.aV,b6,b6,b6,b5.a.e,b6),C.al,C.a9,b9),C.al,C.a9,e),h,b6)}b5.gad(b5).toString b9=b5.gad(b5) b9.toString b5.gad(b5).toString b9=b5.gad(b5) b9.toString a=b5.GN(b7) a0=b5.gad(b5).dx===!0 a1=a0?18:24 a2=b5.a.r?a:b5.a_r(b7) if(b5.gad(b5).a==null)a3=b6 else{b9=b5.gad(b5).a b9.toString a3=new T.ee(C.qj,Y.wc(b9,new T.eu(a2,b6,a1)),b6)}b5.gad(b5).toString b5.gad(b5).toString b9=b5.a.e h=b5.gad(b5).d e=b5.GS(b7) d=b5.gad(b5).f a4=b5.gad(b5).Q b5.gad(b5).toString c=b7.y1 b8=b8.Q.fi(c).bU(b5.gad(b5).ch) a5=b5.gad(b5).cx if(b5.gad(b5).ry!=null)a6=b5.gad(b5).ry else if(b5.gad(b5).rx!=null&&b5.gad(b5).rx!==""){a7=b5.a.r a8=b5.gad(b5).rx a8.toString a9=b5.GS(b7).bU(b5.gad(b5).x1) a6=T.cu(b6,L.ba(a8,b6,C.aV,b5.gad(b5).v,b6,a9,b6,b6),!0,b6,b6,!1,b6,b6,b6,b6,b6,a7,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6,b6)}else a6=b6 a7=c1.a0(t.I) a7.toString b5.gad(b5).toString b5.gad(b5).toString j.toString a8=g.r a8.toString b0=(4+0.75*a8)*F.ajX(c1) if(b5.gad(b5).x2===!0)b1=a0?C.qo:C.qn else b1=a0?C.cj:C.ql b5.gad(b5).toString a8=b5.gkW().gbz() a9=b5.gad(b5).A b2=b5.gad(b5).dx b3=b7.a b4=b5.a return new L.zX(new L.M1(b1,!1,b0,a8,j,r,a9===!0,b2,b3,a3,b4.Q,f,o,b6,b6,b6,b6,new L.Aj(b9,h,e,d,a4,b8,a5,b6),a6,new L.zF(j,r,n,m,l,i,b6),!1),a7.f,s,b4.f,b4.r,!1,b6)}} L.abe.prototype={ $0:function(){}, $S:0} L.wg.prototype={ Ap:function(a,b,c,d,e,f,g,h,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,c0,c1,c2){var s=this,r=b4==null?s.z:b4,q=a4==null?s.Q:a4,p=a7==null?s.db:a7,o=b8==null?s.dx:b8,n=d==null?s.ry:d,m=f==null?s.rx:f,l=e==null?s.x1:e,k=a6==null?s.x2:a6,j=c1==null?s.v:c1,i=a==null?s.A:a return L.bL(i,s.bD,s.dy,n,l,m,s.b4,h!==!1,s.P,s.at,s.cx,s.ch,q,s.y1,k,p,s.y2,s.aN,s.aI,b1!==!1,s.f,s.e,s.d,r,s.x,s.r,s.y,s.ac,s.a,b7===!0,o,s.c,s.b,s.go,s.fx,s.fy,s.k1,s.id,j,s.k3,s.k2,s.r2,s.r1,s.k4)}, a8p:function(a){return this.Ap(null,null,null,null,null,null,null,null,null,null,null,null,a,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null)}, a8w:function(a,b){return this.Ap(null,null,null,null,null,null,null,a,null,null,null,null,null,null,null,null,null,null,null,null,null,null,b,null,null,null,null,null,null,null,null)}, a8y:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2,a3,a4,a5){return this.Ap(a,b,c,null,d,null,e,null,f,g,h,i,null,j,k,l,m,n,o,p,q,r,null,s,a0,a1,a2,a3,a4,null,a5)}, zY:function(a){var s,r=this,q=null,p=r.db if(p==null)p=C.jT s=r.x1 if(s==null)s=q return r.a8y(r.A===!0,q,q,s,q,q,q,q,q,q,r.x2===!0,p,q,q,q,!0,q,q,q,q,!1,r.dx===!0,q,q,q)}, k:function(a,b){var s,r=this if(b==null)return!1 if(r===b)return!0 if(J.N(b)!==H.E(r))return!1 if(b instanceof L.wg)if(J.d(b.a,r.a))if(b.b==r.b)if(b.r==r.r)if(b.z==r.z)if(b.Q==r.Q)if(b.db==r.db)if(b.dx==r.dx)if(J.d(b.ry,r.ry))if(b.rx==r.rx)if(J.d(b.x1,r.x1))if(b.x2==r.x2)s=b.v==r.v&&b.A==r.A else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 return s}, gt:function(a){var s=this,r=s.bD return P.em([s.a,s.b,s.c,s.d,s.e,s.f,s.r,s.x,s.y,s.z,s.Q,s.ch,s.cx,!0,s.db,s.dx,s.dy,!1,s.x2,s.y1,s.y2,s.ac,r,!0,s.fx,s.go,s.id,s.k1,s.fy,s.k2,s.k3,s.k4,s.r1,s.r2,s.ry,s.rx,s.x1,s.at,s.aN,s.aI,s.b4,s.P,r,!0,s.v,s.A])}, j:function(a){var s=this,r=H.b([],t.s),q=s.a if(q!=null)r.push("icon: "+q.j(0)) q=s.b if(q!=null)r.push('labelText: "'+q+'"') q=s.r if(q!=null)r.push('hintText: "'+q+'"') q=s.z if(q!=null)r.push('hintMaxLines: "'+H.c(q)+'"') q=s.Q if(q!=null)r.push('errorText: "'+q+'"') q=s.db if(q!=null)r.push("floatingLabelBehavior: "+q.j(0)) q=s.dx if(q===!0)r.push("isDense: "+H.c(q)) q=s.ry if(q!=null)r.push("counter: "+q.j(0)) q=s.rx if(q!=null)r.push("counterText: "+q) q=s.x1 if(q!=null)r.push("counterStyle: "+q.j(0)) if(s.x2===!0)r.push("filled: true") q=s.v if(q!=null)r.push("semanticCounterText: "+q) q=s.A if(q!=null)r.push("alignLabelWithHint: "+H.c(q)) return"InputDecoration("+C.b.bI(r,", ")+")"}} L.G4.prototype={ gt:function(a){return P.em([null,null,null,null,null,null,!0,C.jT,!1,null,!1,null,null,null,!1,null,null,null,null,null,null,null,null,null,!1])}, k:function(a,b){var s if(b==null)return!1 if(this===b)return!0 if(J.N(b)!==H.E(this))return!1 if(b instanceof L.G4)s=!0 else s=!1 return s}} L.Nf.prototype={} L.Cb.prototype={ p:function(a){this.bh(0)}, aG:function(){var s,r=this.c r.toString s=!U.dm(r) r=this.by$ if(r!=null)for(r=P.cq(r,r.r,H.u(r).c);r.q();)r.d.sdE(0,s) this.cq()}} L.Ch.prototype={ p:function(a){this.bh(0)}, aG:function(){var s,r=this.cc$ if(r!=null){s=this.c s.toString r.sdE(0,!U.dm(s))}this.cq()}} L.Ck.prototype={ p:function(a){this.bh(0)}, aG:function(){var s,r=this.c r.toString s=!U.dm(r) r=this.by$ if(r!=null)for(r=P.cq(r,r.r,H.u(r).c);r.q();)r.d.sdE(0,s) this.cq()}} M.lm.prototype={ j:function(a){return this.b}} M.wL.prototype={ ah:function(){return new M.ND(new N.aY("ink renderer",t.A),null,C.k)}} M.ND.prototype={ H:function(a,b){var s,r,q,p,o,n=this,m=null,l=K.aA(b),k=n.a,j=k.f if(j==null)switch(k.d){case C.cs:j=l.f break case C.hm:j=l.ch break default:break}s=k.c if(s!=null){k=k.x if(k==null){k=K.aA(b).ac.z k.toString}r=n.a s=G.anj(s,C.ah,r.ch,k) k=r}r=k.d s=new U.fz(new M.Nd(j,n,r!==C.ct,s,n.d),new M.acw(n),m,t.Tm) if(r===C.cs&&k.y==null&&k.cx==null){r=k.e j.toString q=R.ao_(b,j,r) p=n.a.r if(p==null)p=K.aA(b).r return new G.ux(s,C.ac,k.Q,C.ba,r,q,!1,p,C.al,k.ch,m,m)}o=n.a_J() k=n.a if(k.d===C.ct)return M.aCe(k.Q,s,b,o) r=k.ch q=k.Q p=k.e j.toString k=k.r return new M.AL(s,o,!0,q,p,j,k==null?K.aA(b).r:k,C.al,r,m,m)}, a_J:function(){var s=this.a,r=s.y if(r!=null)return r r=s.cx if(r!=null)return new X.ef(r,C.q) s=s.d switch(s){case C.cs:case C.ct:return C.Bp case C.hm:case C.hn:s=$.aup().i(0,s) s.toString return new X.ef(s,C.q) case C.l_:return C.jo default:throw H.a(H.j(u.I))}}} M.acw.prototype={ $1:function(a){var s,r=$.D.A$.Q.i(0,this.a.d).gD() r.toString t.zd.a(r) s=r.br if(s!=null&&s.length!==0)r.aw() return!1}, $S:198} M.B9.prototype={ KS:function(a){var s=this.br;(s==null?this.br=H.b([],t.VB):s).push(a) this.aw()}, h0:function(a){return this.aJ}, aD:function(a,b){var s,r,q,p=this,o=p.br if(o!=null&&o.length!==0){s=a.gbZ(a) s.bu(0) s.af(0,b.a,b.b) o=p.r2 s.jV(0,new P.x(0,0,0+o.a,0+o.b)) for(o=p.br,r=o.length,q=0;q0;o=n){n=o-1 l[o].di(l[n],p)}this.Oi(a,p)}, j:function(a){return"#"+Y.cf(this)}} M.nZ.prototype={ ej:function(a){return Y.hf(this.a,this.b,a)}} M.AL.prototype={ ah:function(){return new M.NA(null,C.k)}} M.NA.prototype={ na:function(a){var s=this s.dx=t.ir.a(a.$3(s.dx,s.a.Q,new M.acd())) s.dy=t.YJ.a(a.$3(s.dy,s.a.cx,new M.ace())) s.fr=t.rY.a(a.$3(s.fr,s.a.x,new M.acf()))}, H:function(a,b){var s,r,q,p,o,n,m,l=this,k=l.fr k.toString s=l.ghN() s=k.b1(0,s.gm(s)) s.toString k=l.dx k.toString r=l.ghN() q=k.b1(0,r.gm(r)) r=l.a.r k=T.dQ(b) p=l.a o=p.z p=R.ao_(b,p.ch,q) n=l.dy n.toString m=l.ghN() m=n.b1(0,m.gm(m)) m.toString return new T.HC(new E.nY(s,k),o,q,p,m,new M.Br(r,s,!0,null),null)}} M.acd.prototype={ $1:function(a){return new R.aM(H.Cu(a),null,t.H7)}, $S:101} M.ace.prototype={ $1:function(a){return new R.hE(t.n8.a(a),null)}, $S:100} M.acf.prototype={ $1:function(a){return new M.nZ(t.RY.a(a),null)}, $S:201} M.Br.prototype={ H:function(a,b){var s=T.dQ(b) return T.l3(this.c,new M.Px(this.d,s,null),null,null,C.r)}} M.Px.prototype={ aD:function(a,b){this.b.ks(a,new P.x(0,0,0+b.a,0+b.b),this.c)}, eq:function(a){return!J.d(a.b,this.b)}} M.Rd.prototype={ p:function(a){this.bh(0)}, aG:function(){var s,r=this.c r.toString s=!U.dm(r) r=this.by$ if(r!=null)for(r=P.cq(r,r.r,H.u(r).c);r.q();)r.d.sdE(0,s) this.cq()}} B.wO.prototype={ H:function(a,a0){var s,r,q,p,o,n,m,l,k,j,i,h,g,f=this,e=K.aA(a0),d=M.TB(a0),c=d.D1(f),b=e.ac.ch b.toString b=b.fi(d.lW(f)) s=d.D2(f) r=d.D7(f) q=e.dx p=e.dy o=d.D0(f) n=d.D3(f) m=d.D8(f) l=d.D6(f) k=d.Df(f) j=e.a i=new S.aN(d.a,1/0,d.b,1/0).LQ(null,null) h=d.gji(d) g=e.bi return Z.aki(C.a9,!1,f.id,f.k4,i,0,o,!0,c,s,n,f.r1,q,l,r,m,g,f.f,f.e,f.d,f.c,k,h,p,b,j)}} U.NB.prototype={ BK:function(a){return a.gnl(a)==="en"}, dD:function(a,b){return new O.cX(C.o8,t.az)}, wo:function(a){return!1}, j:function(a){return"DefaultMaterialLocalizations.delegate(en_US)"}} U.EP.prototype={$iwP:1} V.de.prototype={ j:function(a){return this.b}} V.GA.prototype={ us:function(a){return this.ak(P.aZ(t.ui)).us(a)}, $idf:1} V.A7.prototype={ ak:function(a){if(a.C(0,C.aS))return C.hT return this.a}, gAv:function(){return"MaterialStateMouseCursor("+this.c+")"}, gar:function(a){return this.c}} V.fe.prototype={$idf:1} E.x8.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,s.r,s.x,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof E.x8&&J.d(b.a,s.a)&&b.b==s.b&&J.d(b.c,s.c)&&J.d(b.d,s.d)&&J.d(b.e,s.e)&&J.d(b.f,s.f)&&b.r==s.r&&!0}} E.NZ.prototype={} U.xh.prototype={ gt:function(a){return J.a3(this.a)}, k:function(a,b){if(b==null)return!1 if(this===b)return!0 if(J.N(b)!==H.E(this))return!1 return b instanceof U.xh&&J.d(b.a,this.a)}} U.Oa.prototype={} V.nq.prototype={ gpr:function(){return T.d4.prototype.gpr.call(this)+"("+H.c(this.b.a)+")"}, gkm:function(){return this.cl}} V.wR.prototype={ gqL:function(a){return C.aE}, gu1:function(){return null}, gu2:function(){return null}, uc:function(a){var s if(!(t.Le.b(a)&&!a.A))s=t.My.b(a)&&!a.A else s=!0 return s}, u8:function(a,b,c){var s=null return T.cu(s,this.c_.$1(a),!1,s,s,!0,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,!0,s,s,s,s,s)}, ua:function(a,b,c,d){var s,r K.aA(a).toString s=K.aA(a).aA r=C.eq.i(0,this.a.dy.a?C.z:s) if(r==null)r=C.dS return r.Lj(this,a,b,c,d,this.$ti.c)}} V.AM.prototype={} K.MI.prototype={ H:function(a,b){return K.yy(K.pM(!1,this.e,this.d),this.c,null,!0)}} K.jY.prototype={} K.Fo.prototype={ Lj:function(a,b,c,d,e){var s,r,q=$.atC(),p=$.atE() q.toString s=q.$ti.h("kq") c.toString t.m.a(c) r=$.atD() r.toString return new K.MI(new R.b3(c,new R.kq(p,q,s),s.h("b3")),new R.b3(c,r,H.u(r).h("b3")),e,null)}} K.Ey.prototype={ Lj:function(a,b,c,d,e,f){return D.anH(a,b,c,d,e,f)}} K.H6.prototype={ x6:function(a){var s=t.mF return P.an(new H.Z(C.tD,new K.a0R(a),s),!0,s.h("av.E"))}, k:function(a,b){var s,r=this if(b==null)return!1 if(r===b)return!0 if(J.N(b)!==H.E(r))return!1 s=b instanceof K.H6 if(s&&!0)return!0 return s&&S.cx(r.x6(C.eq),r.x6(C.eq))}, gt:function(a){return P.em(this.x6(C.eq))}} K.a0R.prototype={ $1:function(a){return this.a.i(0,a)}, $S:202} K.Oc.prototype={} R.xz.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof R.xz&&b.c==s.c&&J.d(b.a,s.a)&&J.d(b.b,s.b)&&J.d(b.d,s.d)&&!0}} R.OG.prototype={} T.xF.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s,r=this if(b==null)return!1 if(r===b)return!0 if(J.N(b)!==H.E(r))return!1 if(b instanceof T.xF)if(b.b==r.b)if(b.c==r.c)if(b.d==r.d)s=!0 else s=!1 else s=!1 else s=!1 else s=!1 return s}} T.Az.prototype={$idf:1} T.OK.prototype={} D.HT.prototype={ H:function(a1,a2){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d=this,c=K.aA(a2),b=M.TB(a2),a=b.D1(d),a0=c.ac.ch a0.toString a0=a0.fi(b.lW(d)) s=b.D2(d) r=b.D7(d) q=b.PQ(d) p=b.Q8(d) o=b.D0(d) n=b.D3(d) m=b.D8(d) l=b.D6(d) k=b.PI(d) j=b.Df(d) i=c.a h=b.a g=b.b f=b.gji(b) e=b.db if(e==null)e=C.es return Z.aki(C.a9,!1,d.id,d.k4,new S.aN(h,1/0,g,1/0),k,o,!0,a,s,n,d.r1,q,l,r,m,e,d.f,d.e,d.d,d.c,j,f,p,a0,i)}} M.fS.prototype={ j:function(a){return this.b}} M.ya.prototype={ ah:function(){return new M.IQ(P.jP(t.Np),P.jQ(null,t.BL),null,C.k)}} M.IQ.prototype={ aG:function(){var s,r=this,q=r.c.a0(t.w).f if(r.x===!0)if(!q.z){s=r.r s=s!=null&&s.b==null}else s=!1 else s=!1 if(s)r.v9(C.m2) r.x=q.z r.Uc()}, v9:function(a){var s,r,q=this,p=null,o=q.e if(o.b!==o.c){p.gbg(p) s=!1}else s=!0 if(s)return r=o.gI(o).b o=q.x o.toString if(o){p.sm(0,0) r.ci(0,a)}else p.cT(0).bN(0,new M.a3N(q,r,a),t.H) o=q.r if(o!=null)o.aH(0) q.r=null}, H:function(a,b){var s,r,q=this q.x=b.a0(t.w).f.z s=q.e if(!s.gO(s)){r=T.wZ(b,t.O) if(r==null||r.giV())null.gabs()}return new M.Bl(q,q.a.c,null)}, p:function(a){var s=this.r if(s!=null)s.aH(0) this.r=null this.Ud(0)}} M.a3N.prototype={ $1:function(a){var s=this.b if(s.a.a===0)s.ci(0,this.c)}, $S:24} M.Bl.prototype={ cZ:function(a){return this.f!==a.f}} M.a3O.prototype={} M.IP.prototype={ a8u:function(a,b){var s=a==null?this.a:a return new M.IP(s,b==null?this.b:b)}} M.Pl.prototype={ Kx:function(a,b,c){var s=this s.b=c==null?s.b:c s.c=s.c.a8u(a,b) s.aa()}, Kw:function(a){return this.Kx(null,null,a)}, a6A:function(a,b){return this.Kx(a,b,null)}} M.zE.prototype={ k:function(a,b){if(b==null)return!1 if(!this.Rf(0,b))return!1 return b instanceof M.zE&&b.e===this.e&&b.f==this.f}, gt:function(a){var s=this return P.a5(S.aN.prototype.gt.call(s,s),s.e,s.f,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}} M.Lf.prototype={ H:function(a,b){return this.c}} M.adU.prototype={ vx:function(a3){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c=this,b={},a=S.aj6(a3),a0=a3.a,a1=a.Cw(a0),a2=a3.b if(c.b.i(0,C.f9)!=null){s=c.eG(C.f9,a1).b c.f3(C.f9,C.i) r=s}else{r=0 s=0}if(c.b.i(0,C.iK)!=null){q=0+c.eG(C.iK,a1).b p=Math.max(0,a2-q) c.f3(C.iK,new P.m(0,p))}else{q=0 p=null}if(c.b.i(0,C.iJ)!=null){q+=c.eG(C.iJ,new S.aN(0,a1.b,0,Math.max(0,a2-q-r))).b c.f3(C.iJ,new P.m(0,Math.max(0,a2-q)))}o=c.f n=Math.max(0,a2-Math.max(H.B(o.d),q)) if(c.b.i(0,C.f8)!=null){m=Math.max(0,n-r) l=c.d if(l)m=C.d.a6(m+q,0,a.d-r) l=l?q:0 c.eG(C.f8,new M.zE(l,s,0,a1.b,0,m)) c.f3(C.f8,new P.m(0,r))}if(c.b.i(0,C.fb)!=null){c.eG(C.fb,new S.aN(0,a1.b,0,n)) c.f3(C.fb,C.i)}k=c.b.i(0,C.c9)!=null&&!c.cy?c.eG(C.c9,a1):C.r if(c.b.i(0,C.fc)!=null){j=c.eG(C.fc,new S.aN(0,a1.b,0,Math.max(0,n-r))) c.f3(C.fc,new P.m((a0-j.a)/2,n-j.b))}else j=C.r b.a=$ a0=new M.adV(b) if(c.b.i(0,C.fd)!=null){i=c.eG(C.fd,a) h=new M.a3O(i,j,n,o,c.r,a3,k,c.x) g=c.Q.kE(h) f=c.cx.PX(c.z.kE(h),g,c.ch) c.f3(C.fd,f) l=f.a e=f.b new M.adW(b).$1(new P.x(l,e,l+i.a,e+i.b))}if(c.b.i(0,C.c9)!=null){if(J.d(k,C.r))k=c.eG(C.c9,a1) b=a0.$0() if(!new P.Q(b.c-b.a,b.d-b.b).k(0,C.r)&&c.cy)d=a0.$0().b else d=c.cy?Math.min(n,a2-c.r.d):n c.f3(C.c9,new P.m(0,d-k.b))}if(c.b.i(0,C.fa)!=null){c.eG(C.fa,a1.vN(o.b)) c.f3(C.fa,C.i)}if(c.b.i(0,C.iL)!=null){c.eG(C.iL,S.uX(a3)) c.f3(C.iL,C.i)}if(c.b.i(0,C.iM)!=null){c.eG(C.iM,S.uX(a3)) c.f3(C.iM,C.i)}c.y.a6A(p,a0.$0())}, m4:function(a){var s=this return!a.f.k(0,s.f)||a.x!==s.x||a.ch!=s.ch||a.z!=s.z||a.Q!=s.Q||a.d!==s.d||!1}} M.adW.prototype={ $1:function(a){return this.a.a=a}, $S:203} M.adV.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("floatingActionButtonRect")):s}, $S:151} M.A9.prototype={ ah:function(){return new M.Aa(null,C.k)}} M.Aa.prototype={ gts:function(){var s=this.d return s===$?H.e(H.t("_previousController")):s}, gyX:function(){var s=this.e return s===$?H.e(H.t("_previousScaleAnimation")):s}, grK:function(){var s=this.r return s===$?H.e(H.t("_currentScaleAnimation")):s}, aC:function(){var s,r=this r.b_() s=G.cl(null,C.a9,0,null,1,null,r) s.dh(r.ga1v()) r.d=s r.a6k() r.a.f.Kw(0)}, p:function(a){this.gts().p(0) this.UD(0)}, bd:function(a){this.bG(a) a.toString this.a.toString return}, a6k:function(){var s,r,q,p,o,n,m,l,k,j=this,i=null,h=S.cy(C.bS,j.gts(),i),g=t.H7,f=S.cy(C.bS,j.gts(),i),e=S.cy(C.bS,j.a.r,i),d=j.a,c=d.r,b=$.atF() c.toString s=t.m s.a(c) b.toString r=d.e d=d.d r.toString d.toString s.a(d) r=t.HY.h("b3") q=t.e p=t.l o=t.d n=A.aq7(new S.i1(new R.b3(d,new R.jy(new Z.mU(C.k6)),r),new R.by(H.b([],q),p),0),new R.b3(d,new R.jy(C.k6),r),d,0.5,o) d=j.a m=d.e d=d.d m.toString m=$.atL() d.toString s.a(d) m.toString l=$.atM() l.toString k=A.aq7(new R.b3(d,m,m.$ti.h("b3")),new S.i1(new R.b3(d,l,H.u(l).h("b3")),new R.by(H.b([],q),p),0),d,0.5,o) j.e=S.anl(n,h,o) j.r=S.anl(n,e,o) o=j.grK() o.toString j.x=new R.b3(s.a(o),new R.jy(C.re),r) j.f=S.akz(new R.b3(f,new R.aM(1,1,g),g.h("b3")),k,i) j.y=S.akz(new R.b3(c,b,b.$ti.h("b3")),k,i) b=j.ga3h() j.grK().aQ(0,b) j.gyX().aQ(0,b)}, a1w:function(a){this.Y(new M.aam(this,a))}, H:function(a,b){var s,r,q=this,p=H.b([],t.J) if(q.gts().gmF()!==C.N){s=q.gyX() r=q.f if(r===$)r=H.e(H.t("_previousRotationAnimation")) p.push(K.apw(K.aps(q.z,r),s))}q.a.toString s=q.grK() r=q.y if(r===$)r=H.e(H.t("_currentRotationAnimation")) p.push(K.apw(K.aps(q.a.c,r),s)) return T.yF(C.mU,p,C.br,null,null)}, a3i:function(){var s,r=this.gyX() r=r.gm(r) s=this.grK() s=s.gm(s) s=Math.max(H.B(r),H.B(s)) this.a.f.Kw(s)}} M.aam.prototype={ $0:function(){if(this.b===C.N)this.a.a.toString}, $S:0} M.nR.prototype={ ah:function(){var s=null,r=t.bR,q=t.V return new M.qV(new N.aY(s,r),new N.aY(s,r),new U.y_(!1,new P.a7(q)),new U.y_(!1,new P.a7(q)),P.jQ(s,t.BL),H.b([],t.kc),new N.aY(s,t.A),C.t,s,P.y(t.yb,t.M),s,!0,s,s,C.k)}} M.qV.prototype={ gf4:function(){this.a.toString return null}, j6:function(a,b){var s=this s.lH(s.r,"drawer_open") s.lH(s.x,"end_drawer_open")}, v9:function(a){var s,r,q,p,o=this,n=null if(o.cy!=null){o.cx.v9(a) return}s=o.y if(s.b!==s.c){n.gbg(n) r=!1}else r=!0 if(r)return q=o.c.a0(t.w).f p=s.gI(s).b if(q.z){n.sm(0,0) p.ci(0,a)}else n.cT(0).bN(0,new M.a3R(o,p,a),t.H) s=o.Q if(s!=null)s.aH(0) o.Q=null}, a6x:function(){this.Y(new M.a3P(this))}, a2U:function(){this.a.toString}, grX:function(){var s=this.fr return s===$?H.e(H.t("_floatingActionButtonMoveController")):s}, gGC:function(){var s=this.fx return s===$?H.e(H.t("_floatingActionButtonAnimator")):s}, gGD:function(){var s=this.id return s===$?H.e(H.t("_floatingActionButtonVisibilityController")):s}, a1T:function(){var s,r=this.c r.toString s=E.k3(r) if(s!=null&&s.d.length!==0)s.hq(0,C.ah,C.aE)}, grZ:function(){var s=this.k1 return s===$?H.e(H.t("_geometryNotifier")):s}, gmB:function(){this.a.toString return!0}, aC:function(){var s,r=this,q=null r.b_() s=r.c s.toString r.k1=new M.Pl(s,C.Bv,new P.a7(t.V)) r.a.toString r.go=C.jm r.fx=C.oE r.fy=C.jm r.fr=G.cl(q,new P.aK(4e5),0,q,1,1,r) r.id=G.cl(q,C.a9,0,q,1,q,r)}, bd:function(a){this.a.toString a.toString this.Uh(a)}, aG:function(){var s,r,q,p=this,o=p.c.a0(t.Pu),n=o==null?null:o.f,m=p.cx,l=m==null if(!l)s=n==null||m!==n else s=!1 if(s)if(!l)m.d.u(0,p) p.cx=n if(n!=null){m=n.d m.B(0,p) l=n.e if(!l.gO(l)){r=p.c.pX(t.Np) m=r==null||!m.C(0,r)}else m=!1 if(m)p.a6x()}q=p.c.a0(t.w).f if(p.ch===!0)if(!q.z){m=p.Q m=m!=null&&m.b==null}else m=!1 else m=!1 if(m)p.v9(C.m2) p.ch=q.z p.a2U() p.Ug()}, p:function(a){var s,r,q,p=this,o=p.Q if(o!=null)o.aH(0) p.Q=null p.grZ().P$=null for(o=p.db,s=o.length,r=0;r>>16&255 n=p>>>8&255 p&=255 s.$1(P.aI(153,o,n,p)) r.$1(P.aI(C.d.aO(127.5),o,n,p)) if(m.gmL()){p=m.c p.toString p=K.aA(p).dx.a p=P.aI(255,p>>>16&255,p>>>8&255,p&255)}else p=P.aI(C.d.aO(25.5),o,n,p) q.$1(p) break case C.a2:p=k.a o=p>>>16&255 n=p>>>8&255 p&=255 s.$1(P.aI(191,o,n,p)) r.$1(P.aI(166,o,n,p)) if(m.gmL()){p=m.c p.toString p=K.aA(p).dx.a p=P.aI(255,p>>>16&255,p>>>8&255,p&255)}else p=P.aI(C.d.aO(76.5),o,n,p) q.$1(p) break default:throw H.a(H.j(u.I))}return new V.fe(new E.acn(m,new E.ach(l),new E.acj(l),new E.acl(l)),t.h2)}, ga6e:function(){var s=this.gme().z return new V.fe(new E.acp(this,this.gme().cx,s),t.h2)}, ga6d:function(){var s=this.gme().z return new V.fe(new E.aco(this,this.gme().cx,s),t.h2)}, ga62:function(){return new V.fe(new E.acg(this),t.pj)}, aC:function(){var s,r=this r.EB() r.dx=G.cl(null,C.a9,0,null,1,null,r) s=r.gmq() s.dm() s=s.bq$ s.b=!0 s.a.push(new E.acv(r))}, aG:function(){var s,r=this,q=r.c q.toString s=K.aA(q) r.fx=s.S r.fy=s.F switch(s.aA){case C.I:r.go=!0 break case C.z:case C.D:case C.M:case C.C:case C.E:r.go=!1 break default:throw H.a(H.j(u.I))}r.Sv()}, qM:function(){var s,r=this,q=r.gfz() q.sap(0,r.ga63().a.$1(r.gtI())) q.sCE(r.ga6e().a.$1(r.gtI())) q.sae9(r.ga6d().a.$1(r.gtI())) s=r.c.a0(t.I) s.toString q.sbt(0,s.f) q.sCv(r.ga62().a.$1(r.gtI())) s=r.a.f if(s==null)s=r.ghj().e if(s==null)s=r.gmL()?null:C.Bk q.sqB(s) s=r.ghj().y if(s==null)s=r.gmL()?0:2 q.sLX(s) s=r.ghj().z q.sNM(s==null?0:s) s=r.ghj().Q q.sNW(0,s==null?48:s) q.sek(0,r.c.a0(t.w).f.f)}, v5:function(a){this.EA(a) this.Y(new E.acu(this))}, v4:function(a,b){this.Ez(a,b) this.Y(new E.act(this))}, Bg:function(a){var s=this s.Sw(a) if(s.NC(a.gbB(a),a.gda(a))){s.Y(new E.acr(s)) s.gmq().cm(0)}else if(s.fr){s.Y(new E.acs(s)) s.gmq().cT(0)}}, Bh:function(a){var s=this s.Sx(a) s.Y(new E.acq(s)) s.gmq().cT(0)}, p:function(a){this.gmq().p(0) this.Ey(0)}} E.aci.prototype={ $1:function(a){return this.a.a=a}, $S:99} E.ack.prototype={ $1:function(a){return this.a.b=a}, $S:99} E.acm.prototype={ $1:function(a){return this.a.c=a}, $S:99} E.ach.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("dragColor")):s}, $S:98} E.acj.prototype={ $0:function(){var s=this.a.b return s===$?H.e(H.c1("hoverColor")):s}, $S:98} E.acl.prototype={ $0:function(){var s=this.a.c return s===$?H.e(H.c1("idleColor")):s}, $S:98} E.acn.prototype={ $1:function(a){var s,r,q,p=this if(a.C(0,C.kZ)){s=p.a.ghj().f s=s==null?null:s.ak(a) return s==null?p.b.$0():s}if(a.C(0,C.ao))p.a.gtG() s=p.a r=s.ghj().f r=r==null?null:r.ak(a) if(r==null)r=p.d.$0() q=s.ghj().f q=q==null?null:q.ak(a) if(q==null)q=p.c.$0() s=P.K(r,q,s.gmq().gbz()) s.toString return s}, $S:47} E.acp.prototype={ $1:function(a){if(a.C(0,C.ao))this.a.gtG() return C.aP}, $S:47} E.aco.prototype={ $1:function(a){if(a.C(0,C.ao))this.a.gtG() return C.aP}, $S:47} E.acg.prototype={ $1:function(a){var s,r if(a.C(0,C.ao))this.a.gtG() s=this.a r=s.a.r if(r==null){r=s.ghj().a r=r==null?null:r.ak(a)}if(r==null){r=8/(s.gmL()?2:1) s=r}else s=r return s}, $S:209} E.acv.prototype={ $0:function(){this.a.qM()}, $C:"$0", $R:0, $S:0} E.acu.prototype={ $0:function(){this.a.dy=!0}, $S:0} E.act.prototype={ $0:function(){this.a.dy=!1}, $S:0} E.acr.prototype={ $0:function(){this.a.fr=!0}, $S:0} E.acs.prototype={ $0:function(){this.a.fr=!1}, $S:0} E.acq.prototype={ $0:function(){this.a.fr=!1}, $S:0} X.yl.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,s.r,s.x,s.y,s.z,s.Q,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s,r=this if(b==null)return!1 if(r===b)return!0 if(J.N(b)!==H.E(r))return!1 if(b instanceof X.yl)if(b.a==r.a)s=J.d(b.e,r.e)&&b.f==r.f&&b.r==r.r&&b.x==r.x&&b.y==r.y&&b.z==r.z&&b.Q==r.Q else s=!1 else s=!1 return s}} X.AD.prototype={ ak:function(a){var s,r=this,q=r.a,p=q==null?null:q.ak(a) q=r.b s=q==null?null:q.ak(a) return r.d.$3(p,s,r.c)}, $idf:1} X.Pq.prototype={} Q.yz.prototype={ gt:function(a){var s=this return P.em([s.a,s.b,s.c,s.d,s.e,s.f,s.r,s.x,s.y,s.z,s.Q,s.ch,s.cx,s.cy,s.db,s.dx,s.dy,s.fr,s.fx,s.fy,s.go,s.id,s.k1,s.k2,s.k3,s.k4,s.r1])}, k:function(a,b){var s,r=this if(b==null)return!1 if(r===b)return!0 if(J.N(b)!==H.E(r))return!1 if(b instanceof Q.yz)if(b.a==r.a)if(J.d(b.b,r.b))if(J.d(b.c,r.c))if(J.d(b.d,r.d))if(J.d(b.e,r.e))if(J.d(b.f,r.f))if(J.d(b.r,r.r))if(J.d(b.x,r.x))if(J.d(b.y,r.y))if(J.d(b.z,r.z))if(J.d(b.Q,r.Q))if(J.d(b.ch,r.ch))if(J.d(b.cx,r.cx))if(J.d(b.cy,r.cy))s=J.d(b.k3,r.k3)&&b.k4==r.k4&&!0 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 return s}} Q.PC.prototype={} N.yB.prototype={ j:function(a){return this.b}} K.yC.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,s.r,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof K.yC&&J.d(b.a,s.a)&&J.d(b.b,s.b)&&J.d(b.c,s.c)&&J.d(b.d,s.d)&&b.e==s.e&&J.d(b.f,s.f)&&!0}} K.PH.prototype={} N.Q2.prototype={ j:function(a){return this.b}} N.JU.prototype={ H2:function(a){a.toString switch(a.bi){case C.es:return C.C8 case C.hl:return C.C7 default:throw H.a(H.j(u.I))}}, Fm:function(a){var s=null return new N.AN(this.c,this.d,s,s,s,s,s,s,s,s,s,s,C.a4,s,s,s,s,s,s,!1,this.H2(K.aA(a)),s)}, H:function(a,b){var s,r=this,q=null,p=u.I switch(C.mP){case C.mP:return r.Fm(b) case C.HJ:switch(K.aA(b).aA){case C.I:case C.M:case C.D:case C.E:return r.Fm(b) case C.z:case C.C:s=r.H2(K.aA(b)) return L.vX(!1,q,M.ap(C.ar,new N.vq(r.c,r.d,q,q,C.a4,q),q,q,q,s.b,q,q,s.a),q,!0,q,!0,q,q,q,q) default:throw H.a(H.j(p))}default:throw H.a(H.j(p))}}} N.AN.prototype={ ah:function(){return new N.AO(new N.BF(new P.a7(t.V)),$,$,$,$,$,$,$,$,$,null,!1,!1,null,C.k)}} N.AO.prototype={ bd:function(a){var s,r=this r.bG(a) if(a.c!=r.a.c){s=r.gmx(r) if(s.gm(s)!==0){s=r.gmx(r) s=s.gm(s)===1}else s=!0 if(s){s=r.gmx(r) s.b=C.bS s.c=C.fJ}r.zV()}}, p:function(a){this.d.p(0) this.UM(0)}, gf1:function(){this.a.toString return this.ga02()}, gzI:function(){return new V.fe(new N.acA(this),t._s)}, gxJ:function(){var s,r=this.c r.toString s=K.aA(r) return new V.fe(new N.acx(s.S.cx===C.a2,s),t.h2)}, gKH:function(){return new V.fe(new N.acB(this),t._s)}, gG6:function(){var s=this.c s.toString return new V.fe(new N.acy(this,K.aA(s).S.cx===C.a2),t.h2)}, a5R:function(a){if(this.gf1()!=null)this.gmz().cm(0)}, a5T:function(a){var s,r,q=this if(q.gf1()!=null){s=q.gmx(q) s.b=C.ah s.c=null s=a.c s.toString r=s/(q.a.k2.a-40) s=q.c.a0(t.I) s.toString switch(s.f){case C.p:s=q.gmI() s.sm(0,s.gbz()-r) break case C.m:s=q.gmI() s.sm(0,s.gbz()+r) break default:throw H.a(H.j(u.I))}}}, a5P:function(a){var s,r,q=this,p=q.gmx(q) p=p.gm(p) s=q.a r=s.c if(p>=0.5!==r){s.d.$1(!r) q.Y(new N.acz(q))}else q.zV() q.gmz().cT(0)}, a03:function(a){var s=this.a.d a.toString s.$1(a)}, H:function(a7,a8){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5=this,a6=null if(a5.e){a5.e=!1 a5.zV()}s=K.aA(a8) r=a5.gkL() r.B(0,C.bE) q=a5.gkL() q.u(0,C.bE) a5.a.toString p=a5.gzI().a.$1(r) if(p==null){p=s.d8.a p=p==null?a6:p.ak(r) o=p}else o=p if(o==null)o=a5.gxJ().a.$1(r) a5.a.toString p=a5.gzI().a.$1(q) if(p==null){p=s.d8.a p=p==null?a6:p.ak(q) n=p}else n=p if(n==null)n=a5.gxJ().a.$1(q) a5.a.toString p=a5.gKH().a.$1(r) if(p==null){p=s.d8.b p=p==null?a6:p.ak(r) m=p}else m=p if(m==null)m=a5.gG6().a.$1(r) a5.a.toString p=a5.gKH().a.$1(q) if(p==null){p=s.d8.b p=p==null?a6:p.ak(q) l=p}else l=p if(l==null)l=a5.gG6().a.$1(q) k=a5.gkL() k.B(0,C.b8) a5.a.toString p=s.d8.e p=p==null?a6:p.ak(k) j=p if(j==null)j=s.cy i=a5.gkL() i.B(0,C.ao) a5.a.toString p=s.d8.e p=p==null?a6:p.ak(i) h=p if(h==null)h=s.db r.B(0,C.bD) a5.a.toString p=s.d8.e p=p==null?a6:p.ak(r) g=p if(g==null)g=P.aI(31,o.gm(o)>>>16&255,o.gm(o)>>>8&255,o.gm(o)&255) q.B(0,C.bD) a5.a.toString p=s.d8.e p=p==null?a6:p.ak(q) f=p if(f==null)f=P.aI(31,o.gm(o)>>>16&255,o.gm(o)>>>8&255,o.gm(o)&255) p=a5.a e=p.c d=p.dx c=p.id p=p.k2 b=a5.d b.sbB(0,a5.gmx(a5)) a=a5.MB$ b.sadk(a===$?H.e(H.t("_reaction")):a) a=a5.ME$ b.sadm(a===$?H.e(H.t("_reactionFocusFade")):a) a=a5.MC$ b.sadn(a===$?H.e(H.t("_reactionHoverFade")):a) b.sab9(f) b.sadl(g) b.sab6(h) b.saaj(j) a5.a.toString a=s.d8.f b.sQZ(a==null?20:a) b.sa9b(a5.uQ$) b.sBH(a5.gkL().C(0,C.b8)) b.sabu(a5.gkL().C(0,C.ao)) b.szM(o) b.sab8(n) b.sa6T(a5.a.y) b.sacm(a5.a.z) b.saba(a5.a.Q) b.sacC(a5.a.ch) b.sa6U(m) b.sabb(l) b.slf(U.CG(a8,a6)) b.sabv(a5.gf1()!=null) b.saea(a5.a.k2.a-40) a=a8.a0(t.I) a.toString b.sbt(0,a.f) b.sUU(s.S.e) a=a5.B3$ if(a===$){a=P.aj([C.ie,new U.iz(a5.gJY(),new R.by(H.b([],t.ot),t.wS),t.wY)],t.n,t.od) if(a5.B3$===$)a5.B3$=a else a=H.e(H.bS("_actionMap"))}a0=a5.gf1() a1=new N.acC(a5,s).$1(a5.gkL()) a2=a5.gf1() a3=a5.ga23() a4=a5.gf1() return T.cu(a6,D.pT(a6,new U.n_(a0!=null,c,!1,a,a5.ga0y(),a5.ga0G(),a1,D.pT(a6,T.cu(a6,T.l3(a6,a6,a6,b,p),!1,a6,a4!=null,!1,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6),C.a4,a2==null,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a5.gJY(),a3,a5.ga69(),a3,a6,a6,a6),a6),d,!0,a6,a6,a6,a6,a5.ga5O(),a5.ga5Q(),a5.ga5S(),a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6),!1,a6,a6,!1,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,a6,e)}} N.acA.prototype={ $1:function(a){if(a.C(0,C.aS))return this.a.a.r if(a.C(0,C.bE))return this.a.a.e return this.a.a.r}, $S:141} N.acx.prototype={ $1:function(a){var s if(a.C(0,C.aS)){if(this.a){s=C.aa.i(0,800) s.toString}else{s=C.aa.i(0,400) s.toString}return s}if(a.C(0,C.bE))return this.b.y2 if(this.a){s=C.aa.i(0,400) s.toString}else{s=C.aa.i(0,50) s.toString}return s}, $S:47} N.acB.prototype={ $1:function(a){if(a.C(0,C.aS))return this.a.a.x if(a.C(0,C.bE))return this.a.a.f return this.a.a.x}, $S:141} N.acy.prototype={ $1:function(a){var s,r if(a.C(0,C.aS))return this.b?C.fC:C.aD if(a.C(0,C.bE)){a.B(0,C.bE) s=this.a r=s.gzI().a.$1(a) if(r==null)r=s.gxJ().a.$1(a) return P.aI(128,r.gm(r)>>>16&255,r.gm(r)>>>8&255,r.gm(r)&255)}return this.b?C.oO:C.oP}, $S:47} N.acz.prototype={ $0:function(){this.a.e=!0}, $S:0} N.acC.prototype={ $1:function(a){var s=V.qk(this.a.a.dy,a,t.WV) if(s==null){this.b.toString s=null}return s==null?V.qk(C.iB,a,t.Pb):s}, $S:212} N.BF.prototype={ sa6T:function(a){return}, sacm:function(a){return}, saba:function(a){return}, sacC:function(a){return}, sa6U:function(a){if(J.d(a,this.fy))return this.fy=a this.aa()}, sabb:function(a){if(J.d(a,this.go))return this.go=a this.aa()}, slf:function(a){if(a.k(0,this.id))return this.id=a this.aa()}, sbt:function(a,b){if(this.k1===b)return this.k1=b this.aa()}, sUU:function(a){if(J.d(a,this.k2))return this.k2=a this.aa()}, sabv:function(a){if(a===this.k3)return this.k3=a this.aa()}, saea:function(a){if(a===this.k4)return this.k4=a this.aa()}, a0b:function(){if(!this.x1)this.aa()}, aD:function(a1,a2){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b=this,a=null,a0=b.k3 a0.toString k=b.a s=k.gm(k) k=b.k1 k.toString switch(k){case C.p:j=1-s break case C.m:j=s break default:throw H.a(H.j(u.I))}k=b.go k.toString i=b.fy i.toString i=P.K(k,i,s) i.toString k=b.f k.toString h=b.e h.toString h=P.K(k,h,s) h.toString k=b.k2 k.toString r=P.ajb(h,k) if(a0)g=s<0.5?b.fr:b.dx else g=b.fr q=g if(a0)f=s<0.5?b.fx:b.dy else f=b.fx p=f a0=H.aF() e=a0?H.b_():new H.aR(new H.aT()) e.sap(0,i) a0=a2.b k=(a0-14)/2 a1.ct(0,P.xE(new P.x(13,k,13+(a2.a-26),k+14),C.Bj),e) k=b.k4 k.toString o=new P.m(20+j*k,a0/2) a0=o k=b.b if(k.gbg(k)===C.N){k=b.c if(k.gbg(k)===C.N){k=b.d k=k.gbg(k)!==C.N}else k=!0}else k=!0 if(k){k=H.aF() d=k?H.b_():new H.aR(new H.aT()) k=b.r k.toString i=b.x i.toString h=b.a h=P.K(k,i,h.gm(h)) i=b.y i.toString k=b.d k=P.K(h,i,k.gm(k)) i=b.z i.toString h=b.c h=P.K(k,i,h.gm(h)) h.toString d.sap(0,h) h=b.ch k=h==null?a0:h i=b.b i=P.a0D(k,a0,i.gm(i)) i.toString a0=b.Q a0.toString k=b.cx k.toString if(!k){k=b.cy k.toString}else k=!0 if(k)c=a0 else{k=b.b c=new R.aM(0,a0,t.H7).b1(0,k.gm(k))}if(c>0)a1.eB(0,i.U(0,C.i),c,d)}try{b.x1=!0 if(b.ry==null||!J.d(r,b.r1)||!J.d(q,b.r2)||!J.d(p,b.rx)){b.r1=r b.r2=q b.rx=p a0=q a0=a0==null?a:new X.EH(a0,p) b.ry=new S.t7(new S.dM(r,a0,a,a,C.kT.i(0,1),a,C.bb),b.ga0a())}a0=b.ry a0.toString n=a0 m=1-Math.abs(s-0.5)*2 l=10-m a0=J.aiI(o,new P.m(l,l)) k=b.id k.toString i=l*2 n.fs(a1,a0,k.An(new P.Q(i,i)))}finally{b.x1=!1}}} N.Cl.prototype={ p:function(a){this.bh(0)}, aG:function(){var s,r=this.c r.toString s=!U.dm(r) r=this.by$ if(r!=null)for(r=P.cq(r,r.r,H.u(r).c);r.q();)r.d.sdE(0,s) this.cq()}} N.Cm.prototype={ aC:function(){var s=this,r=null s.b_() s.My$=G.cl(r,C.a9,0,r,1,s.a.c===!1?0:1,s) s.Mz$=S.cy(C.bS,s.gmI(),C.fJ) s.MA$=G.cl(r,C.at,0,r,1,r,s) s.MB$=S.cy(C.al,s.gmz(),r) s.MD$=G.cl(r,C.cZ,0,r,1,s.pT$||s.pS$?1:0,s) s.MC$=S.cy(C.al,s.gtv(),r) s.MF$=G.cl(r,C.cZ,0,r,1,s.pT$||s.pS$?1:0,s) s.ME$=S.cy(C.al,s.gtu(),r)}, p:function(a){var s=this s.gmI().p(0) s.gmz().p(0) s.gtv().p(0) s.gtu().p(0) s.UL(0)}} R.yO.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s,r=this if(b==null)return!1 if(r===b)return!0 if(J.N(b)!==H.E(r))return!1 if(b instanceof R.yO)if(b.a==r.a)if(b.b==r.b)s=b.e==r.e&&b.f==r.f else s=!1 else s=!1 else s=!1 return s}} R.Ay.prototype={ ak:function(a){var s,r=this,q=r.a,p=q==null?null:q.ak(a) q=r.b s=q==null?null:q.ak(a) return r.d.$3(p,s,r.c)}, $idf:1} R.Q1.prototype={} U.yQ.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,s.r,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s,r=this if(b==null)return!1 if(r===b)return!0 if(J.N(b)!==H.E(r))return!1 if(b instanceof U.yQ)if(J.d(b.a,r.a))s=J.d(b.c,r.c)&&J.d(b.d,r.d)&&J.d(b.e,r.e)&&J.d(b.f,r.f)&&J.d(b.r,r.r) else s=!1 else s=!1 return s}} U.Q9.prototype={} U.yR.prototype={ gcs:function(a){var s=this.a return s==null?null:s}, Yg:function(a,b,c){var s,r=this,q=r.c if(a===q||r.b<2)return r.d=q r.c=a;++r.e r.aa() q=r.a s=r.c q.Q=C.aw q.jp(s,b,c).Pp(new U.a6N(r))}, p:function(a){var s=this.a if(s!=null)s.p(0) this.a=null this.hb(0)}, gl:function(a){return this.b}} U.a6N.prototype={ $0:function(){var s=this.a if(s.a!=null){--s.e s.aa()}}, $S:0} T.lR.prototype={ dO:function(a,b){var s,r if(a instanceof T.lR){s=Y.bd(a.a,this.a,b) r=V.hL(a.b,this.b,b) r.toString return new T.lR(s,r)}return this.Ed(a,b)}, dP:function(a,b){var s,r if(a instanceof T.lR){s=Y.bd(this.a,a.a,b) r=V.hL(this.b,a.b,b) r.toString return new T.lR(s,r)}return this.Ee(a,b)}, po:function(a){return new T.QQ(this,a)}, a2l:function(a,b){var s=this.b.ak(b).AA(a),r=s.a,q=this.a.b,p=s.d-q return new P.x(r,p,r+(s.c-r),p+q)}} T.QQ.prototype={ fs:function(a,b,c){var s,r,q,p,o,n=c.e,m=b.a,l=b.b,k=n.a n=n.b s=c.d s.toString r=this.b q=r.a p=r.a2l(new P.x(m,l,m+k,l+n),s).hz(-(q.b/2)) o=q.lQ() o.sE4(C.m4) q=p.d a.hs(0,new P.m(p.a,q),new P.m(p.c,q),o)}} E.JX.prototype={ XZ:function(){var s=null,r=L.ba(this.c,s,C.me,s,!1,s,s,s) return r}, H:function(a,b){var s=null,r=T.d2(H.b([M.ap(s,this.e,s,s,s,s,this.f,s,s),this.XZ()],t.J),C.w,C.hk,C.x) return T.r9(T.kZ(r,s,1),72,s)}, d4:function(a){return this.c.$0()}} E.Qc.prototype={ H:function(a,b){var s,r,q,p,o,n,m=this,l=null,k=K.aA(b),j=K.aA(b).v,i=t.m.a(m.c),h=m.e,g=j.e if(g==null){g=k.at.y g.toString}s=g.LF(!0) g=j.r h=g==null?h:g if(h==null){h=k.at.y h.toString}r=h.LF(!0) h=m.r if(h){g=A.bu(s,r,i.gm(i)) g.toString q=g}else{g=A.bu(r,s,i.gm(i)) g.toString q=g}p=m.x o=j.f if(o==null)o=P.aI(178,p.a>>>16&255,p.a>>>8&255,p.a&255) if(h){h=P.K(p,o,i.gm(i)) h.toString n=h}else{h=P.K(o,p,i.gm(i)) h.toString n=h}h=q.fi(n) return L.mH(Y.wc(m.z,new T.eu(n,l,24)),l,l,C.bL,!0,h,l,l,C.av)}} E.Qb.prototype={ bM:function(){var s,r,q,p,o=this o.SB() s=o.a7$ r=H.b([],t.up) for(q=t.US;s!=null;){p=s.d p.toString q.a(p) r.push(p.a.a) s=p.an$}q=o.aB q.toString switch(q){case C.p:C.b.lq(r,0,o.r2.a) break case C.m:r.push(o.r2.a) break default:throw H.a(H.j(u.I))}q=o.aB q.toString p=o.r2.a o.a7.$3(r,q,p)}} E.Qa.prototype={ aM:function(a){var s=this,r=null,q=s.w_(a) q.toString q=new E.Qb(s.db,s.e,s.f,s.r,s.x,q,s.z,r,C.V,P.b6(4,U.K7(r,r,r,r,r,C.ag,C.m,r,1,C.av),!1,t.mi),!0,0,r,r) q.gav() q.gaF() q.dy=!1 q.J(0,r) return q}, aP:function(a,b){this.RW(a,b) b.a7=this.db}} E.Ao.prototype={ aw:function(){this.Q=!0}, Ng:function(a,b){var s,r,q,p,o,n,m,l,k=this,j=k.x j.toString switch(j){case C.p:j=k.r s=j[b+1] r=j[b] break case C.m:j=k.r s=j[b] r=j[b+1] break default:throw H.a(H.j(u.I))}q=k.e j=s+(r-s) p=0+a.b o=new P.x(s,0,j,p) n=q.gi8() m=q.gcA(q) l=q.gcH(q) if(!(j-s>=n&&p-0>=m+l))throw H.a(U.mW("indicatorPadding insets should be less than Tab Size\nRect Size : "+o.giu(o).j(0)+", Insets: "+q.j(0))) return q.AA(o)}, aD:function(a,b){var s,r,q,p,o,n,m,l,k,j,i=this,h=null i.Q=!1 if(i.z==null)i.z=i.c.po(i.gdd()) s=i.b r=s.c q=s.gcs(s).gbz() p=r>q s=p?C.d.dC(q):C.d.ey(q) o=C.d.cU(C.f.a6(s,0,i.r.length-2)) s=p?o+1:o-1 n=C.d.cU(C.f.a6(s,0,i.r.length-2)) s=i.y=P.aph(i.Ng(b,o),i.Ng(b,n),Math.abs(q-o)) m=s.c l=s.a k=s.d s=s.b j=i.x i.z.fs(a,new P.m(l,s),new M.nb(h,h,h,j,new P.Q(m-l,k-s),h))}, eq:function(a){var s=this return s.Q||s.b!=a.b||!J.d(s.c,a.c)||J.bQ(s.f)!=J.bQ(a.f)||!S.cx(s.r,a.r)||s.x!=a.x}} E.Lu.prototype={ ga9:function(a){var s=this.a s=s.gcs(s) s.toString return s}, eI:function(a){var s=this.a if(s.gcs(s)!=null)this.E8(a)}, T:function(a,b){var s=this.a if(s.gcs(s)!=null)this.E7(0,b)}, gm:function(a){return E.aDG(this.a)}} E.ti.prototype={ ga9:function(a){var s=this.a s=s.gcs(s) s.toString return s}, eI:function(a){var s=this.a if(s.gcs(s)!=null)this.E8(a)}, T:function(a,b){var s=this.a if(s.gcs(s)!=null)this.E7(0,b)}, gm:function(a){var s=this.a,r=s.b,q=J.aW(s.gcs(s).gbz(),0,r-1) r=this.b r.toString return C.d.a6(Math.abs(q-r),0,1)}} E.Q8.prototype={ mR:function(a,b){var s,r,q,p,o=this if(o.P!==!0){s=o.z s.toString o.P=s!==0 r=o.b4 q=r.r q.toString o.y=r.JK(q,s,a,b) p=!1}else p=!0 return o.T5(a,b)&&p}} E.Q7.prototype={ LV:function(a,b,c){var s=null,r=t.V r=new E.Q8(this.f,C.dn,a,b,!0,s,new B.cZ(!1,new P.a7(r),t.uh),new P.a7(r)) r.EN(b,s,!0,c,a) r.EO(b,s,s,!0,c,a) return r}} E.yP.prototype={ ah:function(){return new E.BI(C.k)}} E.BI.prototype={ gzk:function(){var s=this.y return s===$?H.e(H.t("_tabKeys")):s}, aC:function(){var s,r this.b_() s=this.a.c r=H.Y(s).h("Z<1,f2>>") this.y=P.an(new H.Z(s,new E.aeL(),r),!0,r.h("av.E"))}, ga2k:function(){var s,r,q=this q.a.toString s=q.c s.toString s=K.aA(s).v.a if(s!=null)return s r=q.a.f s=q.c s=s.uT(t.zd) if(s==null)s=null else{s=s.a8 s=s==null?null:s.gm(s)}s=r.a===s if(s)r=C.j q.a.toString return new T.lR(new Y.dL(r,2,C.a_),C.aF)}, gxx:function(){var s=this.e return(s==null?null:s.gcs(s))!=null}, Kv:function(){var s,r=this,q=r.a.d if(q==null){r.c.a0(t.oq) q=null}if(q==r.e)return if(r.gxx()){s=r.e s.gcs(s).T(0,r.gyq()) r.e.T(0,r.gyr())}r.e=q if(q!=null){s=q.gcs(q) s.dm() s=s.bq$ s.b=!0 s.a.push(r.gyq()) s=r.e.P$ s.bQ(s.c,new B.bn(r.gyr()),!1) r.r=r.e.c}}, yz:function(){var s,r,q,p,o,n=this if(!n.gxx())s=null else{s=n.e s.toString r=n.ga2k() n.a.toString q=n.c q.toString q=K.aA(q).v.b n.a.toString p=n.gzk() o=n.f s=new E.Ao(s,r,q,C.aF,p,s.gcs(s)) if(o!=null){r=o.r o=o.x s.r=r s.x=o}}n.f=s}, aG:function(){this.cq() this.Kv() this.yz()}, bd:function(a){var s,r,q,p,o,n,m=this m.bG(a) s=m.a if(s.d!=a.d){m.Kv() m.yz()}else{if(s.f.k(0,a.f)){m.a.toString s=!1}else s=!0 if(s)m.yz()}s=m.a.c.length r=a.c q=r.length if(s>q){p=s-q s=m.gzk() o=J.aor(p,t.yi) for(r=t.A,n=0;n0?l.tK(k-1):null k=l.r k.toString q=l.tK(k) k=l.r k.toString p=k0){i=p-1 p=d.e p.toString o=H.b([],t.e) q[i]=d.os(q[i],!1,new S.i1(new E.ti(p,i),new R.by(o,t.l),0))}p=d.r p.toString if(p>>16&255,n.gm(n)>>>8&255,n.gm(n)&255)}h=new P.m(-2/d0.a0(t.w).f.b,0) g=i f=!0 e=!0 m=C.cA break case C.C:l=K.aje(d0) c3.y=!1 k=$.aum() j=c7.a if(j==null)j=l.gil() i=c7.b if(i==null){n=l.gil() i=P.aI(102,n.gm(n)>>>16&255,n.gm(n)>>>8&255,n.gm(n)&255)}h=new P.m(-2/d0.a0(t.w).f.b,0) c5.a=new Z.aeX(c3) g=c4 f=!0 e=!0 m=C.cA break case C.I:case C.M:c3.y=!1 k=$.auq() j=c7.a if(j==null)j=c6.S.a i=c7.b if(i==null){n=c6.S.a i=P.aI(102,n.gm(n)>>>16&255,n.gm(n)>>>8&255,n.gm(n)&255)}g=c4 h=g f=!1 e=!1 break case C.D:case C.E:c3.y=!1 k=$.auo() j=c7.a if(j==null)j=c6.S.a i=c7.b if(i==null){n=c6.S.a i=P.aI(102,n.gm(n)>>>16&255,n.gm(n)>>>8&255,n.gm(n)&255)}g=c4 h=g f=!1 e=!1 break default:throw H.a(H.j(u.I))}n=c3.ae$ if(!c3.a.k2){c3.gjx() d=!1}else d=!0 c=c3.a b=c.k3 a=c3.r a0=c.f a1=c.r a2=c.x a3=c.z a4=c.Q a5=c.cx a6=c.cy a7=c.db a8=c.dx a9=c.fr b0=c.fx b1=c.go b2=c.id b3=c.ry b4=c.x1 b5=c.x2 b6=c.at b7=c.aN b8=c.v b9=c.bl c0=c.aY c=c.F if(b1===1){c8=H.b([$.at0()],c8) C.b.J(c8,o)}else c8=o c8=K.a7A(n,new D.pH(q,p,a7,a8,d,b,a,!d,!0,a9,b0,!0,s,a3,a4,a5,a2,j,g,C.dW,b1,b2,!1,a6,i,k,a0,a1,b3,b4,b5,c4,c3.ga5X(),c3.ga1E(),c8,C.cT,!0,b6,b7,m,e,h,f,C.cP,C.bu,r,b8,!0,C.a4,b9,c0,c,"editable",c3.z)) c3.a.toString c1=K.p8(new B.oH(H.b([p,q],t.Eo)),new Z.aeY(c3,p,q),new T.he(c8,c4)) c3.a.toString c8=P.aZ(t.ui) c3.gjx() if(c3.f)c8.B(0,C.ao) if(p.gcn())c8.B(0,C.b8) o=c3.a.e if(o.Q!=null||c3.ga2e())c8.B(0,C.xb) c2=V.qk(C.Hb,c8,t.Pb) c5.b=null c3.a.toString if(c3.gZA()!==C.xc)c3.a.toString c3.gjx() c8=c3.gJa() o=c8.gacS() n=c8.a d=n.gMS()?c8.gacy():c4 n=n.gMS()?c8.gacw():c4 return new T.hY(new Z.aeZ(c3),c4,new Z.af_(c3),c2,!0,new T.hP(!1,c4,K.p8(q,new Z.af0(c5,c3),new F.z2(o,d,n,c8.gacD(),c8.gacF(),c8.gacP(),c8.gacN(),c8.gacL(),c8.gacJ(),c8.gacH(),c8.gacn(),c8.gacr(),c8.gact(),c8.gacp(),C.cm,c1,c4)),c4),c4)}} Z.aeV.prototype={ $0:function(){this.a.r=this.b}, $S:0} Z.aeU.prototype={ $0:function(){this.a.f=this.b}, $S:0} Z.aeX.prototype={ $0:function(){var s=this.a if(!s.gjt().gcn()&&s.gjt().gd0())s.gjt().nI()}, $C:"$0", $R:0, $S:0} Z.aeY.prototype={ $2:function(a,b){var s,r,q,p=this.a,o=p.a_v(),n=p.a,m=n.y,l=n.Q n=n.ch s=p.f r=this.b.gcn() q=this.c.a.a.length p.a.toString return new L.ne(o,m,l,n,r,s,!1,q===0,b,null)}, $C:"$2", $R:2, $S:219} Z.aeZ.prototype={ $1:function(a){return this.a.Hh(!0)}, $S:59} Z.af_.prototype={ $1:function(a){return this.a.Hh(!1)}, $S:37} Z.af0.prototype={ $2:function(a,b){var s=null,r=this.a,q=r.b,p=this.b,o=new T.hh(p.ghU().a.a) o=o.gl(o) p=p.a.k2?s:new Z.aeW(p) return T.cu(s,b,!1,o,s,!1,s,s,s,s,s,s,q,s,s,s,r.a,s,s,s,p,s,s,s,s,s,s)}, $C:"$2", $R:2, $S:220} Z.aeW.prototype={ $0:function(){var s=this.a if(!s.ghU().a.b.ghB())s.ghU().sre(X.hi(C.l,s.ghU().a.a.length)) s.IN()}, $C:"$0", $R:0, $S:0} Z.agd.prototype={ $2:function(a,b){if(!a.a)a.T(0,b)}, $S:46} Z.Cp.prototype={ bd:function(a){this.bG(a) this.pD()}, aG:function(){var s,r,q,p,o=this o.cq() s=o.ae$ r=o.glK() q=o.c q.toString q=K.qS(q) o.aS$=q p=o.mK(q,r) if(r){o.j6(s,o.bx$) o.bx$=!1}if(p)if(s!=null)s.p(0)}, p:function(a){var s,r=this r.bf$.K(0,new Z.agd()) s=r.ae$ if(s!=null)s.p(0) r.ae$=null r.bh(0)}} E.z_.prototype={ ah:function(){return new E.u7(C.k)}} E.a72.prototype={ $1:function(a){var s,r,q,p,o,n,m,l,k,j=this t.iN.a(a) s=a.c s.toString r=j.a.zY(K.aA(s).aI) s=a.goz() q=r.a8p(a.e) p=j.dy o=p?C.Ca:C.Cb n=p?C.Cc:C.Cd m=j.k2 l=m===1?C.CE:C.md k=p?C.FL:C.FM return new Z.ok(s,j.c,q,l,j.e,j.Q,j.f,j.r,j.x,j.y,j.z,j.ch,j.dx,p,j.fr,o,n,j.go,m,j.k3,j.k4,j.cy,k,j.db,j.r1,j.id,j.k1,new E.a73(a,j.b),j.rx,j.ry,j.x1,!0,j.y1,j.y2,j.ac,j.at,j.b4,j.aN,j.P,j.bD,j.r2,j.aR,j.aI,j.A,j.v,null)}, $S:221} E.a73.prototype={ $1:function(a){this.a.ux(a)}, $S:53} E.u7.prototype={ goz:function(){var s=t.mr.a(N.a2.prototype.gE.call(this)).Q return s==null?this.z:s}, gE:function(){return t.mr.a(N.a2.prototype.gE.call(this))}, aC:function(){var s,r=this r.RZ() s=t.mr if(s.a(N.a2.prototype.gE.call(r)).Q==null){s=s.a(N.a2.prototype.gE.call(r)).f s=s==null?C.u:new N.bb(s,C.O,C.v) r.z=new D.aL(s,new P.a7(t.V))}else{s=s.a(N.a2.prototype.gE.call(r)).Q.P$ s.bQ(s.c,new B.bn(r.gt8()),!1)}}, bd:function(a){var s,r,q,p,o=this o.bG(a) s=t.mr r=s.a(N.a2.prototype.gE.call(o)).Q q=a.Q if(r!=q){r=q==null if(!r)q.T(0,o.gt8()) p=s.a(N.a2.prototype.gE.call(o)).Q if(p!=null){p=p.P$ p.bQ(p.c,new B.bn(o.gt8()),!1)}if(!r&&s.a(N.a2.prototype.gE.call(o)).Q==null)o.z=D.apM(q.a) if(s.a(N.a2.prototype.gE.call(o)).Q!=null){o.d=s.a(N.a2.prototype.gE.call(o)).Q.a.a if(r)o.z=null}}}, p:function(a){var s=t.mr.a(N.a2.prototype.gE.call(this)).Q if(s!=null)s.T(0,this.gt8()) this.bh(0)}, ux:function(a){var s,r this.RY(a) if(this.goz().a.a!=a){s=this.goz() s.toString r=a==null?"":a s.aW(0,s.a.un(C.v,C.O,r))}}, a06:function(){var s=this if(s.goz().a.a!=s.d)s.ux(s.goz().a.a)}} F.a_w.prototype={ lT:function(a){return C.C6}, u6:function(a,b,c){var s=null,r=K.aA(a),q=R.apQ(a).c,p=T.r9(T.l3(s,s,s,new F.Qh(q==null?r.S.a:q,s),C.r),22,22) switch(b){case C.cG:return T.apU(1.5707963267948966,p) case C.cH:return p case C.dy:return T.apU(0.7853981633974483,p) default:throw H.a(H.j(u.I))}}, nV:function(a,b){switch(a){case C.cG:return C.xw case C.cH:return C.i default:return C.xu}}} F.Qh.prototype={ aD:function(a,b){var s,r,q,p=H.aF(),o=p?H.b_():new H.aR(new H.aT()) o.sap(0,this.b) s=b.a/2 r=P.k6(new P.m(s,s),s) p=0+s q=P.dh() q.mO(0,r) q.jK(0,new P.x(0,0,p,p)) a.cj(0,q,o)}, eq:function(a){return!J.d(this.b,a.b)}} R.z5.prototype={ gt:function(a){return P.a5(this.a,this.b,this.c,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof R.z5&&J.d(b.a,s.a)&&J.d(b.b,s.b)&&J.d(b.c,s.c)}} R.Qk.prototype={} R.dX.prototype={ bU:function(a9){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5,a6,a7=this,a8=null if(a9==null)return a7 s=a7.a r=s==null?a8:s.bU(a9.a) if(r==null)r=a9.a q=a7.b p=q==null?a8:q.bU(a9.b) if(p==null)p=a9.b o=a7.c n=o==null?a8:o.bU(a9.c) if(n==null)n=a9.c m=a7.d l=m==null?a8:m.bU(a9.d) if(l==null)l=a9.d k=a7.e j=k==null?a8:k.bU(a9.e) if(j==null)j=a9.e i=a7.f h=i==null?a8:i.bU(a9.f) if(h==null)h=a9.f g=a7.r f=g==null?a8:g.bU(a9.r) if(f==null)f=a9.r e=a7.x d=e==null?a8:e.bU(a9.x) if(d==null)d=a9.x c=a7.y b=c==null?a8:c.bU(a9.y) if(b==null)b=a9.y a=a7.z a0=a==null?a8:a.bU(a9.z) if(a0==null)a0=a9.z a1=a7.Q a2=a1==null?a8:a1.bU(a9.Q) if(a2==null)a2=a9.Q a3=a7.ch a4=a3==null?a8:a3.bU(a9.ch) if(a4==null)a4=a9.ch a5=a7.cx a6=a5==null?a8:a5.bU(a9.cx) if(a6==null)a6=a9.cx if(r==null)r=a8 s=r==null?s:r r=p==null?a8:p if(r==null)r=q q=n==null?a8:n if(q==null)q=o p=l==null?a8:l if(p==null)p=m o=j==null?a8:j if(o==null)o=k n=h==null?a8:h if(n==null)n=i m=f==null?a8:f if(m==null)m=g l=d==null?a8:d if(l==null)l=e k=b==null?a8:b if(k==null)k=c j=a0==null?a8:a0 if(j==null)j=a i=a2==null?a1:a2 h=a4==null?a3:a4 return R.apR(k,j,h,i,s,r,q,p,o,n,a6==null?a5:a6,m,l)}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof R.dX&&J.d(s.a,b.a)&&J.d(s.b,b.b)&&J.d(s.c,b.c)&&J.d(s.d,b.d)&&J.d(s.e,b.e)&&J.d(s.f,b.f)&&J.d(s.r,b.r)&&J.d(s.x,b.x)&&J.d(s.y,b.y)&&J.d(s.z,b.z)&&J.d(s.Q,b.Q)&&J.d(s.ch,b.ch)&&J.d(s.cx,b.cx)}, gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,s.r,s.x,s.y,s.z,s.Q,s.ch,s.cx,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}} R.Qn.prototype={} K.z6.prototype={ H:function(a,b){var s,r,q,p,o,n,m=this.c m.toString s=C.bT.a r=C.bT.b q=C.bT.c p=C.bT.d o=C.bT.e n=C.bT.f return new K.Ar(this,new K.EA(new X.Gz(m,new K.xa(s,r,q,p,o,n),C.iA,s,r,q,p,o,n),Y.FX(this.d,m.b4,null),null),null)}} K.Ar.prototype={ CV:function(a,b,c){return new K.z6(this.x.c,c,null)}, cZ:function(a){return!J.d(this.x.c,a.x.c)}} K.on.prototype={ ej:function(u7){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,f0,f1,f2,f3,f4,f5,f6,f7,f8,f9,g0,g1,g2,g3,g4,g5,g6,g7,g8,g9,h0,h1,h2,h3,h4,h5,h6,h7,h8,h9,i0,i1,i2,i3,i4,i5,i6,i7,i8,i9,j0,j1,j2,j3,j4,j5,j6,j7,j8,j9,k0,k1,k2,k3,k4,k5,k6,k7,k8,k9,l0,l1,l2,l3,l4,l5,l6,l7,l8,l9,m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,o0,o1,o2,o3,o4,o5,o6,o7,o8,o9,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,q0,q1,q2,q3,q4,q5,q6,q7,q8,q9,r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,u0,u1,u2,u3,u4,u5,u6=this.a u6.toString s=this.b s.toString r=u6.a.a q=s.a.a p=P.aa(r,q,u7) p.toString q=P.aa(r,q,u7) q.toString r=P.K(u6.b,s.b,u7) r.toString o=u7<0.5 n=o?u6.c:s.c m=P.K(u6.d,s.d,u7) m.toString l=P.K(u6.e,s.e,u7) l.toString k=P.K(u6.f,s.f,u7) k.toString j=P.K(u6.r,s.r,u7) j.toString i=P.K(u6.x,s.x,u7) i.toString h=o?u6.y:s.y g=P.K(u6.z,s.z,u7) g.toString f=P.K(u6.Q,s.Q,u7) f.toString e=P.K(u6.ch,s.ch,u7) e.toString d=P.K(u6.cx,s.cx,u7) d.toString c=P.K(u6.cy,s.cy,u7) c.toString b=P.K(u6.db,s.db,u7) b.toString a=P.K(u6.dx,s.dx,u7) a.toString a0=P.K(u6.dy,s.dy,u7) a0.toString a1=o?u6.fr:s.fr a2=P.K(u6.fx,s.fx,u7) a2.toString a3=P.K(u6.fy,s.fy,u7) a3.toString a4=P.K(u6.go,s.go,u7) a4.toString a5=o?u6.id:s.id a6=S.aBp(u6.k1,s.k1,u7) a6.toString a7=P.K(u6.k2,s.k2,u7) a7.toString a8=P.K(u6.k3,s.k3,u7) a8.toString a9=P.K(u6.k4,s.k4,u7) a9.toString b0=P.K(u6.r1,s.r1,u7) b0.toString b1=P.K(u6.r2,s.r2,u7) b1.toString b2=P.K(u6.rx,s.rx,u7) b2.toString b3=P.K(u6.ry,s.ry,u7) b3.toString b4=P.K(u6.x1,s.x1,u7) b4.toString b5=P.K(u6.x2,s.x2,u7) b5.toString b6=P.K(u6.y1,s.y1,u7) b6.toString b7=P.K(u6.y2,s.y2,u7) b7.toString b8=R.lO(u6.ac,s.ac,u7) b9=R.lO(u6.at,s.at,u7) c0=R.lO(u6.aN,s.aN,u7) c1=o?u6.aI:s.aI c2=T.ld(u6.b4,s.b4,u7) c3=T.ld(u6.P,s.P,u7) c4=T.ld(u6.bD,s.bD,u7) c5=u6.aR c6=s.aR c7=P.aa(c5.a,c6.a,u7) c8=P.K(c5.b,c6.b,u7) c9=P.K(c5.c,c6.c,u7) d0=P.K(c5.d,c6.d,u7) d1=P.K(c5.e,c6.e,u7) d2=P.K(c5.f,c6.f,u7) d3=P.K(c5.r,c6.r,u7) d4=P.K(c5.x,c6.x,u7) d5=P.K(c5.y,c6.y,u7) d6=P.K(c5.z,c6.z,u7) d7=P.K(c5.Q,c6.Q,u7) d8=P.K(c5.ch,c6.ch,u7) d9=P.K(c5.cx,c6.cx,u7) e0=P.K(c5.cy,c6.cy,u7) e1=o?c5.db:c6.db e2=o?c5.dx:c6.dx e3=o?c5.dy:c6.dy e4=o?c5.fr:c6.fr e5=o?c5.fx:c6.fx e6=o?c5.fy:c6.fy e7=o?c5.go:c6.go e8=o?c5.id:c6.id e9=o?c5.k1:c6.k1 f0=o?c5.k2:c6.k2 f1=A.bu(c5.k3,c6.k3,u7) f2=P.aa(c5.k4,c6.k4,u7) c5=o?c5.r1:c6.r1 c6=u6.v f3=s.v f4=Z.Va(c6.a,f3.a,u7) f5=o?c6.b:f3.b f6=P.K(c6.c,f3.c,u7) f7=V.hL(c6.d,f3.d,u7) f8=A.bu(c6.e,f3.e,u7) f9=P.K(c6.f,f3.f,u7) f3=A.bu(c6.r,f3.r,u7) c6=T.aBs(u6.A,s.A,u7) c6.toString g0=u6.aE g1=s.aE if(o)g2=g0.a else g2=g1.a g3=P.K(g0.b,g1.b,u7) g4=P.K(g0.c,g1.c,u7) g5=P.aa(g0.d,g1.d,u7) g6=V.hL(g0.e,g1.e,u7) g0=Y.hf(g0.f,g1.f,u7) g1=K.axY(u6.bT,s.bT,u7) g1.toString g7=o?u6.aA:s.aA g8=o?u6.bi:s.bi g9=o?u6.aY:s.aY h0=u6.bl h1=s.bl if(o)h2=h0.a else h2=h1.a h3=P.K(h0.b,h1.b,u7) h4=P.K(h0.c,h1.c,u7) h5=P.aa(h0.d,h1.d,u7) h6=P.K(h0.e,h1.e,u7) h7=T.ld(h0.f,h1.f,u7) h8=T.ld(h0.r,h1.r,u7) h9=R.lO(h0.x,h1.x,u7) if(o)i0=h0.y else i0=h1.y i1=P.aa(h0.z,h1.z,u7) i2=A.bu(h0.Q,h1.Q,u7) i3=A.bu(h0.ch,h1.ch,u7) if(o)i4=h0.cx else i4=h1.cx if(o)h0=h0.cy else h0=h1.cy h1=h3==null?null:h3 h3=u6.F i5=s.F i6=X.a4e(h3.a,i5.a,u7,P.asJ(),t.PM) if(o)i7=h3.b else i7=i5.b if(o)i8=h3.c else i8=i5.c if(o)i9=h3.d else i9=i5.d j0=P.xG(h3.e,i5.e,u7) j1=t.MH j2=X.a4e(h3.f,i5.f,u7,P.en(),j1) j3=X.a4e(h3.r,i5.r,u7,P.en(),j1) j4=X.a4e(h3.x,i5.x,u7,P.en(),j1) j5=P.aa(h3.y,i5.y,u7) j6=P.aa(h3.z,i5.z,u7) h3=P.aa(h3.Q,i5.Q,u7) i5=u6.N j7=s.N j8=P.K(i5.a,j7.a,u7) j9=P.aa(i5.b,j7.b,u7) if(o)i5=i5.c else i5=j7.c j7=u6.S k0=s.S k1=P.K(j7.a,k0.a,u7) k1.toString k2=P.K(j7.b,k0.b,u7) k2.toString k3=P.K(j7.c,k0.c,u7) k3.toString k4=P.K(j7.d,k0.d,u7) k4.toString k5=P.K(j7.e,k0.e,u7) k5.toString k6=P.K(j7.f,k0.f,u7) k6.toString k7=P.K(j7.r,k0.r,u7) k7.toString k8=P.K(j7.x,k0.x,u7) k8.toString k9=P.K(j7.y,k0.y,u7) k9.toString l0=P.K(j7.z,k0.z,u7) l0.toString l1=P.K(j7.Q,k0.Q,u7) l1.toString l2=P.K(j7.ch,k0.ch,u7) l2.toString j7=o?j7.cx:k0.cx k0=u6.aB l3=s.aB l4=P.K(k0.a,l3.a,u7) l5=P.aa(k0.b,l3.b,u7) l6=Y.hf(k0.c,l3.c,u7) l7=A.bu(k0.d,l3.d,u7) k0=A.bu(k0.e,l3.e,u7) l3=S.ayG(u6.ax,s.ax,u7) l3.toString l8=E.azD(u6.aU,s.aU,u7) l8.toString l9=u6.b7 m0=s.b7 m1=R.lO(l9.a,m0.a,u7) m2=R.lO(l9.b,m0.b,u7) m3=R.lO(l9.c,m0.c,u7) m4=R.lO(l9.d,m0.d,u7) m0=R.lO(l9.e,m0.e,u7) l9=o?u6.ae:s.ae m5=u6.au m6=s.au m7=P.K(m5.a,m6.a,u7) m8=P.K(m5.b,m6.b,u7) m9=P.K(m5.c,m6.c,u7) n0=A.bu(m5.d,m6.d,u7) n1=P.aa(m5.e,m6.e,u7) n2=Y.hf(m5.f,m6.f,u7) if(o)m5=m5.r else m5=m6.r m6=X.axD(u6.bf,s.bf,u7) m6.toString n3=R.azY(u6.bE,s.bE,u7) n3.toString n4=u6.bx n5=s.bx n6=P.K(n4.a,n5.a,u7) n7=A.bu(n4.b,n5.b,u7) n8=V.hL(n4.c,n5.c,u7) n4=V.hL(n4.d,n5.d,u7) n5=u6.aS n9=s.aS o0=P.K(n5.a,n9.a,u7) o1=P.aa(n5.b,n9.b,u7) o2=P.aa(n5.c,n9.c,u7) o3=P.aa(n5.d,n9.d,u7) n5=P.aa(n5.e,n9.e,u7) n9=M.axL(u6.cD,s.cD,u7) n9.toString o4=u6.e2 o5=s.e2 o6=P.K(o4.a,o5.a,u7) o7=P.aa(o4.b,o5.b,u7) o8=T.ld(o4.c,o5.c,u7) o9=T.ld(o4.d,o5.d,u7) p0=P.K(o4.e,o5.e,u7) p1=P.K(o4.f,o5.f,u7) p2=A.bu(o4.r,o5.r,u7) p3=A.bu(o4.x,o5.x,u7) if(o)p4=o4.y else p4=o5.y if(o)p5=o4.z else p5=o5.z if(o)p6=o4.Q else p6=o5.Q if(o)o4=o4.ch else o4=o5.ch o5=u6.d2 p7=s.d2 p8=o5.dx p9=p8==null if(p9)q0=p7.dx==null else q0=!1 if(q0)p8=null else if(p9)p8=p7.dx else{p9=p7.dx if(!(p9==null))p8=Y.bd(p8,p9,u7)}p9=P.K(o5.a,p7.a,u7) q0=P.K(o5.b,p7.b,u7) q1=P.K(o5.c,p7.c,u7) q2=P.K(o5.d,p7.d,u7) q3=P.K(o5.e,p7.e,u7) q4=P.K(o5.f,p7.f,u7) q5=P.K(o5.r,p7.r,u7) q6=P.K(o5.x,p7.x,u7) q7=P.K(o5.y,p7.y,u7) q8=A.bu(o5.z,p7.z,u7) q9=A.bu(o5.Q,p7.Q,u7) r0=A.bu(o5.ch,p7.ch,u7) r1=Y.hf(o5.cx,p7.cx,u7) r2=Y.hf(o5.cy,p7.cy,u7) r3=t.KX r4=r3.a(Y.hf(o5.db,p7.db,u7)) if(o)o5=o5.dy else o5=p7.dy p7=T.aBj(u6.c_,s.c_,u7) p7.toString r5=T.ayy(u6.cl,s.cl,u7) r5.toString r6=U.azI(u6.aK,s.aK,u7) r6.toString r7=R.aBm(u6.cw,s.cw,u7) r7.toString r8=u6.e3 r9=s.e3 s0=Z.Va(r8.a,r9.a,u7) s1=Z.anM(r8.b,r9.b,u7,P.en(),j1) s2=P.aa(r8.c,r9.c,u7) s3=A.bu(r8.d,r9.d,u7) s4=Z.anM(r8.e,r9.e,u7,P.en(),j1) s5=P.aa(r8.f,r9.f,u7) s6=A.bu(r8.r,r9.r,u7) s7=P.aa(r8.x,r9.x,u7) s8=P.aa(r8.y,r9.y,u7) s9=P.aa(r8.z,r9.z,u7) r9=P.aa(r8.Q,r9.Q,u7) r8=u6.cE t0=s.cE if(o)t1=r8.a else t1=t0.a t2=F.aj8(r8.b,t0.b,u7,P.en(),j1) t3=F.aj8(r8.c,t0.c,u7,P.en(),j1) t4=F.aj8(r8.d,t0.d,u7,P.en(),j1) t5=P.aa(r8.e,t0.e,u7) if(o)t6=r8.f else t6=t0.f if(o)t7=r8.r else t7=t0.r r3=r3.a(Y.hf(r8.x,t0.x,u7)) r8=F.axS(r8.y,t0.y,u7) t0=u6.d3 t8=s.d3 if(o)t9=t0.a else t9=t8.a u0=T.apf(t0.b,t8.b,u7,P.en(),j1) if(o)u1=t0.e else u1=t8.e u2=T.apf(t0.c,t8.c,u7,P.en(),j1) u3=P.aa(t0.d,t8.d,u7) if(o)t0=t0.f else t0=t8.f u6=u6.d8 s=s.d8 t8=R.akr(u6.a,s.a,u7,P.en(),j1) u4=R.akr(u6.b,s.b,u7,P.en(),j1) if(o)u5=u6.c else u5=s.c if(o)o=u6.d else o=s.d j1=R.akr(u6.e,s.e,u7,P.en(),j1) u6=P.aa(u6.f,s.f,u7) return X.akv(i,h,c4,c0,new V.uH(h2,h1,h4,h5,h6,h7,h8,h9,i0,i1,i2,i3,i4,h0),!1,b2,new Q.wN(n6,n7,n8,n4),f,new D.uT(j8,j9,i5),new M.uU(o6,o7,o8,o9,p0,p1,p2,p3,p4,p5,p6,o4),m6,n9,a7,a5,k,e,new A.v6(g2,g3,g4,g5,g6,g0),new F.v9(t1,t2,t3,t4,t5,t6,t7,r3,r8),g1,new A.pq(k1,k2,k3,k4,k5,k6,k7,k8,k9,l0,l1,l2,j7),l9,b0,new Z.vv(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,r9),b3,new Y.vy(l4,l5,l6,l7,k0),a4,d,new G.vA(o0,o1,o2,o3,n5),r5,b6,!1,l3,c,a,b5,b,c2,b4,c1,g8,l8,r6,g9,g7,n3,r,n,l,m,c3,b9,new T.xF(t9,u0,u2,u3,u1,t0),g,new X.yl(i6,i7,i8,i9,j0,j2,j3,j4,j5,j6,h3),a8,a2,j,new Q.yz(c7,c8,c9,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,f0,f1,f2,c5),new K.yC(m7,m8,m9,n0,n1,n2,m5),a0,a1,new R.yO(t8,u4,u5,o,j1,u6),new U.yQ(f4,f5,f6,f7,f8,f9,f3),p7,a9,b1,r7,b8,new A.za(p9,q0,q1,q2,q3,q4,q5,q6,q7,q8,q9,r0,r1,r2,r4,p8,o5),a6,b7,c6,new U.zk(m1,m2,m3,m4,m0),a3,!0,new X.t0(p,q))}} K.uy.prototype={ ah:function(){return new K.L_(null,C.k)}} K.L_.prototype={ na:function(a){var s=a.$3(this.dx,this.a.r,new K.a8t()) s.toString this.dx=t.ZM.a(s)}, H:function(a,b){var s,r=this.a.x,q=this.dx q.toString s=this.ghN() return new K.z6(q.b1(0,s.gm(s)),r,null)}} K.a8t.prototype={ $1:function(a){return new K.on(t.we.a(a),null)}, $S:222} X.GB.prototype={ j:function(a){return this.b}} X.hk.prototype={ k:function(a,b){var s,r=this if(b==null)return!1 if(J.N(b)!==H.E(r))return!1 if(b instanceof X.hk)if(b.a.k(0,r.a))if(J.d(b.b,r.b))if(b.c===r.c)if(J.d(b.d,r.d))if(J.d(b.e,r.e))if(J.d(b.x,r.x))if(b.y===r.y)if(J.d(b.f,r.f))if(J.d(b.z,r.z))if(J.d(b.Q,r.Q))if(J.d(b.ch,r.ch))if(J.d(b.r,r.r))if(J.d(b.cx,r.cx))if(J.d(b.dx,r.dx))if(J.d(b.dy,r.dy))if(b.fr===r.fr)if(J.d(b.fx,r.fx))if(J.d(b.fy,r.fy))if(J.d(b.go,r.go))if(b.id.k(0,r.id))if(J.d(b.k2,r.k2))if(J.d(b.k1,r.k1))if(J.d(b.k3,r.k3))if(J.d(b.k4,r.k4))if(J.d(b.r1,r.r1))if(J.d(b.r2,r.r2))if(J.d(b.rx,r.rx))if(J.d(b.ry,r.ry))if(J.d(b.x1,r.x1))if(J.d(b.x2,r.x2))if(J.d(b.y1,r.y1))if(J.d(b.y2,r.y2))if(b.ac.k(0,r.ac))if(b.at.k(0,r.at))if(b.aN.k(0,r.aN))if(b.aI.k(0,r.aI))if(b.b4.k(0,r.b4))if(b.P.k(0,r.P))if(b.bD.k(0,r.bD))if(b.aR.k(0,r.aR))if(b.v.k(0,r.v))if(J.d(b.A,r.A))if(b.aE.k(0,r.aE))if(J.d(b.bT,r.bT))if(b.aA==r.aA)if(b.bi===r.bi)if(b.aY.k(0,r.aY))if(b.bl.k(0,r.bl))if(b.F.k(0,r.F))if(b.N.k(0,r.N))if(b.S.k(0,r.S))if(b.aB.k(0,r.aB))if(J.d(b.ax,r.ax))if(J.d(b.aU,r.aU))if(b.b7.k(0,r.b7))if(b.au.k(0,r.au))if(J.d(b.bf,r.bf))if(J.d(b.bE,r.bE))if(b.bx.k(0,r.bx))if(b.aS.k(0,r.aS))if(J.d(b.cD,r.cD))if(b.e2.k(0,r.e2))if(b.d2.k(0,r.d2))if(J.d(b.c_,r.c_))if(J.d(b.cl,r.cl))if(J.d(b.aK,r.aK))if(J.d(b.cw,r.cw))if(b.e3.k(0,r.e3))if(b.cE.k(0,r.cE))if(b.d3.k(0,r.d3))if(b.d8.k(0,r.d8))s=!0 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 return s}, gt:function(a){var s=this return P.em([s.a,s.b,s.c,s.d,s.e,s.x,s.y,s.f,s.r,s.z,s.Q,s.ch,s.cx,s.cy,s.db,s.dx,s.dy,s.fr,s.fx,s.fy,s.go,s.id,s.k2,s.k1,s.y2,s.k3,s.k4,s.r1,s.r2,s.rx,s.ry,s.x1,s.x2,s.y1,s.ac,s.at,s.aN,s.aI,s.b4,s.P,s.bD,s.aR,s.v,s.A,s.aE,s.bT,s.aA,s.bi,!1,s.aY,s.bl,s.F,s.N,s.S,s.aB,s.ax,s.aU,s.b7,s.ae,s.au,s.bf,s.bE,s.bx,s.aS,s.cD,s.e2,s.d2,s.c_,s.cl,s.aK,s.cw,s.e3,s.cE,s.d3,s.d8,!1,!0])}} X.a7h.prototype={ $0:function(){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,f0,f1=this.a,f2=this.b,f3=f2.bU(f1.at),f4=f2.bU(f1.aN) f2=f2.bU(f1.ac) s=f1.a r=f1.b q=f1.c p=f1.d o=f1.e n=f1.x m=f1.y l=f1.f k=f1.r j=f1.z i=f1.Q h=f1.ch g=f1.cx f=f1.cy e=f1.db d=f1.dx c=f1.dy b=f1.fr a=f1.fx a0=f1.fy a1=f1.go a2=f1.k2 a3=f1.id a4=f1.k1 a5=f1.k3 a6=f1.k4 a7=f1.r1 a8=f1.r2 a9=f1.rx b0=f1.ry b1=f1.x1 b2=f1.x2 b3=f1.y1 b4=f1.y2 b5=f1.aI b6=f1.b4 b7=f1.P b8=f1.bD b9=f1.aR c0=f1.v c1=f1.A c2=f1.aE c3=f1.bT c4=f1.aA c5=f1.bi c6=f1.aY c7=f1.bl c8=f1.F c9=f1.N d0=f1.S d1=f1.aB d2=f1.ax d3=f1.aU d4=f1.b7 d5=f1.ae d6=f1.au d7=f1.bf d8=f1.bE d9=f1.bx e0=f1.aS e1=f1.cD e2=f1.e2 e3=f1.d2 e4=f1.c_ e5=f1.cl e6=f1.aK e7=f1.cw e8=f1.e3 e9=f1.cE f0=f1.d3 f1=f1.d8 return X.akv(n,m,b8,f4,c7,!1,a9,d9,i,c9,e2,d7,e1,a2,a3,l,h,c2,e9,c3,new A.pq(d0.a,d0.b,d0.c,d0.d,d0.e,d0.f,d0.r,d0.x,d0.y,d0.z,d0.Q,d0.ch,d0.cx),d5,a7,e8,b0,d1,a1,g,e0,e5,b3,!1,d2,f,d,b2,e,b6,b1,b5,c5,d3,e6,c6,c4,d8,r,q,o,p,b7,f3,f0,j,c8,a5,a,k,b9,d6,c,b,f1,c0,e4,a6,a8,e7,f2,e3,a4,b4,c1,d4,a0,!0,s)}, $S:223} X.Gz.prototype={ gu4:function(){var s=this.db.a return s==null?this.cy.S.cx:s}, gil:function(){var s=this.db.b return s==null?this.cy.S.a:s}, gCk:function(){var s=this.db.c return s==null?this.cy.S.x:s}, gw9:function(){var s=this.db.f return s==null?this.cy.z:s}, e8:function(a){return X.azq(this.cy,this.db.e8(a))}} X.tB.prototype={ gt:function(a){return(H.CM(this.a)^H.CM(this.b))>>>0}, k:function(a,b){if(b==null)return!1 return b instanceof X.tB&&b.a==this.a&&b.b===this.b}} X.MJ.prototype={ bX:function(a,b,c){var s,r=this.a,q=r.i(0,b) if(q!=null)return q if(r.gl(r)===this.b){s=r.gaj(r) r.u(0,s.gI(s))}s=c.$0() r.n(0,b,s) return s}} X.t0.prototype={ Mi:function(a){var s=this.a,r=this.b,q=C.d.a6(a.a+new P.m(s,r).a4(0,4).a,0,1/0) return a.LQ(C.d.a6(a.c+new P.m(s,r).a4(0,4).b,0,1/0),q)}, k:function(a,b){if(b==null)return!1 if(J.N(b)!==H.E(this))return!1 return b instanceof X.t0&&b.a==this.a&&b.b==this.b}, gt:function(a){return P.a5(this.a,this.b,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, cp:function(){return this.RR()+"(h: "+E.fU(this.a)+", v: "+E.fU(this.b)+")"}} X.Qr.prototype={} X.QX.prototype={} A.za.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,s.r,s.x,s.y,s.z,s.Q,s.ch,s.cx,s.cy,s.db,s.dx,s.dy,C.a,C.a,C.a)}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof A.za&&J.d(b.a,s.a)&&J.d(b.b,s.b)&&J.d(b.c,s.c)&&J.d(b.d,s.d)&&J.d(b.e,s.e)&&J.d(b.f,s.f)&&J.d(b.r,s.r)&&J.d(b.x,s.x)&&J.d(b.y,s.y)&&J.d(b.z,s.z)&&J.d(b.Q,s.Q)&&J.d(b.ch,s.ch)&&J.d(b.cx,s.cx)&&J.d(b.cy,s.cy)&&J.d(b.db,s.db)&&J.d(b.dx,s.dx)&&!0}} A.Qs.prototype={} S.zb.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,s.r,s.x,s.z,s.y,s.Q,s.ch,s.cx,s.db,s.cy,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof S.zb&&J.d(b.a,s.a)&&J.d(b.b,s.b)&&J.d(b.c,s.c)&&J.d(b.d,s.d)&&J.d(b.e,s.e)&&J.d(b.f,s.f)&&J.d(b.r,s.r)&&J.d(b.x,s.x)&&J.d(b.z,s.z)&&J.d(b.y,s.y)&&J.d(b.Q,s.Q)&&J.d(b.ch,s.ch)&&J.d(b.cx,s.cx)&&J.d(b.db,s.db)&&b.cy==s.cy}} S.Qt.prototype={} F.zd.prototype={ gmI:function(){var s=this.My$ return s===$?H.e(H.t("_positionController")):s}, gmx:function(a){var s=this.Mz$ return s===$?H.e(H.t("_position")):s}, gmz:function(){var s=this.MA$ return s===$?H.e(H.t("_reactionController")):s}, gtv:function(){var s=this.MD$ return s===$?H.e(H.t("_reactionHoverFadeController")):s}, gtu:function(){var s=this.MF$ return s===$?H.e(H.t("_reactionFocusFadeController")):s}, zV:function(){if(this.a.c===!0)this.gmI().cm(0) else this.gmI().cT(0)}, a6a:function(a){var s=this if(s.gf1()!=null){s.Y(new F.a7o(s,a)) s.gmz().cm(0)}}, JZ:function(a){var s,r=this if(r.gf1()==null)return switch(r.a.c){case!1:r.gf1().$1(!0) break case!0:s=r.gf1() s.$1(!1) break case null:r.gf1().$1(!1) break}r.c.gD().rh(C.m7)}, a68:function(){return this.JZ(null)}, Hn:function(a){var s=this if(s.uQ$!=null)s.Y(new F.a7p(s)) s.gmz().cT(0)}, a24:function(){return this.Hn(null)}, a0z:function(a){var s=this if(a!==s.pS$){s.Y(new F.a7m(s,a)) if(a)s.gtu().cm(0) else s.gtu().cT(0)}}, a0H:function(a){var s=this if(a!==s.pT$){s.Y(new F.a7n(s,a)) if(a)s.gtv().cm(0) else s.gtv().cT(0)}}, gkL:function(){var s=this,r=P.aZ(t.ui) if(s.gf1()==null)r.B(0,C.aS) if(s.pT$)r.B(0,C.ao) if(s.pS$)r.B(0,C.b8) if(s.a.c!==!1)r.B(0,C.bE) return r}} F.a7o.prototype={ $0:function(){this.a.uQ$=this.b.c}, $S:0} F.a7p.prototype={ $0:function(){this.a.uQ$=null}, $S:0} F.a7m.prototype={ $0:function(){this.a.pS$=this.b}, $S:0} F.a7n.prototype={ $0:function(){this.a.pT$=this.b}, $S:0} F.zc.prototype={ sbB:function(a,b){var s=this,r=s.a if(b==r)return if(r!=null)r.a.T(0,s.gcL()) b.a.aQ(0,s.gcL()) s.a=b s.aa()}, sadk:function(a){var s=this,r=s.b if(a==r)return if(r!=null)r.T(0,s.gcL()) a.aQ(0,s.gcL()) s.b=a s.aa()}, sadm:function(a){var s=this,r=s.c if(a==r)return if(r!=null)r.T(0,s.gcL()) a.aQ(0,s.gcL()) s.c=a s.aa()}, sadn:function(a){var s=this,r=s.d if(a==r)return if(r!=null)r.T(0,s.gcL()) a.aQ(0,s.gcL()) s.d=a s.aa()}, szM:function(a){if(J.d(this.e,a))return this.e=a this.aa()}, sab8:function(a){if(J.d(this.f,a))return this.f=a this.aa()}, sab9:function(a){if(a.k(0,this.r))return this.r=a this.aa()}, sadl:function(a){if(a.k(0,this.x))return this.x=a this.aa()}, sab6:function(a){if(J.d(a,this.y))return this.y=a this.aa()}, saaj:function(a){if(J.d(a,this.z))return this.z=a this.aa()}, sQZ:function(a){if(a===this.Q)return this.Q=a this.aa()}, sa9b:function(a){if(J.d(a,this.ch))return this.ch=a this.aa()}, sBH:function(a){if(a===this.cx)return this.cx=a this.aa()}, sabu:function(a){if(a===this.cy)return this.cy=a this.aa()}, p:function(a){var s=this,r=s.a if(r!=null)r.a.T(0,s.gcL()) r=s.b if(r!=null)r.T(0,s.gcL()) r=s.c if(r!=null)r.T(0,s.gcL()) r=s.d if(r!=null)r.T(0,s.gcL()) s.hb(0)}, eq:function(a){return!0}, ne:function(a){return null}, grf:function(){return null}, wn:function(a){return!1}} S.ze.prototype={ ah:function(){return new S.BT(null,C.k)}} S.BT.prototype={ sai:function(a,b){this.d=b}, gmJ:function(){var s=this.ch return s===$?H.e(H.t("_controller")):s}, gI1:function(){var s=this.fr return s===$?H.e(H.t("_mouseIsConnected")):s}, aC:function(){var s,r=this r.b_() s=$.lA.y2$.b r.fr=s.gaV(s) s=G.cl(null,C.e0,0,C.qh,1,null,r) s.dh(r.ga6b()) r.ch=s s=$.lA.y2$.P$ s.bQ(s.c,new B.bn(r.gHj()),!1) $.f1.k4$.b.n(0,r.gHk(),null)}, a_t:function(){var s=this.c s.toString switch(K.aA(s).aA){case C.C:case C.D:case C.E:return 24 default:return 32}}, a_s:function(){var s=this.c s.toString switch(K.aA(s).aA){case C.C:case C.D:case C.E:return C.qr default:return C.d0}}, GQ:function(){var s=this.c s.toString switch(K.aA(s).aA){case C.C:case C.D:case C.E:return 10 default:return 14}}, a12:function(){var s,r,q=this if(q.c==null)return s=$.lA.y2$.b r=s.gaV(s) if(r!==q.gI1())q.Y(new S.aff(q,r))}, a6c:function(a){if(a===C.N)this.tf(!0)}, tf:function(a){var s,r=this,q=r.db if(q!=null)q.aH(0) r.db=null if(a){r.IH() return}if(r.fx){if(r.cy==null){q=r.dx if(q===$)q=H.e(H.t("showDuration")) s=r.gmJ() r.cy=P.ci(q,s.gadV(s))}}else r.gmJ().cT(0) r.fx=!1}, Hr:function(){return this.tf(!1)}, a5e:function(){var s=this,r=s.cy if(r!=null)r.aH(0) s.cy=null if(s.db==null){r=s.dy if(r===$)r=H.e(H.t("waitDuration")) s.db=P.ci(r,s.ga9B())}}, Mo:function(){var s=this,r=s.db if(r!=null)r.aH(0) s.db=null if(s.cx!=null){r=s.cy if(r!=null)r.aH(0) s.cy=null s.gmJ().cm(0) return!1}s.YU() s.gmJ().cm(0) return!0}, YU:function(){var s,r,q,p,o,n,m,l,k,j,i,h=this,g=h.c g.toString h.a.toString s=g.pX(t.N1) s.toString g=h.c.gD() g.toString t.x.a(g) r=g.r2.jS(C.i) q=T.fu(g.de(0,s.c.gD()),r) r=h.c.a0(t.I) r.toString g=h.a.c p=h.d if(p===$)p=H.e(H.t("height")) o=h.e if(o===$)o=H.e(H.t("padding")) n=h.f if(n===$)n=H.e(H.t("margin")) m=h.r if(m===$)m=H.e(H.t("decoration")) l=h.x if(l===$)l=H.e(H.t("textStyle")) k=S.cy(C.al,h.gmJ(),null) j=h.y if(j===$)j=H.e(H.t("verticalOffset")) i=h.z g=X.xj(new S.afe(T.anQ(new S.Qu(g,p,o,n,m,l,k,q,j,i===$?H.e(H.t("preferBelow")):i,null),r.f)),!1) h.cx=g s.Ni(0,g) S.a4C(h.a.c)}, IH:function(){var s=this,r=s.cy if(r!=null)r.aH(0) s.cy=null r=s.db if(r!=null)r.aH(0) s.db=null r=s.cx if(r!=null)r.c4(0) s.cx=null}, a1p:function(a){if(this.cx==null)return if(t.oN.b(a)||t.Ko.b(a))this.Hr() else if(t.pY.b(a))this.tf(!0)}, e0:function(){var s,r=this if(r.cx!=null)r.tf(!0) s=r.db if(s!=null)s.aH(0) r.oh()}, p:function(a){var s=this $.f1.k4$.b.u(0,s.gHk()) $.lA.y2$.T(0,s.gHj()) if(s.cx!=null)s.IH() s.gmJ().p(0) s.UT(0)}, a0S:function(){this.fx=!0 if(this.Mo()){var s=this.c s.toString M.ao4(s)}}, H:function(a,b){var s,r,q,p,o,n,m=this,l=null,k=K.aA(b) b.a0(t.U4) s=K.aA(b) r=s.A s=k.S q=k.ac.z if(s.cx===C.a2){q.toString p=q.LN(C.t,m.GQ()) o=new S.dM(P.aI(C.d.aO(229.5),255,255,255),l,l,C.dR,l,l,C.ac)}else{q.toString p=q.LN(C.j,m.GQ()) s=C.aa.i(0,700) s.toString s=s.a o=new S.dM(P.aI(C.d.aO(229.5),s>>>16&255,s>>>8&255,s&255),l,l,C.dR,l,l,C.ac)}m.a.toString s=r.a m.d=s==null?m.a_t():s m.a.toString s=r.b m.e=s==null?m.a_s():s s=m.a s.toString q=r.c m.f=q==null?C.aF:q q=r.d m.y=q==null?24:q r.toString m.z=!0 r.toString m.Q=!1 q=r.r m.r=q==null?o:q q=r.x m.x=q==null?p:q r.toString m.dy=C.G r.toString m.dx=C.qc n=D.pT(C.bh,T.cu(l,s.z,!1,l,l,!1,l,l,l,l,s.c,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l),C.a4,!0,l,l,l,l,l,l,l,m.ga0R(),l,l,l,l,l,l,l,l,l,l,l) return m.gI1()?new T.hY(new S.afg(m),l,new S.afh(m),C.cT,!0,n,l):n}} S.aff.prototype={ $0:function(){this.a.fr=this.b}, $S:0} S.afe.prototype={ $1:function(a){return this.a}, $S:30} S.afg.prototype={ $1:function(a){return this.a.a5e()}, $S:59} S.afh.prototype={ $1:function(a){return this.a.Hr()}, $S:37} S.afd.prototype={ qU:function(a){return a.qc()}, r0:function(a,b){return N.aFW(b,this.d,a,this.b,this.c)}, m4:function(a){return!this.b.k(0,a.b)||this.c!=a.c||this.d!=a.d}} S.Qu.prototype={ H:function(a,b){var s=this,r=null,q=K.aA(b).ac.z q.toString return new T.nN(0,0,0,0,r,r,new T.hP(!0,r,new T.l4(new S.afd(s.z,s.Q,s.ch),K.pM(!1,new T.hF(new S.aN(0,1/0,s.d,1/0),L.mH(M.ap(r,T.kZ(L.ba(s.c,r,r,r,r,s.x,r,r),1,1),r,r,s.r,r,s.f,s.e,r),r,r,C.bL,!0,q,r,r,C.av),r),s.y),r),r),r)}} S.Cr.prototype={ p:function(a){this.bh(0)}, aG:function(){var s,r=this.cc$ if(r!=null){s=this.c s.toString r.sdE(0,!U.dm(s))}this.cq()}} T.zf.prototype={ gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,s.f,s.r,s.x,null,null,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s,r=this if(b==null)return!1 if(r===b)return!0 if(J.N(b)!==H.E(r))return!1 if(b instanceof T.zf)if(b.a==r.a)if(J.d(b.b,r.b))if(J.d(b.c,r.c))if(b.d==r.d)if(J.d(b.r,r.r))if(J.d(b.x,r.x))s=!0 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 return s}} T.Qv.prototype={} U.yb.prototype={ j:function(a){return this.b}} U.zk.prototype={ Pz:function(a){switch(a){case C.hI:return this.c case C.Bw:return this.d case C.Bx:return this.e default:throw H.a(H.j(u.I))}}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof U.zk&&J.d(b.a,s.a)&&J.d(b.b,s.b)&&b.c.k(0,s.c)&&b.d.k(0,s.d)&&b.e.k(0,s.e)}, gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,s.e,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}} U.QP.prototype={} K.D4.prototype={ j:function(a){var s=this if(s.ghT(s)===0)return K.aj_(s.ghV(),s.ghW()) if(s.ghV()===0)return K.aiZ(s.ghT(s),s.ghW()) return K.aj_(s.ghV(),s.ghW())+" + "+K.aiZ(s.ghT(s),0)}, k:function(a,b){var s=this if(b==null)return!1 return b instanceof K.D4&&b.ghV()==s.ghV()&&b.ghT(b)==s.ghT(s)&&b.ghW()==s.ghW()}, gt:function(a){var s=this return P.a5(s.ghV(),s.ghT(s),s.ghW(),C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}} K.dK.prototype={ ghV:function(){return this.a}, ghT:function(a){return 0}, ghW:function(){return this.b}, a5:function(a,b){return new K.dK(this.a-b.a,this.b-b.b)}, U:function(a,b){return new K.dK(this.a+b.a,this.b+b.b)}, a4:function(a,b){return new K.dK(this.a*b,this.b*b)}, mQ:function(a){var s=a.a/2,r=a.b/2 return new P.m(s+this.a*s,r+this.b*r)}, zU:function(a){var s=a.a/2,r=a.b/2 return new P.m(s+this.a*s,r+this.b*r)}, abg:function(a,b){var s=b.a,r=a.a,q=(b.c-s-r)/2,p=b.b,o=a.b,n=(b.d-p-o)/2 s=s+q+this.a*q p=p+n+this.b*n return new P.x(s,p,s+r,p+o)}, ak:function(a){return this}, j:function(a){return K.aj_(this.a,this.b)}} K.iv.prototype={ ghV:function(){return 0}, ghT:function(a){return this.a}, ghW:function(){return this.b}, a5:function(a,b){return new K.iv(this.a-b.a,this.b-b.b)}, U:function(a,b){return new K.iv(this.a+b.a,this.b+b.b)}, a4:function(a,b){return new K.iv(this.a*b,this.b*b)}, ak:function(a){var s=this a.toString switch(a){case C.p:return new K.dK(-s.a,s.b) case C.m:return new K.dK(s.a,s.b) default:throw H.a(H.j(u.I))}}, j:function(a){return K.aiZ(this.a,this.b)}} K.NJ.prototype={ a4:function(a,b){return new K.NJ(this.a*b,this.b*b,this.c*b)}, ak:function(a){var s=this a.toString switch(a){case C.p:return new K.dK(s.a-s.b,s.c) case C.m:return new K.dK(s.a+s.b,s.c) default:throw H.a(H.j(u.I))}}, ghV:function(){return this.a}, ghT:function(a){return this.b}, ghW:function(){return this.c}} K.K3.prototype={ j:function(a){return"TextAlignVertical(y: "+this.a+")"}} G.qK.prototype={ j:function(a){return this.b}} G.Dj.prototype={ j:function(a){return this.b}} G.KA.prototype={ j:function(a){return this.b}} G.pg.prototype={ j:function(a){return this.b}} N.Ho.prototype={ Nl:function(a,b,c,d){return P.alz(a,!1,c,d)}, abj:function(a){return this.Nl(a,!1,null,null)}} N.Q5.prototype={ aa:function(){for(var s=this.a,s=P.cq(s,s.r,H.u(s).c);s.q();)s.d.$0()}, aQ:function(a,b){this.a.B(0,b)}, T:function(a,b){this.a.u(0,b)}} K.uS.prototype={ wz:function(a){var s=this return new K.AR(s.gec().a5(0,a.gec()),s.gfN().a5(0,a.gfN()),s.gfG().a5(0,a.gfG()),s.ghd().a5(0,a.ghd()),s.ged().a5(0,a.ged()),s.gfM().a5(0,a.gfM()),s.ghe().a5(0,a.ghe()),s.gfF().a5(0,a.gfF()))}, B:function(a,b){var s=this return new K.AR(s.gec().U(0,b.gec()),s.gfN().U(0,b.gfN()),s.gfG().U(0,b.gfG()),s.ghd().U(0,b.ghd()),s.ged().U(0,b.ged()),s.gfM().U(0,b.gfM()),s.ghe().U(0,b.ghe()),s.gfF().U(0,b.gfF()))}, j:function(a){var s,r,q,p,o=this,n="BorderRadius.only(",m="BorderRadiusDirectional.only(" if(J.d(o.gec(),o.gfN())&&J.d(o.gfN(),o.gfG())&&J.d(o.gfG(),o.ghd()))if(!J.d(o.gec(),C.a5))s=o.gec().a===o.gec().b?"BorderRadius.circular("+C.d.ba(o.gec().a,1)+")":"BorderRadius.all("+H.c(o.gec())+")" else s=null else{if(!J.d(o.gec(),C.a5)){r=n+("topLeft: "+H.c(o.gec())) q=!0}else{r=n q=!1}if(!J.d(o.gfN(),C.a5)){if(q)r+=", " r+="topRight: "+H.c(o.gfN()) q=!0}if(!J.d(o.gfG(),C.a5)){if(q)r+=", " r+="bottomLeft: "+H.c(o.gfG()) q=!0}if(!J.d(o.ghd(),C.a5)){if(q)r+=", " r+="bottomRight: "+H.c(o.ghd())}r+=")" s=r.charCodeAt(0)==0?r:r}if(o.ged().k(0,o.gfM())&&o.gfM().k(0,o.gfF())&&o.gfF().k(0,o.ghe()))if(!o.ged().k(0,C.a5))p=o.ged().a===o.ged().b?"BorderRadiusDirectional.circular("+C.d.ba(o.ged().a,1)+")":"BorderRadiusDirectional.all("+o.ged().j(0)+")" else p=null else{if(!o.ged().k(0,C.a5)){r=m+("topStart: "+o.ged().j(0)) q=!0}else{r=m q=!1}if(!o.gfM().k(0,C.a5)){if(q)r+=", " r+="topEnd: "+o.gfM().j(0) q=!0}if(!o.ghe().k(0,C.a5)){if(q)r+=", " r+="bottomStart: "+o.ghe().j(0) q=!0}if(!o.gfF().k(0,C.a5)){if(q)r+=", " r+="bottomEnd: "+o.gfF().j(0)}r+=")" p=r.charCodeAt(0)==0?r:r}r=s!=null if(r&&p!=null)return H.c(s)+" + "+p if(r)return s if(p!=null)return p return"BorderRadius.zero"}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof K.uS&&J.d(b.gec(),s.gec())&&J.d(b.gfN(),s.gfN())&&J.d(b.gfG(),s.gfG())&&J.d(b.ghd(),s.ghd())&&b.ged().k(0,s.ged())&&b.gfM().k(0,s.gfM())&&b.ghe().k(0,s.ghe())&&b.gfF().k(0,s.gfF())}, gt:function(a){var s=this return P.a5(s.gec(),s.gfN(),s.gfG(),s.ghd(),s.ged(),s.gfM(),s.ghe(),s.gfF(),C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}} K.d1.prototype={ gec:function(){return this.a}, gfN:function(){return this.b}, gfG:function(){return this.c}, ghd:function(){return this.d}, ged:function(){return C.a5}, gfM:function(){return C.a5}, ghe:function(){return C.a5}, gfF:function(){return C.a5}, h6:function(a){var s=this return P.a1I(a,s.c,s.d,s.a,s.b)}, wz:function(a){if(a instanceof K.d1)return this.a5(0,a) return this.Re(a)}, B:function(a,b){if(b instanceof K.d1)return this.U(0,b) return this.Rd(0,b)}, a5:function(a,b){var s=this return new K.d1(s.a.a5(0,b.a),s.b.a5(0,b.b),s.c.a5(0,b.c),s.d.a5(0,b.d))}, U:function(a,b){var s=this return new K.d1(s.a.U(0,b.a),s.b.U(0,b.b),s.c.U(0,b.c),s.d.U(0,b.d))}, a4:function(a,b){var s=this return new K.d1(s.a.a4(0,b),s.b.a4(0,b),s.c.a4(0,b),s.d.a4(0,b))}, ak:function(a){return this}} K.AR.prototype={ a4:function(a,b){var s=this return new K.AR(s.a.a4(0,b),s.b.a4(0,b),s.c.a4(0,b),s.d.a4(0,b),s.e.a4(0,b),s.f.a4(0,b),s.r.a4(0,b),s.x.a4(0,b))}, ak:function(a){var s=this a.toString switch(a){case C.p:return new K.d1(s.a.U(0,s.f),s.b.U(0,s.e),s.c.U(0,s.x),s.d.U(0,s.r)) case C.m:return new K.d1(s.a.U(0,s.e),s.b.U(0,s.f),s.c.U(0,s.r),s.d.U(0,s.x)) default:throw H.a(H.j(u.I))}}, gec:function(){return this.a}, gfN:function(){return this.b}, gfG:function(){return this.c}, ghd:function(){return this.d}, ged:function(){return this.e}, gfM:function(){return this.f}, ghe:function(){return this.r}, gfF:function(){return this.x}} Y.Du.prototype={ j:function(a){return this.b}} Y.dL.prototype={ bp:function(a,b){var s=Math.max(0,this.b*b),r=b<=0?C.a8:this.c return new Y.dL(this.a,s,r)}, lQ:function(){switch(this.c){case C.a_:var s=H.aF() s=s?H.b_():new H.aR(new H.aT()) s.sap(0,this.a) s.shL(this.b) s.sdf(0,C.ab) return s case C.a8:s=H.aF() s=s?H.b_():new H.aR(new H.aT()) s.sap(0,C.aP) s.shL(0) s.sdf(0,C.ab) return s default:throw H.a(H.j(u.I))}}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof Y.dL&&J.d(b.a,s.a)&&b.b===s.b&&b.c===s.c}, gt:function(a){return P.a5(this.a,this.b,this.c,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){return"BorderSide("+H.c(this.a)+", "+C.d.ba(this.b,1)+", "+this.c.j(0)+")"}} Y.c5.prototype={ fP:function(a,b,c){return null}, B:function(a,b){return this.fP(a,b,!1)}, U:function(a,b){var s=this.B(0,b) if(s==null)s=b.fP(0,this,!0) return s==null?new Y.hp(H.b([b,this],t.N_)):s}, dO:function(a,b){if(a==null)return this.bp(0,b) return null}, dP:function(a,b){if(a==null)return this.bp(0,1-b) return null}, j:function(a){return"ShapeBorder()"}} Y.jW.prototype={} Y.hp.prototype={ giO:function(){return C.b.lo(this.a,C.aF,new Y.a9i())}, fP:function(a,b,c){var s,r,q,p=b instanceof Y.hp if(!p){s=this.a r=c?C.b.gL(s):C.b.gI(s) q=r.fP(0,b,c) if(q==null)q=b.fP(0,r,!c) if(q!=null){p=P.an(s,!0,t.RY) p[c?p.length-1:0]=q return new Y.hp(p)}}s=H.b([],t.N_) if(c)C.b.J(s,this.a) if(p)C.b.J(s,b.a) else s.push(b) if(!c)C.b.J(s,this.a) return new Y.hp(s)}, B:function(a,b){return this.fP(a,b,!1)}, bp:function(a,b){var s=this.a,r=H.Y(s).h("Z<1,c5>") return new Y.hp(P.an(new H.Z(s,new Y.a9j(b),r),!0,r.h("av.E")))}, dO:function(a,b){return Y.aqa(a,this,b)}, dP:function(a,b){return Y.aqa(this,a,b)}, h9:function(a,b){return C.b.gI(this.a).h9(a,b)}, ks:function(a,b,c){var s,r,q,p for(s=this.a,r=s.length,q=0;q") return new H.Z(new H.bI(s,r),new Y.a9k(),r.h("Z")).bI(0," + ")}} Y.a9i.prototype={ $2:function(a,b){return a.B(0,b.giO())}, $S:227} Y.a9j.prototype={ $1:function(a){return a.bp(0,this.a)}, $S:228} Y.a9k.prototype={ $1:function(a){return J.bB(a)}, $S:229} F.Dz.prototype={ j:function(a){return this.b}} F.Dw.prototype={ fP:function(a,b,c){return null}, B:function(a,b){return this.fP(a,b,!1)}, h9:function(a,b){var s=P.dh() s.jK(0,a) return s}} F.da.prototype={ giO:function(){var s=this return new V.X(s.d.b,s.a.b,s.b.b,s.c.b)}, gFJ:function(){var s=this,r=s.a.a return J.d(s.b.a,r)&&J.d(s.c.a,r)&&J.d(s.d.a,r)}, gKJ:function(){var s=this,r=s.a.b return s.b.b===r&&s.c.b===r&&s.d.b===r}, gJF:function(){var s=this,r=s.a.c return s.b.c===r&&s.c.c===r&&s.d.c===r}, fP:function(a,b,c){var s=this if(b instanceof F.da&&Y.jr(s.a,b.a)&&Y.jr(s.b,b.b)&&Y.jr(s.c,b.c)&&Y.jr(s.d,b.d))return new F.da(Y.hA(s.a,b.a),Y.hA(s.b,b.b),Y.hA(s.c,b.c),Y.hA(s.d,b.d)) return null}, B:function(a,b){return this.fP(a,b,!1)}, bp:function(a,b){var s=this return new F.da(s.a.bp(0,b),s.b.bp(0,b),s.c.bp(0,b),s.d.bp(0,b))}, dO:function(a,b){if(a instanceof F.da)return F.aj5(a,this,b) return this.ma(a,b)}, dP:function(a,b){if(a instanceof F.da)return F.aj5(this,a,b) return this.mb(a,b)}, vv:function(a,b,c,d,e){var s,r=this,q=u.I if(r.gFJ()&&r.gKJ()&&r.gJF()){s=r.a switch(s.c){case C.a8:return case C.a_:switch(d){case C.bb:F.anr(a,b,s) break case C.ac:if(c!=null){F.ans(a,b,s,c) return}F.ant(a,b,s) break default:throw H.a(H.j(q))}return default:throw H.a(H.j(q))}}Y.alF(a,b,r.c,r.d,r.b,r.a)}, ks:function(a,b,c){return this.vv(a,b,null,C.ac,c)}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof F.da&&J.d(b.a,s.a)&&J.d(b.b,s.b)&&J.d(b.c,s.c)&&J.d(b.d,s.d)}, gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){var s,r,q=this if(q.gFJ()&&q.gKJ()&&q.gJF())return"Border.all("+H.c(q.a)+")" s=H.b([],t.s) r=q.a if(!J.d(r,C.q))s.push("top: "+H.c(r)) r=q.b if(!J.d(r,C.q))s.push("right: "+H.c(r)) r=q.c if(!J.d(r,C.q))s.push("bottom: "+H.c(r)) r=q.d if(!J.d(r,C.q))s.push("left: "+H.c(r)) return"Border("+C.b.bI(s,", ")+")"}} F.e8.prototype={ giO:function(){var s=this return new V.fm(s.b.b,s.a.b,s.c.b,s.d.b)}, gabC:function(){var s,r,q=this,p=q.a,o=p.a,n=q.b if(!J.d(n.a,o)||!J.d(q.c.a,o)||!J.d(q.d.a,o))return!1 s=p.b if(n.b!==s||q.c.b!==s||q.d.b!==s)return!1 r=p.c if(n.c!==r||q.c.c!==r||q.d.c!==r)return!1 return!0}, fP:function(a,b,c){var s,r,q,p=this,o=null if(b instanceof F.e8){s=p.a r=b.a if(Y.jr(s,r)&&Y.jr(p.b,b.b)&&Y.jr(p.c,b.c)&&Y.jr(p.d,b.d))return new F.e8(Y.hA(s,r),Y.hA(p.b,b.b),Y.hA(p.c,b.c),Y.hA(p.d,b.d)) return o}if(b instanceof F.da){s=b.a r=p.a if(!Y.jr(s,r)||!Y.jr(b.c,p.d))return o q=p.b if(!J.d(q,C.q)||!J.d(p.c,C.q)){if(!J.d(b.d,C.q)||!J.d(b.b,C.q))return o return new F.e8(Y.hA(s,r),q,p.c,Y.hA(b.c,p.d))}return new F.da(Y.hA(s,r),b.b,Y.hA(b.c,p.d),b.d)}return o}, B:function(a,b){return this.fP(a,b,!1)}, bp:function(a,b){var s=this return new F.e8(s.a.bp(0,b),s.b.bp(0,b),s.c.bp(0,b),s.d.bp(0,b))}, dO:function(a,b){if(a instanceof F.e8)return F.aj4(a,this,b) return this.ma(a,b)}, dP:function(a,b){if(a instanceof F.e8)return F.aj4(this,a,b) return this.mb(a,b)}, vv:function(a,b,c,d,e){var s,r,q,p=this,o=u.I if(p.gabC()){s=p.a switch(s.c){case C.a8:return case C.a_:switch(d){case C.bb:F.anr(a,b,s) break case C.ac:if(c!=null){F.ans(a,b,s,c) return}F.ant(a,b,s) break default:throw H.a(H.j(o))}return default:throw H.a(H.j(o))}}e.toString switch(e){case C.p:r=p.c q=p.b break case C.m:r=p.b q=p.c break default:throw H.a(H.j(o))}Y.alF(a,b,p.d,r,q,p.a)}, ks:function(a,b,c){return this.vv(a,b,null,C.ac,c)}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof F.e8&&J.d(b.a,s.a)&&J.d(b.b,s.b)&&J.d(b.c,s.c)&&J.d(b.d,s.d)}, gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){var s=this,r=H.b([],t.s),q=s.a if(!J.d(q,C.q))r.push("top: "+H.c(q)) q=s.b if(!J.d(q,C.q))r.push("start: "+H.c(q)) q=s.c if(!J.d(q,C.q))r.push("end: "+H.c(q)) q=s.d if(!J.d(q,C.q))r.push("bottom: "+H.c(q)) return"BorderDirectional("+C.b.bI(r,", ")+")"}} S.dM.prototype={ gek:function(a){var s=this.c return s==null?null:s.giO()}, bp:function(a,b){var s=this,r=null,q=P.K(r,s.a,b),p=F.anu(r,s.c,b),o=K.mw(r,s.d,b),n=O.anx(r,s.e,b) return new S.dM(q,s.b,p,o,n,r,s.x)}, gBF:function(){return this.e!=null}, dO:function(a,b){if(a==null)return this.bp(0,b) if(a instanceof S.dM)return S.anv(a,this,b) return this.Ed(a,b)}, dP:function(a,b){if(a==null)return this.bp(0,1-b) if(a instanceof S.dM)return S.anv(this,a,b) return this.Ee(a,b)}, k:function(a,b){var s,r=this if(b==null)return!1 if(r===b)return!0 if(J.N(b)!==H.E(r))return!1 if(b instanceof S.dM)if(J.d(b.a,r.a))if(J.d(b.b,r.b))if(J.d(b.c,r.c))if(J.d(b.d,r.d))if(S.cx(b.e,r.e))s=b.x===r.x else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 return s}, gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,P.em(s.e),s.f,s.x,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, Nc:function(a,b,c){var s,r,q switch(this.x){case C.ac:s=this.d if(s!=null)return s.ak(c).h6(new P.x(0,0,0+a.a,0+a.b)).C(0,b) return!0 case C.bb:r=b.a5(0,a.jS(C.i)).gdB() s=a.a q=a.b return r<=Math.min(H.B(s),H.B(q))/2 default:throw H.a(H.j(u.I))}}, po:function(a){return new S.t7(this,a)}} S.t7.prototype={ I9:function(a,b,c,d){var s=this.b switch(s.x){case C.bb:a.eB(0,b.gbn(),b.gkJ()/2,c) break case C.ac:s=s.d if(s==null)a.ck(0,b,c) else a.ct(0,s.ak(d).h6(b),c) break default:throw H.a(H.j(u.I))}}, a3x:function(a,b,c){var s,r,q,p,o,n,m=this.b.e if(m==null)return for(s=m.length,r=0;r").b(b)&&S.S2(b.b,s.b)}, gt:function(a){return P.a5(H.E(this),this.a,this.b,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){return"ColorSwatch(primary value: "+this.RE(0)+")"}} Z.f_.prototype={ cp:function(){return"Decoration"}, gek:function(a){return C.aF}, gBF:function(){return!1}, dO:function(a,b){return null}, dP:function(a,b){return null}, Nc:function(a,b,c){return!0}} Z.kS.prototype={ p:function(a){}} Z.M3.prototype={} X.pX.prototype={ j:function(a){return this.b}} X.EH.prototype={ k:function(a,b){if(b==null)return!1 if(this===b)return!0 if(J.N(b)!==H.E(this))return!1 b instanceof X.EH return!1}, gt:function(a){return P.a5(this.a,null,null,C.ar,null,C.bV,!1,1,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){var s=H.b([H.c(this.a)],t.s) s.push(C.ar.j(0)) s.push("scale: 1") return"DecorationImage("+C.b.bI(s,", ")+")"}} X.EI.prototype={ ad0:function(a,b,c,d){var s,r,q=this,p=null,o=q.a,n=o.a.ak(d) n.gdN(n) q.c=n n.aQ(0,new L.h7(q.ga0K(),p,o.b)) if(q.d==null)return o=c!=null if(o){a.bu(0) a.fh(0,c)}s=q.d r=s.a X.ast(C.ar,a,p,p,s.c,C.jP,p,!1,r,!1,!1,b,C.bV,s.b) if(o)a.bj(0)}, a0L:function(a,b){var s,r,q=this if(J.d(q.d,a))return s=q.d if(s!=null)if(a.a.BE(s.a)){r=s.b s=r===r&&a.c==s.c}else s=!1 else s=!1 if(s){a.a.p(0) return}s=q.d if(s!=null)s.a.p(0) q.d=a if(!b)q.b.$0()}, j:function(a){return"DecorationImagePainter(stream: "+H.c(this.c)+", image: "+H.c(this.d)+") for "+this.a.j(0)}} V.dr.prototype={ gi8:function(){var s=this return s.gdX(s)+s.gdZ(s)+s.geP(s)+s.geQ()}, a79:function(a){var s=this switch(a){case C.o:return s.gi8() case C.n:return s.gcA(s)+s.gcH(s) default:throw H.a(H.j(u.I))}}, B:function(a,b){var s=this return new V.m0(s.gdX(s)+b.gdX(b),s.gdZ(s)+b.gdZ(b),s.geP(s)+b.geP(b),s.geQ()+b.geQ(),s.gcA(s)+b.gcA(b),s.gcH(s)+b.gcH(b))}, a6:function(a,b,c){var s=this return new V.m0(J.aW(s.gdX(s),b.a,c.a),J.aW(s.gdZ(s),b.c,c.b),J.aW(s.geP(s),0,c.c),J.aW(s.geQ(),0,c.d),J.aW(s.gcA(s),b.b,c.e),J.aW(s.gcH(s),b.d,c.f))}, j:function(a){var s=this if(s.geP(s)===0&&s.geQ()===0){if(s.gdX(s)===0&&s.gdZ(s)===0&&s.gcA(s)===0&&s.gcH(s)===0)return"EdgeInsets.zero" if(s.gdX(s)==s.gdZ(s)&&s.gdZ(s)==s.gcA(s)&&s.gcA(s)==s.gcH(s))return"EdgeInsets.all("+J.aU(s.gdX(s),1)+")" return"EdgeInsets("+J.aU(s.gdX(s),1)+", "+J.aU(s.gcA(s),1)+", "+J.aU(s.gdZ(s),1)+", "+J.aU(s.gcH(s),1)+")"}if(s.gdX(s)===0&&s.gdZ(s)===0)return"EdgeInsetsDirectional("+J.aU(s.geP(s),1)+", "+J.aU(s.gcA(s),1)+", "+J.aU(s.geQ(),1)+", "+J.aU(s.gcH(s),1)+")" return"EdgeInsets("+J.aU(s.gdX(s),1)+", "+J.aU(s.gcA(s),1)+", "+J.aU(s.gdZ(s),1)+", "+J.aU(s.gcH(s),1)+") + EdgeInsetsDirectional("+J.aU(s.geP(s),1)+", 0.0, "+J.aU(s.geQ(),1)+", 0.0)"}, k:function(a,b){var s=this if(b==null)return!1 return b instanceof V.dr&&b.gdX(b)==s.gdX(s)&&b.gdZ(b)==s.gdZ(s)&&b.geP(b)==s.geP(s)&&b.geQ()==s.geQ()&&b.gcA(b)==s.gcA(s)&&b.gcH(b)==s.gcH(s)}, gt:function(a){var s=this return P.a5(s.gdX(s),s.gdZ(s),s.geP(s),s.geQ(),s.gcA(s),s.gcH(s),C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}} V.X.prototype={ gdX:function(a){return this.a}, gcA:function(a){return this.b}, gdZ:function(a){return this.c}, gcH:function(a){return this.d}, geP:function(a){return 0}, geQ:function(){return 0}, Bz:function(a){var s=this return new P.x(a.a-s.a,a.b-s.b,a.c+s.c,a.d+s.d)}, AA:function(a){var s=this return new P.x(a.a+s.a,a.b+s.b,a.c-s.c,a.d-s.d)}, B:function(a,b){if(b instanceof V.X)return this.U(0,b) return this.Ef(0,b)}, a6:function(a,b,c){var s=this return new V.X(J.aW(s.a,b.a,c.a),J.aW(s.b,b.b,c.e),J.aW(s.c,b.c,c.b),J.aW(s.d,b.d,c.f))}, a5:function(a,b){var s=this return new V.X(s.a-b.a,s.b-b.b,s.c-b.c,s.d-b.d)}, U:function(a,b){var s=this return new V.X(s.a+b.a,s.b+b.b,s.c+b.c,s.d+b.d)}, a4:function(a,b){var s=this return new V.X(s.a*b,s.b*b,s.c*b,s.d*b)}, ak:function(a){return this}, pm:function(a,b,c,d){var s=this,r=b==null?s.a:b,q=d==null?s.b:d,p=c==null?s.c:c return new V.X(r,q,p,a==null?s.d:a)}, ul:function(a){return this.pm(a,null,null,null)}} V.fm.prototype={ geP:function(a){return this.a}, gcA:function(a){return this.b}, geQ:function(){return this.c}, gcH:function(a){return this.d}, gdX:function(a){return 0}, gdZ:function(a){return 0}, B:function(a,b){if(b instanceof V.fm)return this.U(0,b) return this.Ef(0,b)}, a5:function(a,b){var s=this return new V.fm(s.a-b.a,s.b-b.b,s.c-b.c,s.d-b.d)}, U:function(a,b){var s=this return new V.fm(s.a+b.a,s.b+b.b,s.c+b.c,s.d+b.d)}, a4:function(a,b){var s=this return new V.fm(s.a*b,s.b*b,s.c*b,s.d*b)}, ak:function(a){var s=this a.toString switch(a){case C.p:return new V.X(s.c,s.b,s.a,s.d) case C.m:return new V.X(s.a,s.b,s.c,s.d) default:throw H.a(H.j(u.I))}}} V.m0.prototype={ a4:function(a,b){var s=this return new V.m0(s.a*b,s.b*b,s.c*b,s.d*b,s.e*b,s.f*b)}, ak:function(a){var s=this a.toString switch(a){case C.p:return new V.X(s.d+s.a,s.e,s.c+s.b,s.f) case C.m:return new V.X(s.c+s.a,s.e,s.d+s.b,s.f) default:throw H.a(H.j(u.I))}}, gdX:function(a){return this.a}, gdZ:function(a){return this.b}, geP:function(a){return this.c}, geQ:function(){return this.d}, gcA:function(a){return this.e}, gcH:function(a){return this.f}} E.Z2.prototype={ az:function(a){var s,r for(s=this.b,r=s.gaZ(s),r=r.gM(r);r.q();)r.gw(r).p(0) s.az(0) this.a.az(0) this.f=0}, Mr:function(a){var s,r,q,p=this,o=p.c.u(0,a) if(o!=null){s=o.a r=o.gyp() if(s.r)H.e(P.a4(u.E)) C.b.u(s.x,r) o.EH(0)}q=p.a.u(0,a) if(q!=null){q.a.T(0,q.b) return!0}o=p.b.u(0,a) if(o!=null){s=p.f r=o.b r.toString p.f=s-r o.p(0) return!0}return!1}, K_:function(a,b,c){var s,r=this,q=b.b if(q!=null&&q<=104857600&&!0){s=r.f q.toString r.f=s+q r.b.n(0,a,b) r.Yj(c)}else b.p(0)}, zq:function(a,b,c){var s=this.c.bX(0,a,new E.Z4(this,b,a)) if(s.b==null)s.b=c}, OA:function(a,b,c,d){var s,r,q,p,o,n,m,l,k,j=this,i=null,h={} h.a=h.b=null q=j.a p=q.i(0,b) o=p==null?i:p.a h.c=o if(o!=null)return o p=j.b n=p.u(0,b) if(n!=null){h=n.a j.zq(b,h,n.b) p.n(0,b,n) return h}m=j.c.i(0,b) if(m!=null){h=m.a q=m.b if(h.r)H.e(P.a4(u.E)) p=new L.pZ(h) p.rw(h) j.K_(b,new E.zG(h,q,p),i) return h}try{o=h.c=c.$0() j.zq(b,o,i) p=o}catch(l){s=H.U(l) r=H.aB(l) d.$2(s,r) return i}h.d=!1 h.e=null k=new L.h7(new E.Z5(h,j,b),i,i) q.n(0,b,new E.Oe(p,k)) h.c.aQ(0,k) return h.c}, Yj:function(a){var s,r,q,p,o,n=this,m=n.b while(!0){if(!(n.f>104857600||m.gl(m)>1000))break s=m.gaj(m) r=s.gM(s) if(!r.q())H.e(H.bR()) q=r.gw(r) p=m.i(0,q) s=n.f o=p.b o.toString n.f=s-o p.p(0) m.u(0,q)}}} E.Z4.prototype={ $0:function(){return E.aCc(this.b,new E.Z3(this.a,this.c))}, $S:231} E.Z3.prototype={ $0:function(){this.a.c.u(0,this.b)}, $S:0} E.Z5.prototype={ $2:function(a,b){var s,r,q,p,o,n if(a!=null){s=a.a r=s.gai(s)*s.gay(s)*4 s.p(0)}else r=null s=this.a q=s.c if(q.r)H.e(P.a4(u.E)) p=new L.pZ(q) p.rw(q) o=new E.zG(q,r,p) p=this.b q=this.c p.zq(q,s.c,r) if(s.e==null)p.K_(q,o,s.a) else o.p(0) n=s.e if(n==null)n=p.a.u(0,q) if(n!=null)n.a.T(0,n.b) s.d=!0}, $C:"$2", $R:2, $S:232} E.Lq.prototype={ p:function(a){$.bT.ch$.push(new E.a99(this))}} E.a99.prototype={ $1:function(a){var s=this.a,r=s.c if(r!=null)r.p(0) s.c=null}, $S:2} E.zG.prototype={} E.tI.prototype={ Xd:function(a,b,c){var s this.d=new E.abs(this,b) s=this.gyp() if(a.r)H.e(P.a4(u.E)) a.x.push(s)}, gyp:function(){var s=this.d return s===$?H.e(H.t("_handleRemove")):s}, j:function(a){return"#"+Y.cf(this)}} E.abs.prototype={ $0:function(){var s,r,q this.b.$0() s=this.a r=s.a q=s.gyp() if(r.r)H.e(P.a4(u.E)) C.b.u(r.x,q) s.EH(0)}, $C:"$0", $R:0, $S:0} E.Oe.prototype={} M.nb.prototype={ An:function(a){var s=this,r=a==null?s.e:a return new M.nb(s.a,s.b,s.c,s.d,r,s.f)}, k:function(a,b){var s=this if(b==null)return!1 if(J.N(b)!==H.E(s))return!1 return b instanceof M.nb&&b.a==s.a&&b.b==s.b&&J.d(b.c,s.c)&&b.d==s.d&&J.d(b.e,s.e)&&b.f==s.f}, gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.e,s.f,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){var s,r,q=this,p="ImageConfiguration(",o=q.a if(o!=null){o=p+("bundle: "+o.j(0)) s=!0}else{o=p s=!1}r=q.b if(r!=null){if(s)o+=", " r=o+("devicePixelRatio: "+C.d.ba(r,1)) o=r s=!0}r=q.c if(r!=null){if(s)o+=", " r=o+("locale: "+r.j(0)) o=r s=!0}r=q.d if(r!=null){if(s)o+=", " r=o+("textDirection: "+r.j(0)) o=r s=!0}r=q.e if(r!=null){if(s)o+=", " r=o+("size: "+r.j(0)) o=r s=!0}r=q.f if(r!=null){if(s)o+=", " r=o+("platform: "+Y.as6(r)) o=r}o+=")" return o.charCodeAt(0)==0?o:o}} M.hR.prototype={ ak:function(a){var s=new L.Ze() this.YP(a,new M.Zc(this,a,s),new M.Zd(this,s,a)) return s}, YP:function(a,b,c){var s,r=null,q={} q.a=null q.b=!1 s=new M.Z9(q,c) $.R.MU(new P.oQ(new M.Z7(s),r,r,r,r,r,r,r,r,r,r,r,r)).kC(new M.Z8(q,this,a,s,b))}, qH:function(a,b,c,d){var s if(b.a!=null){$.iS.kb$.OA(0,c,new M.Za(b),d) return}s=$.iS.kb$.OA(0,c,new M.Zb(this,c),d) if(s!=null)b.DE(s)}, j:function(a){return"ImageConfiguration()"}} M.Zc.prototype={ $2:function(a,b){this.a.qH(this.b,this.c,a,b)}, $S:function(){return H.u(this.a).h("~(hR.T,~(z,bA?))")}} M.Zd.prototype={ $3:function(a,b,c){return this.Pv(a,b,c)}, Pv:function(a,b,c){var s=0,r=P.af(t.H),q=this,p var $async$$3=P.a9(function(d,e){if(d===1)return P.ac(e,r) while(true)switch(s){case 0:s=2 return P.ak(null,$async$$3) case 2:p=new M.aaj(H.b([],t.XZ),H.b([],t.u)) q.b.DE(p) p.vH(U.bE("while resolving an image"),b,null,!0,c) return P.ad(null,r)}}) return P.ae($async$$3,r)}, $S:function(){return H.u(this.a).h("ax<~>(hR.T?,z,bA?)")}} M.Z9.prototype={ Pu:function(a,b){var s=0,r=P.af(t.H),q,p=this,o var $async$$2=P.a9(function(c,d){if(c===1)return P.ac(d,r) while(true)switch(s){case 0:o=p.a if(o.b){s=1 break}p.b.$3(o.a,a,b) o.b=!0 case 1:return P.ad(q,r)}}) return P.ae($async$$2,r)}, $2:function(a,b){return this.Pu(a,b)}, $C:"$2", $R:2, $S:233} M.Z7.prototype={ $5:function(a,b,c,d,e){this.a.$2(d,e)}, $S:107} M.Z8.prototype={ $0:function(){var s,r,q,p,o=this,n=null try{n=o.b.C5(o.c)}catch(q){s=H.U(q) r=H.aB(q) o.d.$2(s,r) return}p=o.d J.ur(n,new M.Z6(o.a,o.b,o.e,p),t.H).jR(p)}, $C:"$0", $R:0, $S:0} M.Z6.prototype={ $1:function(a){var s,r,q,p=this p.a.a=a try{p.c.$2(a,p.d)}catch(q){s=H.U(q) r=H.aB(q) p.d.$2(s,r)}}, $S:function(){return H.u(this.b).h("a6(hR.T)")}} M.Za.prototype={ $0:function(){var s=this.a.a s.toString return s}, $S:132} M.Zb.prototype={ $0:function(){return this.a.BR(0,this.b,$.iS.gabi())}, $S:132} M.iw.prototype={ k:function(a,b){var s=this if(b==null)return!1 if(J.N(b)!==H.E(s))return!1 return b instanceof M.iw&&b.a===s.a&&b.b==s.b&&b.c===s.c}, gt:function(a){return P.a5(this.a,this.b,this.c,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){return"AssetBundleImageKey(bundle: "+this.a.j(0)+', name: "'+H.c(this.b)+'", scale: '+H.c(this.c)+")"}, gar:function(a){return this.b}} M.Df.prototype={ BR:function(a,b,c){var s=this.th(b,c),r=b.c return L.azB(s,b.b,null,r)}, th:function(a,b){return this.a2N(a,b)}, a2N:function(a,b){var s=0,r=P.af(t.hP),q,p=2,o,n=[],m,l,k var $async$th=P.a9(function(c,d){if(c===1){o=d s=p}while(true)switch(s){case 0:l=null p=4 s=7 return P.ak(a.a.dD(0,a.b),$async$th) case 7:l=d p=2 s=6 break case 4:p=3 k=o if(H.U(k) instanceof U.mV){$.iS.kb$.Mr(a) throw k}else throw k s=6 break case 3:s=2 break case 6:if(l==null){$.iS.kb$.Mr(a) throw H.a(P.a4("Unable to read data"))}q=b.$1(H.cK(l.buffer,0,null)) s=1 break case 1:return P.ad(q,r) case 2:return P.ac(o,r)}}) return P.ae($async$th,r)}} M.aaj.prototype={} L.uK.prototype={ gnk:function(){return this.a}, C5:function(a){var s,r={},q=a.a if(q==null)q=$.aiH() r.a=r.b=null q.abU("AssetManifest.json",L.aFy(),t.wd).bN(0,new L.SN(r,this,a,q),t.H).jR(new L.SO(r)) s=r.a if(s!=null)return s s=new P.a1($.R,t.Lv) r.b=new P.aH(s,t.h8) return s}, Yv:function(a,b,c){var s,r,q,p=b.b if(p==null||c==null||J.fX(c))return a s=P.akn(t.d,t.N) for(r=J.as(c);r.q();){q=r.gw(r) s.n(0,this.Ij(q),q)}p.toString return this.a_0(s,p)}, a_0:function(a,b){var s,r,q if(a.mg(b)){s=a.i(0,b) s.toString return s}r=a.abI(b) q=a.aaa(b) if(r==null)return a.i(0,q) if(q==null)return a.i(0,r) if(b<2||b>(r+q)/2)return a.i(0,q) else return a.i(0,r)}, Ij:function(a){var s,r,q,p if(a===this.a)return 1 s=P.os(a) r=J.bQ(s.gku())>1?J.aS(s.gku(),J.bQ(s.gku())-2):"" q=$.asN().uV(r) if(q!=null&&q.b.length-1>0){p=q.b[1] p.toString return P.as8(p)}return 1}, k:function(a,b){if(b==null)return!1 if(J.N(b)!==H.E(this))return!1 return b instanceof L.uK&&b.gnk()===this.gnk()&&!0}, gt:function(a){return P.a5(this.gnk(),null,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){return'AssetImage(bundle: null, name: "'+this.gnk()+'")'}} L.SN.prototype={ $1:function(a){var s,r=this,q=r.b,p=q.gnk(),o=a==null?null:J.aS(a,q.gnk()) o=q.Yv(p,r.c,o) o.toString s=new M.iw(r.d,o,q.Ij(o)) q=r.a p=q.b if(p!=null)p.ci(0,s) else q.a=new O.cX(s,t.WT)}, $S:235} L.SO.prototype={ $2:function(a,b){this.a.b.le(a,b)}, $C:"$2", $R:2, $S:57} L.hQ.prototype={ dj:function(a){return new L.hQ(this.a.dj(0),this.b,this.c)}, j:function(a){var s=this.c s=s!=null?s+" ":"" return s+this.a.j(0)+" @ "+E.fU(this.b)+"x"}, gt:function(a){return P.a5(this.a,this.b,this.c,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s=this if(b==null)return!1 if(J.N(b)!==H.E(s))return!1 return b instanceof L.hQ&&b.a===s.a&&b.b===s.b&&b.c==s.c}} L.h7.prototype={ gt:function(a){return P.a5(this.a,this.b,this.c,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s=this if(b==null)return!1 if(J.N(b)!==H.E(s))return!1 return b instanceof L.h7&&J.d(b.a,s.a)&&J.d(b.b,s.b)&&J.d(b.c,s.c)}, acB:function(a,b){return this.a.$2(a,b)}} L.Ze.prototype={ DE:function(a){var s this.a=a s=this.b if(s!=null){this.b=null C.b.K(s,a.gKT(a))}}, aQ:function(a,b){var s=this.a if(s!=null)return s.aQ(0,b) s=this.b;(s==null?this.b=H.b([],t.XZ):s).push(b)}, T:function(a,b){var s,r=this.a if(r!=null)return r.T(0,b) for(s=0;r=this.b,s")),n),!0,n.h("l.E")) s=!1 for(o=m.length,l=0;l=q.a r=q}else{r=s s=!0}if(s){s=o.ch o.Go(new L.hQ(s.gfn(s).dj(0),o.z,o.d)) o.cx=a s=o.ch o.cy=s.gMh(s) s=o.ch s.gfn(s).p(0) o.ch=null p=C.f.hM(o.db,o.y.gBe()) if(o.y.gCs()===-1||p<=o.y.gCs())o.mj() return}r.toString s=o.gJn() o.dx=P.ci(new P.aK(C.d.aO((r.a-(a.a-s.a))*$.arR)),new L.a03(o))}, mj:function(){var s=0,r=P.af(t.H),q,p=2,o,n=[],m=this,l,k,j,i,h var $async$mj=P.a9(function(a,b){if(a===1){o=b s=p}while(true)switch(s){case 0:i=m.ch if(i!=null)i.gfn(i).p(0) m.ch=null p=4 s=7 return P.ak(m.y.qZ(),$async$mj) case 7:m.ch=b p=2 s=6 break case 4:p=3 h=o l=H.U(h) k=H.aB(h) m.vH(U.bE("resolving an image frame"),l,m.Q,!0,k) s=1 break s=6 break case 3:s=2 break case 6:if(m.y.gBe()===1){if(m.a.length===0){s=1 break}i=m.ch m.Go(new L.hQ(i.gfn(i).dj(0),m.z,m.d)) i=m.ch i.gfn(i).p(0) m.ch=null s=1 break}m.J0() case 1:return P.ad(q,r) case 2:return P.ac(o,r)}}) return P.ae($async$mj,r)}, J0:function(){if(this.dy)return this.dy=!0 $.bT.Do(this.ga_T())}, Go:function(a){this.Qz(a);++this.db}, aQ:function(a,b){var s=this if(s.a.length===0&&s.y!=null)s.mj() s.S1(0,b)}, T:function(a,b){var s,r=this r.S2(0,b) if(r.a.length===0){s=r.dx if(s!=null)s.aH(0) r.dx=null}}} L.a04.prototype={ $2:function(a,b){this.a.vH(U.bE("resolving an image codec"),a,this.b,!0,b)}, $C:"$2", $R:2, $S:57} L.a03.prototype={ $0:function(){this.a.J0()}, $C:"$0", $R:0, $S:0} L.Nb.prototype={} L.Na.prototype={} G.D2.prototype={} G.jJ.prototype={ k:function(a,b){var s if(b==null)return!1 if(b instanceof G.jJ)if(b.a==this.a)if(b.b==this.b)s=!0 else s=!1 else s=!1 else s=!1 return s}, gt:function(a){return P.a5(this.a,this.b,this.c,!1,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){return"InlineSpanSemanticsInformation{text: "+H.c(this.a)+", semanticsLabel: "+H.c(this.b)+", recognizer: "+H.c(this.c)+"}"}, d4:function(a){return this.a.$0()}} G.iH.prototype={ Dg:function(a){var s={} s.a=null this.be(new G.Zp(s,a,new G.D2())) return s.a}, CA:function(a,b){var s,r=new P.c6("") this.Lw(r,a,b) s=r.a return s.charCodeAt(0)==0?s:s}, Pb:function(a){return this.CA(a,!0)}, ae6:function(a){return this.CA(!0,a)}, vQ:function(){return this.CA(!0,!0)}, al:function(a,b){var s={} if(b<0)return null s.a=null this.be(new G.Zo(s,b,new G.D2())) return s.a}, k:function(a,b){if(b==null)return!1 if(this===b)return!0 if(J.N(b)!==H.E(this))return!1 return b instanceof G.iH&&J.d(b.a,this.a)}, gt:function(a){return J.a3(this.a)}} G.Zp.prototype={ $1:function(a){var s=a.Q7(this.b,this.c) this.a.a=s return s==null}, $S:55} G.Zo.prototype={ $1:function(a){var s=a.a81(this.b,this.c) this.a.a=s return s==null}, $S:55} X.ef.prototype={ giO:function(){var s=this.a.b return new V.X(s,s,s,s)}, bp:function(a,b){var s=this.a.bp(0,b) return new X.ef(this.b.a4(0,b),s)}, dO:function(a,b){var s,r,q=this if(a instanceof X.ef){s=Y.bd(a.a,q.a,b) r=K.mw(a.b,q.b,b) r.toString return new X.ef(r,s)}if(a instanceof X.eY)return new X.eS(q.b,1-b,Y.bd(a.a,q.a,b)) return q.ma(a,b)}, dP:function(a,b){var s,r,q=this if(a instanceof X.ef){s=Y.bd(q.a,a.a,b) r=K.mw(q.b,a.b,b) r.toString return new X.ef(r,s)}if(a instanceof X.eY)return new X.eS(q.b,b,Y.bd(q.a,a.a,b)) return q.mb(a,b)}, h9:function(a,b){var s=P.dh() s.hp(0,this.b.ak(b).h6(a)) return s}, ks:function(a,b,c){var s,r,q,p,o,n=this.a switch(n.c){case C.a8:break case C.a_:s=n.b r=this.b if(s===0)a.ct(0,r.ak(c).h6(b),n.lQ()) else{q=r.ak(c).h6(b) p=q.hz(-s) r=H.aF() o=r?H.b_():new H.aR(new H.aT()) o.sap(0,n.a) a.fW(0,q,p,o)}break default:throw H.a(H.j(u.I))}}, k:function(a,b){if(b==null)return!1 if(J.N(b)!==H.E(this))return!1 return b instanceof X.ef&&J.d(b.a,this.a)&&J.d(b.b,this.b)}, gt:function(a){return P.a5(this.a,this.b,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){return"RoundedRectangleBorder("+H.c(this.a)+", "+H.c(this.b)+")"}} X.eS.prototype={ giO:function(){var s=this.a.b return new V.X(s,s,s,s)}, bp:function(a,b){var s=this.a.bp(0,b) return new X.eS(this.b.a4(0,b),b,s)}, dO:function(a,b){var s,r,q,p=this if(a instanceof X.ef){s=Y.bd(a.a,p.a,b) r=K.mw(a.b,p.b,b) r.toString return new X.eS(r,p.c*b,s)}if(a instanceof X.eY){s=p.c return new X.eS(p.b,s+(1-s)*(1-b),Y.bd(a.a,p.a,b))}if(a instanceof X.eS){s=Y.bd(a.a,p.a,b) r=K.mw(a.b,p.b,b) r.toString q=P.aa(a.c,p.c,b) q.toString return new X.eS(r,q,s)}return p.ma(a,b)}, dP:function(a,b){var s,r,q,p=this if(a instanceof X.ef){s=Y.bd(p.a,a.a,b) r=K.mw(p.b,a.b,b) r.toString return new X.eS(r,p.c*(1-b),s)}if(a instanceof X.eY){s=p.c return new X.eS(p.b,s+(1-s)*b,Y.bd(p.a,a.a,b))}if(a instanceof X.eS){s=Y.bd(p.a,a.a,b) r=K.mw(p.b,a.b,b) r.toString q=P.aa(p.c,a.c,b) q.toString return new X.eS(r,q,s)}return p.mb(a,b)}, x4:function(a){var s,r,q,p,o,n,m,l=this.c if(l===0||a.c-a.a===a.d-a.b)return a s=a.c r=a.a q=s-r p=a.d o=a.b n=p-o if(q>>0,s=!q;o.length===0;){n=a+p o=j.a.qT(a,n,C.ja) if(o.length===0){if(s)break if(n>=h)break p*=2 continue}m=C.b.gL(o) h=m.e l=h===C.m?m.a:m.c k=h===C.p?l-(b.c-b.a):l h=j.a h=h.gay(h) h=Math.min(H.B(k),H.B(h)) s=j.a s=s.gay(s) return new P.x(h,m.b,Math.min(H.B(k),H.B(s)),m.d)}return null}, gxU:function(){var s,r=this,q=u.I switch(r.d){case C.eI:return C.i case C.c3:return new P.m(r.gay(r),0) case C.c4:return new P.m(r.gay(r)/2,0) case C.hZ:case C.ag:s=r.e s.toString switch(s){case C.p:return new P.m(r.gay(r),0) case C.m:return C.i default:throw H.a(H.j(q))}case C.cF:s=r.e s.toString switch(s){case C.p:return C.i case C.m:return new P.m(r.gay(r),0) default:throw H.a(H.j(q))}default:throw H.a(H.j(q))}}, gkQ:function(){var s=this.fx return s===$?H.e(H.t("_caretMetrics")):s}, kT:function(a,b){var s,r,q,p,o=this if(J.d(a,o.fy)&&J.d(b,o.go))return s=a.a switch(a.b){case C.aK:r=o.H_(s,b) if(r==null)r=o.GZ(s,b) break case C.l:r=o.GZ(s,b) if(r==null)r=o.H_(s,b) break default:throw H.a(H.j(u.I))}q=r!=null p=q?new P.m(r.a,r.b):o.gxU() o.fx=new U.a9g(p,q?r.d-r.b:null) o.fy=a o.go=b}, CX:function(a,b,c){return this.a.jf(a.a,a.b,b,c)}, CW:function(a){return this.CX(a,C.cP,C.bu)}, d4:function(a){return this.gbs(this).$0()}} Q.rT.prototype={ gLZ:function(a){return this.e}, gCR:function(){return!0}, i5:function(a,b){t.pY.b(a)}, Li:function(a,b,c,d){var s,r,q=this.a,p=q!=null if(p)b.kx(0,q.Di(d)) q=this.b if(q!=null)b.jL(0,q) q=this.c if(q!=null)for(s=q.length,r=0;r0?q:C.cB if(p===C.cC)return p}else p=C.cB s=n.c if(s!=null)for(r=b.c,o=0;op.a)p=q if(p===C.cC)return p}return p}, k:function(a,b){var s,r=this if(b==null)return!1 if(r===b)return!0 if(J.N(b)!==H.E(r))return!1 if(!r.S5(0,b))return!1 if(b instanceof Q.rT)if(b.b==r.b)s=r.e.k(0,b.e)&&S.cx(b.c,r.c) else s=!1 else s=!1 return s}, gt:function(a){var s=this,r=null return P.a5(G.iH.prototype.gt.call(s,s),s.b,r,r,r,r,s.e,P.em(s.c),C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, cp:function(){return"TextSpan"}, $iiN:1, d4:function(a){return this.b.$0()}, gC6:function(){return null}, gC8:function(){return null}} A.w.prototype={ geE:function(){return this.e}, pl:function(a1,a2,a3,a4,a5,a6,a7,a8,a9,b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,c0,c1,c2,c3){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c=this,b=null,a=b7==null?c.a:b7,a0=c.dx if(a0==null&&b5==null)s=a3==null?c.b:a3 else s=b r=c.dy if(r==null&&a1==null)q=a2==null?c.c:a2 else q=b p=a9==null?c.d:a9 o=b0==null?c.geE():b0 n=b2==null?c.r:b2 m=b4==null?c.x:b4 l=b9==null?c.z:b9 k=c3==null?c.Q:c3 j=c2==null?c.ch:c2 i=b6==null?c.cx:b6 a0=b5==null?a0:b5 r=a1==null?r:a1 h=c1==null?c.k1:c1 g=a5==null?c.fr:a5 f=a6==null?c.fx:a6 e=a7==null?c.fy:a7 d=a8==null?c.go:a8 return A.hj(r,q,s,b,g,f,e,d,p,o,c.k2,n,c.y,m,a0,i,a,c.cy,l,c.db,b,h,j,k)}, a8v:function(a,b){return this.pl(null,null,a,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,b,null,null,null,null)}, fi:function(a){return this.pl(null,null,a,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null)}, a8x:function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,a0,a1,a2){return this.pl(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,null,q,r,s,a0,a1,a2)}, LN:function(a,b){return this.pl(null,null,a,null,null,null,null,null,null,null,null,b,null,null,null,null,null,null,null,null,null,null,null)}, LF:function(a){return this.pl(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,a,null,null,null,null,null,null)}, bU:function(a){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c if(a==null)return this if(!a.a)return a s=a.b r=a.c q=a.d p=a.geE() o=a.r n=a.x m=a.y l=a.z k=a.Q j=a.ch i=a.cx h=a.cy g=a.db f=a.dx e=a.dy d=a.k1 c=a.k2 return this.a8x(e,r,s,null,a.fr,a.fx,a.fy,a.go,q,p,c,o,m,n,f,i,h,l,g,d,j,k)}, Di:function(a){var s,r,q=this,p=q.geE(),o=q.r o=o==null?null:o*a s=q.dy if(s==null){s=q.c if(s!=null){r=H.aF() r=r?H.b_():new H.aR(new H.aT()) r.sap(0,s) s=r}else s=null}return P.aku(s,q.b,q.fr,q.fx,q.fy,q.go,q.d,p,q.k2,o,q.y,q.x,q.dx,q.cx,q.cy,q.z,q.db,q.k1,q.ch,q.Q)}, bR:function(a,b){var s,r=this if(r===b)return C.cB if(r.a===b.a)if(r.d==b.d)if(r.r==b.r)if(r.x==b.x)if(r.z==b.z)if(r.Q==b.Q)if(r.ch==b.ch)if(r.cx==b.cx)s=r.dx!=b.dx||r.dy!=b.dy||!S.cx(r.k1,b.k1)||!S.cx(r.k2,b.k2)||!S.cx(r.geE(),b.geE()) else s=!0 else s=!0 else s=!0 else s=!0 else s=!0 else s=!0 else s=!0 else s=!0 if(s)return C.cC if(!J.d(r.b,b.b)||!J.d(r.c,b.c)||!J.d(r.fr,b.fr)||!J.d(r.fx,b.fx)||r.fy!=b.fy||r.go!=b.go)return C.lq return C.cB}, k:function(a,b){var s,r=this if(b==null)return!1 if(r===b)return!0 if(J.N(b)!==H.E(r))return!1 if(b instanceof A.w)if(b.a===r.a)if(J.d(b.b,r.b))if(J.d(b.c,r.c))if(b.d==r.d)if(b.r==r.r)if(b.x==r.x)if(b.z==r.z)if(b.Q==r.Q)if(b.ch==r.ch)if(b.cx==r.cx)s=b.dx==r.dx&&b.dy==r.dy&&J.d(b.fr,r.fr)&&J.d(b.fx,r.fx)&&b.fy==r.fy&&b.go==r.go&&S.cx(b.k1,r.k1)&&S.cx(b.k2,r.k2)&&S.cx(b.geE(),r.geE()) else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 return s}, gt:function(a){var s=this return P.em([s.a,s.b,s.c,s.d,s.r,s.x,s.y,s.z,s.Q,s.ch,s.cx,s.cy,s.db,s.dx,s.dy,s.fr,s.fx,s.fy,P.em(s.k1),P.em(s.k2),P.em(s.geE())])}, cp:function(){return"TextStyle"}} A.Ql.prototype={} D.XF.prototype={ en:function(a,b){var s=this,r=s.e,q=s.c return s.d+r*Math.pow(s.b,b)/q-r/q}, hu:function(a,b){H.B(b) return this.e*Math.pow(this.b,b)}, gB7:function(){return this.d-this.e/this.c}, P4:function(a){var s,r,q=this,p=q.d if(a===p)return 0 s=q.e if(s!==0)if(s>0)r=aq.gB7() else r=a>p||a=l&&n.c>=n.d)return new P.Q(C.f.a6(0,m,l),C.f.a6(0,n.c,n.d)) s=a.a r=a.b q=s/r if(s>l){r=l/q s=l}p=n.d if(r>p){s=p*q r=p}if(s=s.b&&s.c>=s.d}, a4:function(a,b){var s=this return new S.aN(s.a*b,s.b*b,s.c*b,s.d*b)}, gaby:function(){var s=this,r=s.a if(r>=0)if(r<=s.b){r=s.c r=r>=0&&r<=s.d}else r=!1 else r=!1 return r}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(J.N(b)!==H.E(s))return!1 return b instanceof S.aN&&b.a==s.a&&b.b==s.b&&b.c==s.c&&b.d==s.d}, gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){var s,r,q,p=this,o=p.gaby()?"":"; NOT NORMALIZED",n=p.a if(n===1/0&&p.c===1/0)return"BoxConstraints(biggest"+o+")" if(n===0&&p.b===1/0&&p.c===0&&p.d===1/0)return"BoxConstraints(unconstrained"+o+")" s=new S.Tm() r=s.$3(n,p.b,"w") q=s.$3(p.c,p.d,"h") return"BoxConstraints("+H.c(r)+", "+H.c(q)+o+")"}} S.Tm.prototype={ $3:function(a,b,c){if(a==b)return c+"="+J.aU(a,1) return J.aU(a,1)+"<="+c+"<="+J.aU(b,1)}, $S:241} S.h_.prototype={ zS:function(a,b,c){if(c!=null){c=E.wS(F.akc(c)) if(c==null)return!1}return this.L0(a,b,c)}, jN:function(a,b,c){var s,r=b==null,q=r?c:c.a5(0,b) r=!r if(r)this.c.push(new O.tQ(new P.m(-b.a,-b.b))) s=a.$2(this,q) if(r)this.vA() return s}, L0:function(a,b,c){var s,r=c==null,q=r?b:T.fu(c,b) r=!r if(r)this.c.push(new O.AP(c)) s=a.$2(this,q) if(r)this.vA() return s}, L_:function(a,b,c){var s,r=this if(b!=null)r.c.push(new O.tQ(new P.m(-b.a,-b.b))) else{c.toString c=E.wS(F.akc(c)) c.toString r.c.push(new O.AP(c))}s=a.$1(r) r.vA() return s}, a73:function(a,b){return this.L_(a,null,b)}, a72:function(a,b){return this.L_(a,b,null)}} S.uY.prototype={ gj7:function(a){return t.x.a(this.a)}, j:function(a){return"#"+Y.cf(t.x.a(this.a))+"@"+H.c(this.c)}} S.fj.prototype={ j:function(a){return"offset="+this.a.j(0)}} S.vl.prototype={} S.A.prototype={ ep:function(a){if(!(a.d instanceof S.fj))a.d=new S.fj(C.i)}, iq:function(a){var s=this.k4 if(s==null)s=this.k4=P.y(t.k,t.FW) return s.bX(0,a,new S.a2a(this,a))}, cB:function(a){return C.r}, gkH:function(){var s=this.r2 return new P.x(0,0,0+s.a,0+s.b)}, qY:function(a,b){var s=this.jg(a) if(s==null&&!b)return this.r2.b return s}, D_:function(a){return this.qY(a,!1)}, jg:function(a){var s=this,r=s.rx if(r==null)r=s.rx=P.y(t.W7,t.PM) r.bX(0,a,new S.a29(s,a)) return s.rx.i(0,a)}, dA:function(a){return null}, gX:function(){return t.k.a(K.r.prototype.gX.call(this))}, a1:function(){var s=this,r=s.rx if(!(r!=null&&r.gaV(r))){r=s.k3 if(!(r!=null&&r.gaV(r))){r=s.k4 r=r!=null&&r.gaV(r)}else r=!0}else r=!0 if(r){r=s.rx if(r!=null)r.az(0) r=s.k3 if(r!=null)r.az(0) r=s.k4 if(r!=null)r.az(0) if(s.ga9(s) instanceof K.r){s.BT() return}}s.SE()}, qr:function(){this.r2=this.cB(t.k.a(K.r.prototype.gX.call(this)))}, bM:function(){}, c3:function(a,b){var s,r=this if(r.r2.C(0,b))if(r.cR(a,b)||r.h0(b)){s=new S.uY(b,r) a.kZ() s.b=C.b.gL(a.b) a.a.push(s) return!0}return!1}, h0:function(a){return!1}, cR:function(a,b){return!1}, di:function(a,b){var s,r=a.d r.toString s=t.q.a(r).a b.af(0,s.a,s.b)}, ir:function(a){var s,r,q,p,o,n,m,l=this.de(0,null) if(l.jZ(l)===0)return C.i s=new E.hm(new Float64Array(3)) s.m3(0,0,1) r=new E.hm(new Float64Array(3)) r.m3(0,0,0) q=l.vy(r) r=new E.hm(new Float64Array(3)) r.m3(0,0,1) p=l.vy(r).a5(0,q) r=a.a o=a.b n=new E.hm(new Float64Array(3)) n.m3(r,o,0) m=l.vy(n) n=m.a5(0,p.Dm(s.Md(m)/s.Md(p))).a return new P.m(n[0],n[1])}, gii:function(){var s=this.r2 return new P.x(0,0,0+s.a,0+s.b)}, i5:function(a,b){this.SD(a,b)}} S.a2a.prototype={ $0:function(){return this.a.cB(this.b)}, $S:242} S.a29.prototype={ $0:function(){return this.a.dA(this.b)}, $S:243} S.cO.prototype={ a8V:function(a){var s,r,q,p=this.a7$ for(s=H.u(this).h("cO.1?");p!=null;){r=s.a(p.d) q=p.jg(a) if(q!=null)return q+r.a.b p=r.an$}return null}, M3:function(a){var s,r,q,p,o=this.a7$ for(s=H.u(this).h("cO.1"),r=null;o!=null;){q=o.d q.toString s.a(q) p=o.jg(a) if(p!=null){p+=q.a.b r=r!=null?Math.min(r,p):p}o=q.an$}return r}, Ax:function(a,b){var s,r,q={},p=q.a=this.d9$ for(s=H.u(this).h("cO.1");p!=null;p=r){p=p.d p.toString s.a(p) if(a.jN(new S.a28(q,b,p),p.a,b))return!0 r=p.c9$ q.a=r}return!1}, ps:function(a,b){var s,r,q,p,o,n=this.a7$ for(s=H.u(this).h("cO.1"),r=b.a,q=b.b;n!=null;){p=n.d p.toString s.a(p) o=p.a a.dq(n,new P.m(o.a+r,o.b+q)) n=p.an$}}} S.a28.prototype={ $2:function(a,b){var s=this.a.a s.toString b.toString return s.c3(a,b)}, $S:14} S.zQ.prototype={ ab:function(a){this.wL(0)}} B.h9.prototype={ j:function(a){return this.oc(0)+"; id="+H.c(this.e)}} B.a01.prototype={ eG:function(a,b){var s,r=this.b.i(0,a) r.cJ(0,b,!0) s=r.r2 s.toString return s}, f3:function(a,b){var s=this.b.i(0,a).d s.toString t.Wz.a(s).a=b}, Yc:function(a,b){var s,r,q,p,o,n,m=this,l=m.b try{m.b=P.y(t.K,t.x) for(r=t.Wz,q=b;q!=null;q=n){p=q.d p.toString s=r.a(p) p=m.b p.toString o=s.e o.toString p.n(0,o,q) n=s.an$}m.vx(a)}finally{m.b=l}}, j:function(a){return"MultiChildLayoutDelegate"}} B.I7.prototype={ ep:function(a){if(!(a.d instanceof B.h9))a.d=new B.h9(null,null,C.i)}, sAB:function(a){var s=this,r=s.F if(r===a)return if(H.E(a)!==H.E(r)||a.m4(r))s.a1() s.F=a s.b!=null}, ag:function(a){this.TO(a)}, ab:function(a){this.TP(0)}, cB:function(a){return a.bH(new P.Q(C.f.a6(1/0,a.a,a.b),C.f.a6(1/0,a.c,a.d)))}, bM:function(){var s=this,r=t.k.a(K.r.prototype.gX.call(s)) r=r.bH(new P.Q(C.f.a6(1/0,r.a,r.b),C.f.a6(1/0,r.c,r.d))) s.r2=r s.F.Yc(r,s.a7$)}, aD:function(a,b){this.ps(a,b)}, cR:function(a,b){return this.Ax(a,b)}} B.B7.prototype={ ag:function(a){var s,r,q this.dU(a) s=this.a7$ for(r=t.Wz;s!=null;){s.ag(a) q=s.d q.toString s=r.a(q).an$}}, ab:function(a){var s,r,q this.dw(0) s=this.a7$ for(r=t.Wz;s!=null;){s.ab(0) q=s.d q.toString s=r.a(q).an$}}} B.OT.prototype={} V.EC.prototype={ aQ:function(a,b){var s=this.a return s==null?null:s.aQ(0,b)}, T:function(a,b){var s=this.a return s==null?null:s.T(0,b)}, grf:function(){return null}, wn:function(a){return this.eq(a)}, ne:function(a){return null}, j:function(a){var s="#"+Y.cf(this)+"(",r=this.a r=r==null?null:r.j(0) return s+(r==null?"":r)+")"}} V.I8.prototype={ sqq:function(a){var s=this.G if(s==a)return this.G=a this.Gb(a,s)}, sMT:function(a){var s=this.a8 if(s==a)return this.a8=a this.Gb(a,s)}, Gb:function(a,b){var s=this,r=a==null if(r)s.aw() else if(b==null||H.E(a)!==H.E(b)||a.eq(b))s.aw() if(s.b!=null){if(b!=null)b.T(0,s.gdd()) if(!r)a.aQ(0,s.gdd())}if(r){if(s.b!=null)s.ao()}else if(b==null||H.E(a)!==H.E(b)||a.wn(b))s.ao()}, svB:function(a){if(this.aJ.k(0,a))return this.aJ=a this.a1()}, ag:function(a){var s,r=this r.rv(a) s=r.G if(s!=null)s.aQ(0,r.gdd()) s=r.a8 if(s!=null)s.aQ(0,r.gdd())}, ab:function(a){var s=this,r=s.G if(r!=null)r.T(0,s.gdd()) r=s.a8 if(r!=null)r.T(0,s.gdd()) s.mc(0)}, cR:function(a,b){var s=this.a8 if(s!=null){s=s.ne(b) s=s===!0}else s=!1 if(s)return!0 return this.rt(a,b)}, h0:function(a){var s=this.G if(s!=null){s=s.ne(a) s=s!==!1}else s=!1 return s}, bM:function(){this.of() this.ao()}, pk:function(a){return a.bH(this.aJ)}, Ig:function(a,b,c){var s a.bu(0) if(!b.k(0,C.i))a.af(0,b.a,b.b) s=this.r2 s.toString c.aD(a,s) a.bj(0)}, aD:function(a,b){var s,r,q=this if(q.G!=null){s=a.gbZ(a) r=q.G r.toString q.Ig(s,b,r) q.Ji(a)}q.m9(a,b) if(q.a8!=null){s=a.gbZ(a) r=q.a8 r.toString q.Ig(s,b,r) q.Ji(a)}}, Ji:function(a){}, eA:function(a){var s,r=this r.fC(a) s=r.G r.a2=s==null?null:s.grf() s=r.a8 r.eZ=s==null?null:s.grf() a.a=!1}, mS:function(a,b,c){var s,r,q,p,o=this o.ef=V.apl(o.ef,C.kk) o.lm=V.apl(o.lm,C.kk) s=o.ef r=s!=null&&!s.gO(s) s=o.lm q=s!=null&&!s.gO(s) s=H.b([],t.QF) if(r){p=o.ef p.toString C.b.J(s,p)}C.b.J(s,c) if(q){p=o.lm p.toString C.b.J(s,p)}o.EE(a,b,s)}, mU:function(){this.wO() this.lm=this.ef=null}} V.a2c.prototype={ $1:function(a){var s=this.a if(s.b===$)return s.b=a else throw H.a(H.ew("oldKeyedChildren"))}, $S:244} V.a2b.prototype={ $0:function(){var s=this.a.b return s===$?H.e(H.c1("oldKeyedChildren")):s}, $S:245} T.V7.prototype={} D.rS.prototype={ j:function(a){var s=this switch(s.b){case C.m:return s.a.j(0)+"-ltr" case C.p:return s.a.j(0)+"-rtl" case null:return s.a.j(0) default:throw H.a(H.j(u.I))}}} D.nO.prototype={ Kd:function(a){var s,r=this,q=r.gY7(),p=r.F if(p==null){s=D.aqx(q) r.ff(s) r.F=s}else p.sqq(q) r.S=a}, Kj:function(a){var s,r=this,q=r.gY8(),p=r.N if(p==null){s=D.aqx(q) r.ff(s) r.N=s}else p.sqq(q) r.au=a}, gdW:function(){var s=this,r=s.aB if(r===$){r=H.aF() r=r?H.b_():new H.aR(new H.aT()) r=new D.Ab(s.ga39(),r,C.i,new P.a7(t.V)) if(s.aB===$)s.aB=r else r=H.e(H.bS("_caretPainter"))}return r}, gY7:function(){var s=this,r=s.b7 if(r==null){r=H.b([],t.xT) if(s.dK)r.push(s.gdW()) r=s.b7=new D.t8(r,new P.a7(t.V))}return r}, gY8:function(){var s=this,r=s.ae if(r==null){r=H.b([s.aU,s.ax],t.xT) if(!s.dK)r.push(s.gdW()) r=s.ae=new D.t8(r,new P.a7(t.V))}return r}, a3a:function(a){if(!J.d(this.aS,a))this.cD.$1(a) this.aS=a}, sqK:function(a,b){return}, snM:function(a){var s=this.aq if(s.Q===a)return s.snM(a) this.ie()}, suw:function(a,b){if(this.d2===b)return this.d2=b this.ie()}, sacl:function(a){if(this.c_===a)return this.c_=a this.a1()}, sack:function(a){if(this.cl===a)return this.cl=a this.ao()}, bY:function(a,b){var s,r,q=this if(a.ghB()){s=q.aK.a.c.a.a.length a=a.fU(Math.min(H.B(a.c),s),Math.min(H.B(a.d),s))}q.a1D(a,b) r=q.aK.a.c.a.LK(a) q.aK.nR(r,b)}, a1D:function(a,b){var s=a.c===0&&a.d===0&&!this.fm if(a.k(0,this.a2)&&b!==C.H&&!s)return}, Zq:function(a){return}, ZN:function(a){var s=this if(s.a2.d===s.gcg().length)return if(!s.geL())return s.vp(a) s.bY(s.a2.dk(s.gcg().length),a)}, ZO:function(a){var s=this if(s.a2.d===0)return if(!s.geL())return s.vq(a) s.bY(s.a2.dk(0),a)}, H6:function(a,b){var s,r=this.aq r.kT(new P.aV(a,C.l),this.gkR()) s=r.gkQ().a return r.a.fa(new P.m(s.a+0,s.b+b))}, H4:function(a){return this.H6(a,-0.5*this.aq.gcS())}, H5:function(a){return this.H6(a,1.5*this.aq.gcS())}, a9T:function(a){var s,r,q,p=this,o={},n=p.a2 if(n.a==n.b&&n.d>=p.gcg().length)return if(!p.geL())return p.NY(a) s=p.H5(p.a2.d) o.a=$ n=new D.a2i(o) o=new D.a2j(o) r=s.a q=p.a2 if(r==q.d){o.$1(q.dk(p.gcg().length)) p.d3=!0}else if(p.d3){o.$1(q.dk(p.cE)) p.d3=!1}else{o.$1(q.dk(r)) p.cE=n.$0().d}p.bY(n.$0(),a)}, a9P:function(a){var s,r=this if(r.a2.d===r.gcg().length)return if(!r.geL())return r.vp(a) s=r.a2 r.bY(X.cY(C.l,Math.max(0,Math.min(H.B(s.c),H.B(s.d))),r.gcg().length,!1),a)}, a9U:function(a){var s,r,q=this if(!q.geL())return q.NZ(a) s=D.aAm(q.a2,q.gcg()) if(s.k(0,q.a2))return r=q.a2 q.cE=q.cE-(r.d-s.d) q.bY(s,a)}, a9V:function(a){var s,r,q,p,o=this,n={} if(!o.geL())return o.BZ(a) s=o.jw(new P.aV(D.qL(o.a2.d,o.gcg(),!1),C.l)) n.a=$ r=new D.a2l(n) q=o.a2 p=q.c if(q.d>p)r.$1(q.dk(p)) else r.$1(q.dk(s.c)) o.bY(new D.a2k(n).$0(),a)}, a9X:function(a){var s,r,q=this if(!q.geL())return q.O_(a) s=D.aAo(q.a2,q.gcg()) if(s.k(0,q.a2))return r=q.a2 q.cE=q.cE+(s.d-r.d) q.bY(s,a)}, a9Y:function(a){var s,r,q,p,o=this,n={} if(!o.geL())return o.C_(a) s=o.jw(new P.aV(D.xR(o.a2.d,o.gcg(),!1),C.l)) n.a=$ r=new D.a2n(n) q=o.a2 p=q.c if(q.d=q.c)s.$1(q.dk(p)) else s.$1(q.LB(p)) o.bY(new D.a2g(n).$0(),a)}, NY:function(a){var s,r,q=this,p={},o=q.a2 if(o.a==o.b&&o.d>=q.gcg().length)return s=q.H5(q.a2.d) p.a=$ o=new D.a2r(p) p=new D.a2s(p) r=q.a2 if(s.a==r.d){p.$1(r.fU(q.gcg().length,q.gcg().length)) q.d3=!1}else{p.$1(X.z1(s)) q.cE=o.$0().d}q.bY(o.$0(),a)}, NZ:function(a){var s=this,r=D.aAq(s.a2,s.gcg()) if(r.k(0,s.a2))return s.cE=s.cE-(s.a2.d-r.d) s.bY(r,a)}, BZ:function(a){var s=this,r=D.qL(s.a2.d,s.gcg(),!0) if(s.jw(new P.aV(r,C.l)).d===r)return s.bY(X.hi(C.l,s.jw(new P.aV(D.qL(s.a2.d,s.gcg(),!1),C.l)).c),a)}, acf:function(a,b){var s,r=this if(r.cl)return r.vq(a) s=D.aAr(r.aq,r.a2,!1) if(s.k(0,r.a2))return r.bY(s,a)}, O_:function(a){var s=this,r=D.aAs(s.a2,s.gcg()) if(r.k(0,s.a2))return s.bY(r,a)}, C_:function(a){var s=this,r=s.jw(new P.aV(s.a2.d,C.l)),q=s.a2.d if(r.d==q)return s.bY(X.hi(C.l,s.jw(new P.aV(D.xR(q,s.gcg(),!1),C.l)).d),a)}, acg:function(a,b){var s,r=this if(r.cl)return r.vp(a) s=D.aAt(r.aq,r.a2,!1) if(s.k(0,r.a2))return r.bY(s,a)}, vp:function(a){var s=this,r=s.a2 if(r.a==r.b&&r.d===s.gcg().length)return s.bY(X.hi(C.l,s.gcg().length),a)}, vq:function(a){var s=this.a2 if(s.a==s.b&&s.d===0)return this.bY(C.mg,a)}, O0:function(a){var s,r,q,p=this,o={},n=p.a2 if(n.a==n.b&&n.d<=0)return s=p.H4(n.d) o.a=$ n=new D.a2t(o) o=new D.a2u(o) r=s.a q=p.a2 if(r==q.d){o.$1(q.fU(0,0)) p.d3=!1}else{o.$1(q.fU(r,r)) p.cE=n.$0().d}p.bY(n.$0(),a)}, aw:function(){this.SF() var s=this.F if(s!=null)s.aw() s=this.N if(s!=null)s.aw()}, ie:function(){this.bx=this.bE=null this.a1()}, ok:function(){var s=this s.EC() s.aq.a1() s.bx=s.bE=null}, gcg:function(){var s=this.d8 return s==null?this.d8=this.aq.c.ae6(!1):s}, gbs:function(a){return this.aq.c}, sbs:function(a,b){var s=this,r=s.aq if(J.d(r.c,b))return r.sbs(0,b) s.d8=null s.ie() s.ao()}, slP:function(a,b){var s=this.aq if(s.d===b)return s.slP(0,b) this.ie()}, sbt:function(a,b){var s=this.aq if(s.e===b)return s.sbt(0,b) this.ie() this.ao()}, slv:function(a,b){var s=this.aq if(J.d(s.x,b))return s.slv(0,b) this.ie()}, siv:function(a,b){var s=this.aq if(J.d(s.z,b))return s.siv(0,b) this.ie()}, sQQ:function(a){var s=this,r=s.fl if(r===a)return if(s.b!=null)r.T(0,s.gtF()) s.fl=a if(s.b!=null){s.gdW().swm(s.fl.a) r=s.fl.P$ r.bQ(r.c,new B.bn(s.gtF()),!1)}}, a5c:function(){this.gdW().swm(this.fl.a)}, scn:function(a){var s,r=this if(r.fm===a)return r.fm=a r.ao() if(r.b==null)return s=r.gxP() if(r.fm){$.p1().a.push(s) r.ll=!0}else{C.b.u($.p1().a,s) r.ll=!1}}, saap:function(a){if(this.G)return this.G=!0 this.a1()}, sqC:function(a,b){if(this.a8===b)return this.a8=b this.ao()}, snp:function(a,b){if(this.aJ===b)return this.aJ=b this.ie()}, sacc:function(a){if(this.br==a)return this.br=a this.ie()}, sAX:function(a){return}, snL:function(a){var s=this.aq if(s.f===a)return s.snL(a) this.ie()}, sre:function(a){var s=this if(s.a2.k(0,a))return s.a2=a s.ax.svb(a) s.aw() s.ao()}, sbV:function(a,b){var s=this,r=s.eZ if(r==b)return if(s.b!=null)r.T(0,s.gdd()) s.eZ=b if(s.b!=null){r=b.P$ r.bQ(r.c,new B.bn(s.gdd()),!1)}s.a1()}, sa8K:function(a){if(this.ef===a)return this.ef=a this.a1()}, sa8J:function(a){return}, sad2:function(a){var s=this if(s.dK===a)return s.dK=a s.ae=s.b7=null s.Kd(s.S) s.Kj(s.au)}, sR3:function(a){if(this.c9===a)return this.c9=a this.aw()}, sa9y:function(a){if(this.an===a)return this.an=a this.aw()}, geL:function(){return!0}, eA:function(a){var s,r,q,p=this p.fC(a) s=p.aq r=s.c r.toString q=H.b([],t.O_) r.Af(q) p.n7=q if(C.b.hX(q,new D.a2d())&&U.e4()!==C.C){a.b=a.a=!0 return}a.aI=p.cl?C.c.a4(p.c_,p.gcg().length):p.gcg() a.d=!0 a.b6(C.lN,p.cl) a.b6(C.lX,p.aJ!==1) r=s.e r.toString a.aE=r a.d=!0 a.b6(C.hO,p.fm) a.b6(C.lP,!0) a.b6(C.lO,p.a8) if(p.fm&&p.geL())a.snF(p.ga1O()) if(p.fm&&!p.a8)a.snG(p.ga1Q()) if(p.geL())r=p.a2.ghB() else r=!1 if(r){r=p.a2 a.bT=r a.d=!0 if(s.Dd(r.d)!=null){a.snx(p.ga15()) a.snw(p.ga13())}if(s.Dc(p.a2.d)!=null){a.snz(p.ga19()) a.sny(p.ga17())}}}, a1R:function(a){this.aK.nR(new N.bb(a,X.hi(C.l,a.length),C.v),C.H)}, mS:function(b1,b2,b3){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5,a6=this,a7=null,a8=H.b([],t.QF),a9=a6.aq,b0=a9.e b0.toString s=P.jQ(a7,t.bu) r=a6.n7 r.toString r=G.arV(r) q=r.length p=t.k o=t._S n=t.HT m=t.I7 l=t.M k=a7 j=b0 i=0 h=0 g=0 for(;g"),a1=new H.fL(b,1,a7,c),a1.rz(b,1,a7,d.c),c=new H.bj(a1,a1.gl(a1),c.h("bj"));c.q();){d=c.d a=a.ka(new P.x(d.a,d.b,d.c,d.d)) a0=d.e}d=a.a c=Math.max(0,H.B(d)) a1=a.b a2=Math.max(0,H.B(a1)) d=Math.min(a.c-d,H.B(p.a(K.r.prototype.gX.call(a6)).b)) a1=Math.min(a.d-a1,H.B(p.a(K.r.prototype.gX.call(a6)).d)) k=new P.x(Math.floor(c)-4,Math.floor(a2)-4,Math.ceil(c+d)+4,Math.ceil(a2+a1)+4) a3=new A.r0(P.y(o,n),P.y(m,l)) a4=i+1 a3.r2=new A.nD(i,a7) a3.d=!0 a3.aE=j a1=f.b a3.aN=a1==null?b0:a1 b0=a6.ln a5=(b0==null?a7:!b0.gO(b0))===!0?a6.ln.lJ():A.J4(a7,a7) a5.Pn(0,a3) if(!J.d(a5.x,k)){a5.x=k a5.hQ()}s.dV(0,a5) a8.push(a5) i=a4 j=a0}a6.ln=s b1.jc(0,a8,b2)}, a1P:function(a){this.bY(a,C.H)}, a18:function(a){var s=this,r=s.aq.Dc(s.a2.d) if(r==null)return s.bY(X.cY(C.l,!a?r:s.a2.c,r,!1),C.H)}, a14:function(a){var s=this,r=s.aq.Dd(s.a2.d) if(r==null)return s.bY(X.cY(C.l,!a?r:s.a2.c,r,!1),C.H)}, a1a:function(a){var s,r=this,q=r.a2,p=r.GW(r.aq.a.fw(0,new P.aV(q.d,q.e)).b) if(p==null)return s=a?r.a2.c:p.a r.bY(X.cY(C.l,s,p.a,!1),C.H)}, a16:function(a){var s,r=this,q=r.a2,p=r.GY(r.aq.a.fw(0,new P.aV(q.d,q.e)).a-1) if(p==null)return s=a?r.a2.c:p.a r.bY(X.cY(C.l,s,p.a,!1),C.H)}, GW:function(a){var s,r,q for(s=this.aq;!0;){r=s.a.fw(0,new P.aV(a,C.l)) q=r.a q=!(q>=0&&r.b>=0)||q===r.b if(q)return null if(!this.I8(r))return r a=r.b}}, GY:function(a){var s,r,q for(s=this.aq;a>=0;){r=s.a.fw(0,new P.aV(a,C.l)) q=r.a q=!(q>=0&&r.b>=0)||q===r.b if(q)return null if(!this.I8(r))return r a=r.a-1}return null}, I8:function(a){var s,r,q,p for(s=a.a,r=a.b,q=this.aq;s1 n.HK(a) if(s){m=n.aq l=m.a l=l.gai(l) l.toString l=Math.ceil(l) m=m.gcS() r=n.br r.toString r=lm.gcS()*n.aJ if(l)return m.gcS()*n.aJ if(a===1/0){q=n.gcg() for(m=q.length,p=1,o=0;o=m)return X.z1(a) if(p.cl)return X.cY(C.l,0,p.gcg().length,!1) else if(D.RP(J.CU(p.gcg(),n))&&n>0){s=o.a r=p.GY(s) switch(U.e4()){case C.z:if(r==null){q=p.GW(s) if(q==null)return X.hi(C.l,n) return X.cY(C.l,n,q.b,!1)}return X.cY(C.l,r.a,n,!1) case C.I:if(p.a8){if(r==null)return X.cY(C.l,n,n+1,!1) return X.cY(C.l,r.a,n,!1)}break case C.M:case C.C:case C.D:case C.E:break default:throw H.a(H.j(u.I))}}return X.cY(C.l,o.a,m,!1)}, jw:function(a){var s=this.aq.a.w2(a),r=s.b if(a.a>=r)return X.z1(a) if(this.cl)return X.cY(C.l,0,this.gcg().length,!1) return X.cY(C.l,s.a,r,!1)}, fJ:function(a,b){var s,r,q,p,o=this if(o.bE==a&&o.bx==b)return s=Math.max(0,a-(1+o.ef)) r=Math.min(H.B(b),s) q=o.aJ!==1?s:1/0 p=o.G?s:r o.aq.vj(0,q,p) o.bx=b o.bE=a}, HK:function(a){return this.fJ(a,0)}, gkR:function(){var s=this.lj return s===$?H.e(H.t("_caretPrototype")):s}, Jt:function(a){var s,r=T.fu(this.de(0,null),a),q=1/this.d2,p=r.a p.toString p=isFinite(p)?C.d.aO(p/q)*q-p:0 s=r.b s.toString return new P.m(p,isFinite(s)?C.d.aO(s/q)*q-s:0)}, cB:function(a){var s,r,q,p=this,o=a.a,n=a.b p.fJ(n,o) if(p.G)s=n else{r=p.aq q=r.gay(r) r=r.a r=r.gai(r) r.toString Math.ceil(r) s=C.d.a6(q+(1+p.ef),o,n)}return new P.Q(s,C.d.a6(p.Iq(n),a.c,a.d))}, bM:function(){var s,r,q,p,o,n,m,l=this,k=t.k.a(K.r.prototype.gX.call(l)),j=k.a,i=k.b l.fJ(i,j) switch(U.e4()){case C.z:case C.C:s=l.ef r=l.aq.gcS() l.lj=new P.x(0,0,s,0+(r+2)) break case C.I:case C.M:case C.D:case C.E:s=l.ef r=l.aq.gcS() l.lj=new P.x(0,2,s,2+(r-4)) break default:H.e(H.j(u.I))}s=l.aq r=s.gay(s) q=s.a q=q.gai(q) q.toString q=Math.ceil(q) if(l.G)p=i else{o=s.gay(s) s=s.a s=s.gai(s) s.toString Math.ceil(s) p=C.d.a6(o+(1+l.ef),j,i)}l.r2=new P.Q(p,C.d.a6(l.Iq(i),k.c,k.d)) n=new P.Q(r+(1+l.ef),q) m=S.uX(n) j=l.F if(j!=null)j.ei(0,m) j=l.N if(j!=null)j.ei(0,m) l.by=l.a_F(n) l.eZ.u_(l.ga6G()) l.eZ.mR(0,l.by)}, DH:function(a,b,c,d){var s,r,q=this if(a===C.fQ){q.eX=C.i q.lk=null q.pM=q.bS=q.bq=!1}s=a!==C.e3 q.cI=s q.bL=d if(s){q.a7=c if(d!=null){s=V.anV(C.jO,C.aF,d) s.toString r=s}else r=C.jO q.gdW().sMO(r.Bz(q.gkR()).bJ(b))}else q.gdW().sMO(null) q.gdW().d=q.bL==null}, wh:function(a,b,c){return this.DH(a,b,c,null)}, Gn:function(a,b){var s,r,q,p,o,n,m=this,l=b.U(0,m.geu()),k=m.cI if(!k){k=m.r2 s=new P.x(0,0,0+k.a,0+k.b) k=m.aq r=m.a2 k.kT(new P.aV(r.a,r.e),m.gkR()) q=k.gkQ().a m.cw.sm(0,s.hz(0.5).C(0,q.U(0,l))) r=m.a2 k.kT(new P.aV(r.b,r.e),m.gkR()) p=k.gkQ().a m.e3.sm(0,s.hz(0.5).C(0,p.U(0,l)))}o=m.F n=m.N if(n!=null)a.dq(n,b) k=a.gbZ(a) r=m.aq.a r.toString k.eW(0,r,l) if(o!=null)a.dq(o,b)}, aD:function(a,b){var s,r,q,p=this,o=t.k,n=o.a(K.r.prototype.gX.call(p)).a p.fJ(o.a(K.r.prototype.gX.call(p)).b,n) if((p.by>0||!p.geu().k(0,C.i))&&p.eg!==C.V){o=p.geT() n=p.r2 p.bA=a.lF(o,b,new P.x(0,0,0+n.a,0+n.b),p.gZx(),p.eg,p.bA)}else{p.bA=null p.Gn(a,b)}o=p.PJ(p.a2) s=o[0].a n=J.aW(s.a,0,p.r2.a) r=J.aW(s.b,0,p.r2.b) a.qy(new T.nl(p.c9,new P.m(n,r)),K.r.prototype.gfq.call(p),C.i) if(o.length===2){q=o[1].a o=J.aW(q.a,0,p.r2.a) n=J.aW(q.b,0,p.r2.b) a.qy(new T.nl(p.an,new P.m(o,n)),K.r.prototype.gfq.call(p),C.i)}}, iM:function(a){var s if(this.by>0||!this.geu().k(0,C.i)){s=this.r2 s=new P.x(0,0,0+s.a,0+s.b)}else s=null return s}, d4:function(a){return this.gbs(this).$0()}} D.a2v.prototype={ $1:function(a){var s=this.a,r=s.a if(r<=this.b){s.a=r+a.length return!0}if(this.c)return!1 return D.RP(C.c.W(a,0))}, $S:29} D.a2j.prototype={ $1:function(a){var s=this.a if(s.a===$)return s.a=a else throw H.a(H.ew("nextSelection"))}, $S:22} D.a2i.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("nextSelection")):s}, $S:21} D.a2l.prototype={ $1:function(a){var s=this.a if(s.a===$)return s.a=a else throw H.a(H.ew("nextSelection"))}, $S:22} D.a2k.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("nextSelection")):s}, $S:21} D.a2n.prototype={ $1:function(a){var s=this.a if(s.a===$)return s.a=a else throw H.a(H.ew("nextSelection"))}, $S:22} D.a2m.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("nextSelection")):s}, $S:21} D.a2p.prototype={ $1:function(a){var s=this.a if(s.a===$)return s.a=a else throw H.a(H.ew("nextSelection"))}, $S:22} D.a2o.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("nextSelection")):s}, $S:21} D.a2f.prototype={ $1:function(a){var s=this.a if(s.a===$)return s.a=a else throw H.a(H.ew("nextSelection"))}, $S:22} D.a2e.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("nextSelection")):s}, $S:21} D.a2h.prototype={ $1:function(a){var s=this.a if(s.a===$)return s.a=a else throw H.a(H.ew("nextSelection"))}, $S:22} D.a2g.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("nextSelection")):s}, $S:21} D.a2s.prototype={ $1:function(a){var s=this.a if(s.a===$)return s.a=a else throw H.a(H.ew("nextSelection"))}, $S:22} D.a2r.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("nextSelection")):s}, $S:21} D.a2u.prototype={ $1:function(a){var s=this.a if(s.a===$)return s.a=a else throw H.a(H.ew("nextSelection"))}, $S:22} D.a2t.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("nextSelection")):s}, $S:21} D.a2d.prototype={ $1:function(a){a.toString return!1}, $S:127} D.a2q.prototype={ $2:function(a,b){var s=a==null?null:a.ka(new P.x(b.a,b.b,b.c,b.d)) return s==null?new P.x(b.a,b.b,b.c,b.d):s}, $S:252} D.a2x.prototype={ $1:function(a){return this.a.a=a}, $S:22} D.a2w.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("newSelection")):s}, $S:21} D.OU.prototype={ ga9:function(a){return t.CA.a(B.I.prototype.ga9.call(this,this))}, gav:function(){return!0}, gjk:function(){return!0}, sqq:function(a){var s,r=this,q=r.F if(a===q)return r.F=a s=a.eq(q) if(s)r.aw() if(r.b!=null){s=r.gdd() q.T(0,s) a.aQ(0,s)}}, aD:function(a,b){var s,r,q=this,p=t.CA.a(B.I.prototype.ga9.call(q,q)),o=q.F if(p!=null){s=a.gbZ(a) r=q.r2 r.toString o.fs(s,r,p)}}, ag:function(a){this.dU(a) this.F.aQ(0,this.gdd())}, ab:function(a){this.F.T(0,this.gdd()) this.dw(0)}, cB:function(a){return new P.Q(C.f.a6(1/0,a.a,a.b),C.f.a6(1/0,a.c,a.d))}} D.lx.prototype={} D.BK.prototype={ sva:function(a){if(J.d(a,this.c))return this.c=a this.aa()}, svb:function(a){if(J.d(a,this.d))return this.d=a this.aa()}, sDu:function(a){if(this.e===a)return this.e=a this.aa()}, sDv:function(a){if(this.f===a)return this.f=a this.aa()}, fs:function(a,b,c){var s,r,q,p,o,n=this,m=n.d,l=n.c if(m==null||l==null||m.a==m.b)return s=n.b s.sap(0,l) r=c.aq.CX(X.cY(C.l,m.a,m.b,!1),n.e,n.f) for(q=r.length,p=0;p>>16&255,o>>>8&255,o&255)}if(r||g==null||!f.b)return r=P.xE(s.bJ(c.geu()),C.Bh) o=f.f if(o===$){o=H.aF() o=o?H.b_():new H.aR(new H.aT()) if(f.f===$)f.f=o else o=H.e(H.bS("floatingCursorPaint"))}o.sap(0,g) a.ct(0,r,o)}, eq:function(a){var s=this if(s===a)return!1 if(a==null)return s.b return!(a instanceof D.Ab)||a.b!=s.b||a.d!==s.d||!J.d(a.r,s.r)||!J.d(a.x,s.x)||!a.y.k(0,s.y)||!J.d(a.z,s.z)||!J.d(a.Q,s.Q)}} D.t8.prototype={ aQ:function(a,b){var s,r,q for(s=this.b,r=s.length,q=0;q")) s=this.b q=new J.dA(s,s.length,H.Y(s).h("dA<1>")) while(!0){if(!(r.q()&&q.q()))break if(q.d.eq(r.d))return!0}return!1}} D.B8.prototype={ ag:function(a){this.dU(a) $.iS.n6$.a.B(0,this.goj())}, ab:function(a){$.iS.n6$.a.u(0,this.goj()) this.dw(0)}} V.Ib.prototype={ WC:function(a){var s,r,q try{r=this.F if(r!==""){s=P.a0W($.at6()) J.an0(s,$.at7()) J.amc(s,r) this.N=J.auS(s)}else this.N=null}catch(q){H.U(q)}}, gjk:function(){return!0}, h0:function(a){return!0}, cB:function(a){return a.bH(C.C5)}, aD:function(a,b){var s,r,q,p,o,n,m,l,k,j,i=this try{p=a.gbZ(a) o=i.r2 n=b.a m=b.b l=o.a o=o.b k=H.aF() k=k?H.b_():new H.aR(new H.aT()) k.sap(0,$.at5()) p.ck(0,new P.x(n,m,n+l,m+o),k) p=i.N if(p!=null){s=i.r2.a r=0 q=0 if(s>328){s-=128 r+=64}p.ei(0,new P.iT(s)) p=i.r2.b o=i.N if(p>96+o.gai(o)+12)q+=96 p=a.gbZ(a) o=i.N o.toString p.eW(0,o,b.U(0,new P.m(r,q)))}}catch(j){H.U(j)}}} F.Fz.prototype={ j:function(a){return this.b}} F.dB.prototype={ j:function(a){return this.oc(0)+"; flex="+H.c(this.e)+"; fit="+H.c(this.f)}} F.Gu.prototype={ j:function(a){return this.b}} F.ll.prototype={ j:function(a){return this.b}} F.mF.prototype={ j:function(a){return this.b}} F.qM.prototype={ ep:function(a){if(!(a.d instanceof F.dB))a.d=new F.dB(null,null,C.i)}, dA:function(a){if(this.F===C.o)return this.M3(a) return this.a8V(a)}, t_:function(a){switch(this.F){case C.o:return a.b case C.n:return a.a default:throw H.a(H.j(u.I))}}, t1:function(a){switch(this.F){case C.o:return a.a case C.n:return a.b default:throw H.a(H.j(u.I))}}, cB:function(a){var s if(this.au===C.fG)return C.r s=this.FR(a,N.ai3()) switch(this.F){case C.o:return a.bH(new P.Q(s.a,s.b)) case C.n:return a.bH(new P.Q(s.b,s.a)) default:throw H.a(H.j(u.I))}}, FR:function(a3,a4){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b=this,a=u.I,a0=b.F===C.o?a3.b:a3.d,a1=a0<1/0,a2=b.a7$ for(s=t.US,r=0,q=0,p=0,o=null;a2!=null;){n=a2.d n.toString s.a(n) m=n.e if(m==null)m=0 if(m>0){r+=m o=a2}else{if(b.au===C.fF)switch(b.F){case C.o:l=S.hB(a3.d,null) break case C.n:l=S.hB(null,a3.b) break default:throw H.a(H.j(a))}else switch(b.F){case C.o:l=new S.aN(0,1/0,0,a3.d) break case C.n:l=new S.aN(0,a3.b,0,1/0) break default:throw H.a(H.j(a))}k=a4.$2(a2,l) p+=b.t1(k) q=Math.max(q,H.B(b.t_(k)))}a2=n.an$}j=Math.max(0,(a1?a0:0)-p) if(r>0){i=a1?j/r:0/0 a2=b.a7$ for(h=0;a2!=null;){g={} n=a2.d n.toString s.a(n) m=n.e if(m==null)m=0 if(m>0){if(a1)f=a2===o?j-h:i*m else f=1/0 g.a=$ e=new F.a2y(g) d=new F.a2z(g) n=n.f switch(n==null?C.fP:n){case C.fP:d.$1(f) break case C.qx:d.$1(0) break default:throw H.a(H.j(a))}if(b.au===C.fF)switch(b.F){case C.o:n=e.$0() c=a3.d l=new S.aN(n,f,c,c) break case C.n:n=a3.b l=new S.aN(n,n,e.$0(),f) break default:throw H.a(H.j(a))}else switch(b.F){case C.o:l=new S.aN(e.$0(),f,0,a3.d) break case C.n:l=new S.aN(0,a3.b,e.$0(),f) break default:throw H.a(H.j(a))}k=a4.$2(a2,l) p+=b.t1(k) h+=f q=Math.max(q,H.B(b.t_(k)))}n=a2.d n.toString a2=s.a(n).an$}}return new F.abp(a1&&b.S===C.x?a0:p,q,p)}, bM:function(){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b=this,a=u.I,a0={},a1=t.k.a(K.r.prototype.gX.call(b)),a2=b.FR(a1,N.ai4()),a3=a2.a,a4=a2.b if(b.au===C.fG){s=b.a7$ for(r=t.US,q=0,p=0,o=0;s!=null;){n=b.aU n.toString m=s.qY(n,!0) if(m!=null){q=Math.max(q,m) p=Math.max(m,p) o=Math.max(s.r2.b-m,o) a4=Math.max(p+o,a4)}n=s.d n.toString s=r.a(n).an$}}else q=0 switch(b.F){case C.o:r=b.r2=a1.bH(new P.Q(a3,a4)) a3=r.a a4=r.b break case C.n:r=b.r2=a1.bH(new P.Q(a4,a3)) a3=r.b a4=r.a break default:throw H.a(H.j(a))}l=a3-a2.c b.b7=Math.max(0,-l) k=Math.max(0,l) a0.a=$ j=new F.a2C(a0) i=new F.a2D(a0) a0.b=$ h=new F.a2A(a0) g=new F.a2B(a0) r=F.arP(b.F,b.aB,b.ax) f=r===!1 switch(b.N){case C.B:i.$1(0) g.$1(0) break case C.wK:i.$1(k) g.$1(0) break case C.hk:i.$1(k/2) g.$1(0) break case C.kS:i.$1(0) r=b.cI$ g.$1(r>1?k/(r-1):0) break case C.wL:r=b.cI$ g.$1(r>0?k/r:0) i.$1(h.$0()/2) break case C.wM:r=b.cI$ g.$1(r>0?k/(r+1):0) i.$1(h.$0()) break default:throw H.a(H.j(a))}e=f?a3-j.$0():j.$0() s=b.a7$ for(r=t.US;s!=null;){n=s.d n.toString r.a(n) d=b.au switch(d){case C.fE:case C.jF:if(F.arP(G.aFl(b.F),b.aB,b.ax)===(d===C.fE))c=0 else{d=s.r2 d.toString c=a4-b.t_(d)}break case C.w:d=s.r2 d.toString c=a4/2-b.t_(d)/2 break case C.fF:c=0 break case C.fG:if(b.F===C.o){d=b.aU d.toString m=s.qY(d,!0) c=m!=null?q-m:0}else c=0 break default:throw H.a(H.j(a))}if(f){d=s.r2 d.toString e-=b.t1(d)}switch(b.F){case C.o:n.a=new P.m(e,c) break case C.n:n.a=new P.m(c,e) break default:throw H.a(H.j(a))}if(f)e-=h.$0() else{d=s.r2 d.toString e+=b.t1(d)+h.$0()}s=n.an$}}, cR:function(a,b){return this.Ax(a,b)}, aD:function(a,b){var s,r,q=this if(!(q.b7>1e-10)){q.ps(a,b) return}s=q.r2 if(s.gO(s))return if(q.ae===C.V){q.bf=null q.ps(a,b)}else{s=q.geT() r=q.r2 q.bf=a.lF(s,b,new P.x(0,0,0+r.a,0+r.b),q.ga8W(),q.ae,q.bf)}}, iM:function(a){var s if(this.b7>1e-10){s=this.r2 s=new P.x(0,0,0+s.a,0+s.b)}else s=null return s}, cp:function(){var s=this.SG() return this.b7>1e-10?s+" OVERFLOWING":s}} F.a2z.prototype={ $1:function(a){var s=this.a if(s.a===$)return s.a=a else throw H.a(H.ew("minChildExtent"))}, $S:49} F.a2y.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("minChildExtent")):s}, $S:34} F.a2B.prototype={ $1:function(a){var s=this.a if(s.b===$)return s.b=a else throw H.a(H.ew("betweenSpace"))}, $S:49} F.a2D.prototype={ $1:function(a){var s=this.a if(s.a===$)return s.a=a else throw H.a(H.ew("leadingSpace"))}, $S:49} F.a2C.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("leadingSpace")):s}, $S:34} F.a2A.prototype={ $0:function(){var s=this.a.b return s===$?H.e(H.c1("betweenSpace")):s}, $S:34} F.abp.prototype={} F.OV.prototype={ ag:function(a){var s,r,q this.dU(a) s=this.a7$ for(r=t.US;s!=null;){s.ag(a) q=s.d q.toString s=r.a(q).an$}}, ab:function(a){var s,r,q this.dw(0) s=this.a7$ for(r=t.US;s!=null;){s.ab(0) q=s.d q.toString s=r.a(q).an$}}} F.OW.prototype={} F.OX.prototype={} U.If.prototype={ a2j:function(){var s=this if(s.F!=null)return s.F=s.aS s.N=!1}, HR:function(){this.N=this.F=null this.aw()}, sfn:function(a,b){var s=this,r=s.S if(b==r)return if(b!=null&&r!=null&&b.BE(r)){b.p(0) return}r=s.S if(r!=null)r.p(0) s.S=b s.aw() if(s.aB==null||!1)s.a1()}, say:function(a,b){if(b==this.aB)return this.aB=b this.a1()}, sai:function(a,b){if(b===this.ax)return this.ax=b this.a1()}, sQd:function(a,b){if(b===this.aU)return this.aU=b this.a1()}, a6m:function(){this.b7=null}, sap:function(a,b){return}, suR:function(a){if(a===this.bf)return this.bf=a this.aw()}, sa84:function(a){return}, saab:function(a){return}, sex:function(a){if(a.k(0,this.aS))return this.aS=a this.HR()}, sadJ:function(a,b){if(b===this.cD)return this.cD=b this.aw()}, sa7K:function(a){return}, sve:function(a){if(a==this.d2)return this.d2=a this.aw()}, sac4:function(a){return}, sbt:function(a,b){if(this.cl==b)return this.cl=b this.HR()}, Jr:function(a){var s,r,q=this,p=q.aB a=S.hB(q.ax,p).pH(a) p=q.S if(p==null)return new P.Q(C.f.a6(0,a.a,a.b),C.f.a6(0,a.c,a.d)) p=p.gay(p) p.toString s=q.aU r=q.S r=r.gai(r) r.toString return a.a8g(new P.Q(p/s,r/q.aU))}, h0:function(a){return!0}, cB:function(a){return this.Jr(a)}, bM:function(){this.r2=this.Jr(t.k.a(K.r.prototype.gX.call(this)))}, aD:function(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d=this if(d.S==null)return d.a2j() s=a.gbZ(a) r=d.r2 q=b.a p=b.b o=r.a r=r.b n=d.S n.toString m=d.au l=d.aU k=d.b7 j=d.bx i=d.F i.toString h=d.e2 g=d.cD f=d.N f.toString e=d.d2 X.ast(i,s,h,k,m,d.bf,j,f,n,e,!1,new P.x(q,p,q+o,p+r),g,l)}} T.uF.prototype={ j:function(a){return"AnnotationEntry(annotation: "+this.a.j(0)+", localPosition: "+this.b.j(0)+")"}} T.D8.prototype={} T.wv.prototype={ dc:function(){if(this.d)return this.d=!0}, gjP:function(){return!1}, sfZ:function(a){var s,r=this r.e=a if(!r.gjP()){s=t.Hb if(s.a(B.I.prototype.ga9.call(r,r))!=null&&!s.a(B.I.prototype.ga9.call(r,r)).gjP())s.a(B.I.prototype.ga9.call(r,r)).dc()}}, vU:function(){this.d=this.d||this.gjP()}, fX:function(a){if(!this.gjP())this.dc() this.wC(a)}, c4:function(a){var s,r,q=this,p=t.Hb.a(B.I.prototype.ga9.call(q,q)) if(p!=null){s=q.r r=q.f if(s==null)p.ch=r else s.f=r r=q.f if(r==null)p.cx=s else r.r=s q.f=q.r=null p.fX(q)}}, eh:function(a,b,c){return!1}, MK:function(a,b,c){var s=H.b([],c.h("o>")) this.eh(new T.D8(s,c.h("D8<0>")),b,!0,c) return s.length===0?null:C.b.gI(s).a}, XI:function(a){var s,r=this if(!r.d&&r.e!=null){s=r.e s.toString a.KW(s) return}r.fe(a) r.d=!1}, cp:function(){var s=this.RS() return s+(this.b==null?" DETACHED":"")}} T.HE.prototype={ cP:function(a,b){var s=this.cx s.toString a.KV(b,s,this.cy,this.db)}, fe:function(a){return this.cP(a,C.i)}, eh:function(a,b,c){return!1}} T.Hw.prototype={ cP:function(a,b){var s=this.ch s=b.k(0,C.i)?s:s.bJ(b) a.KU(this.cx,s) a.DN(this.cy) a.DB(!1) a.DA(!1)}, fe:function(a){return this.cP(a,C.i)}, eh:function(a,b,c){return!1}} T.dP.prototype={ a7v:function(a){this.vU() this.fe(a) this.d=!1 return a.bm(0)}, vU:function(){var s,r=this r.Sg() s=r.ch for(;s!=null;){s.vU() r.d=r.d||s.d s=s.f}}, eh:function(a,b,c,d){var s,r,q for(s=this.cx,r=a.a;s!=null;s=s.r){if(s.eh(a,b,!0,d))return!0 q=r.length if(q!==0)return!1}return!1}, ag:function(a){var s this.wB(a) s=this.ch for(;s!=null;){s.ag(a) s=s.f}}, ab:function(a){var s this.dw(0) s=this.ch for(;s!=null;){s.ab(0) s=s.f}}, L4:function(a,b){var s,r=this if(!r.gjP())r.dc() r.wA(b) s=b.r=r.cx if(s!=null)s.f=b r.cx=b if(r.ch==null)r.ch=b}, OH:function(){var s,r=this,q=r.ch for(;q!=null;q=s){s=q.f q.f=q.r=null if(!r.gjP())r.dc() r.wC(q)}r.cx=r.ch=null}, cP:function(a,b){this.mN(a,b)}, fe:function(a){return this.cP(a,C.i)}, mN:function(a,b){var s,r,q,p=this.ch for(s=0===b.a,r=0===b.b;p!=null;){q=s&&r if(q)p.XI(a) else p.cP(a,b) p=p.f}}, mM:function(a){return this.mN(a,C.i)}, la:function(a,b){}} T.jV.prototype={ sbV:function(a,b){if(!b.k(0,this.id))this.dc() this.id=b}, eh:function(a,b,c,d){return this.jl(a,b.a5(0,this.id),!0,d)}, la:function(a,b){var s=this.id b.cz(0,E.nr(s.a,s.b,0))}, cP:function(a,b){var s=this,r=s.id s.sfZ(a.Ow(b.a+r.a,b.b+r.b,t.Ff.a(s.e))) s.mM(a) a.dr(0)}, fe:function(a){return this.cP(a,C.i)}} T.vg.prototype={ eh:function(a,b,c,d){if(!this.id.C(0,b))return!1 return this.jl(a,b,!0,d)}, cP:function(a,b){var s,r=this,q=b.k(0,C.i),p=r.id if(q){p.toString s=p}else s=p.bJ(b) r.sfZ(a.Ov(s,r.k1,t.e4.a(r.e))) r.mN(a,b) a.dr(0)}, fe:function(a){return this.cP(a,C.i)}} T.Eh.prototype={ eh:function(a,b,c,d){if(!this.id.C(0,b))return!1 return this.jl(a,b,!0,d)}, cP:function(a,b){var s,r=this,q=b.k(0,C.i),p=r.id if(q){p.toString s=p}else s=p.bJ(b) r.sfZ(a.Ou(s,r.k1,t.cW.a(r.e))) r.mN(a,b) a.dr(0)}, fe:function(a){return this.cP(a,C.i)}} T.vf.prototype={ eh:function(a,b,c,d){if(!this.id.C(0,b))return!1 return this.jl(a,b,!0,d)}, cP:function(a,b){var s,r=this,q=b.k(0,C.i),p=r.id if(q){p.toString s=p}else s=p.bJ(b) r.sfZ(a.Ot(s,r.k1,t.Ax.a(r.e))) r.mN(a,b) a.dr(0)}, fe:function(a){return this.cP(a,C.i)}} T.rW.prototype={ sc0:function(a,b){var s=this if(b.k(0,s.y1))return s.y1=b s.at=!0 s.dc()}, cP:function(a,b){var s,r,q,p=this p.y2=p.y1 s=p.id.U(0,b) if(!s.k(0,C.i)){r=E.nr(s.a,s.b,0) q=p.y2 q.toString r.cz(0,q) p.y2=r}p.sfZ(a.qA(p.y2.a,t.qf.a(p.e))) p.mM(a) a.dr(0)}, fe:function(a){return this.cP(a,C.i)}, zr:function(a){var s,r=this if(r.at){s=r.y1 s.toString r.ac=E.wS(F.akc(s)) r.at=!1}s=r.ac if(s==null)return null return T.fu(s,a)}, eh:function(a,b,c,d){var s=this.zr(b) if(s==null)return!1 return this.Sk(a,s,!0,d)}, la:function(a,b){var s=this.y2 if(s==null){s=this.y1 s.toString b.cz(0,s)}else b.cz(0,s)}} T.xg.prototype={ la:function(a,b){var s=this.k1 b.af(0,s.a,s.b)}, cP:function(a,b){var s,r=this,q=r.ch!=null if(q){s=r.id s.toString r.sfZ(a.Ox(s,r.k1.U(0,b),t.Zr.a(r.e)))}else r.sfZ(null) r.mM(a) if(q)a.dr(0)}, fe:function(a){return this.cP(a,C.i)}} T.xv.prototype={ sLo:function(a,b){if(b!==this.id){this.id=b this.dc()}}, siH:function(a){if(a!==this.k1){this.k1=a this.dc()}}, sk6:function(a,b){if(b!=this.k2){this.k2=b this.dc()}}, sap:function(a,b){if(!J.d(b,this.k3)){this.k3=b this.dc()}}, so3:function(a,b){if(!J.d(b,this.k4)){this.k4=b this.dc()}}, eh:function(a,b,c,d){if(!this.id.C(0,b))return!1 return this.jl(a,b,!0,d)}, cP:function(a,b){var s,r,q=this,p=b.k(0,C.i),o=q.id if(p){o.toString p=o}else p=o.bJ(b) o=q.k2 o.toString s=q.k3 s.toString r=q.k4 q.sfZ(a.Oz(q.k1,s,o,t._c.a(q.e),p,r)) q.mN(a,b) a.dr(0)}, fe:function(a){return this.cP(a,C.i)}} T.ww.prototype={ j:function(a){var s="#"+Y.cf(this)+"(" return s+(this.a!=null?"":"")+")"}} T.nl.prototype={ gjP:function(){return!0}, ag:function(a){var s=this s.RG(a) s.k2=null s.id.a=s}, ab:function(a){this.k2=this.id.a=null this.RH(0)}, eh:function(a,b,c,d){return this.jl(a,b.a5(0,this.k1),!0,d)}, cP:function(a,b){var s=this,r=s.k1.U(0,b) s.k2=r if(!r.k(0,C.i)){r=s.k2 s.sfZ(a.qA(E.nr(r.a,r.b,0).a,t.qf.a(s.e)))}s.mM(a) if(!J.d(s.k2,C.i))a.dr(0)}, fe:function(a){return this.cP(a,C.i)}, la:function(a,b){var s if(!J.d(this.k2,C.i)){s=this.k2 b.af(0,s.a,s.b)}}} T.w0.prototype={ zr:function(a){var s,r,q,p,o=this if(o.rx){s=o.Db() s.toString o.r2=E.wS(s) o.rx=!1}if(o.r2==null)return null r=new E.ic(new Float64Array(4)) r.rl(a.a,a.b,0,1) s=o.r2.b1(0,r).a q=s[0] p=o.k3 return new P.m(q-p.a,s[1]-p.b)}, eh:function(a,b,c,d){var s if(this.id.a==null)return!1 s=this.zr(b) if(s==null)return!1 return this.jl(a,s,!0,d)}, Db:function(){var s,r if(this.r1==null)return null s=this.k4 r=E.nr(-s.a,-s.b,0) s=this.r1 s.toString r.cz(0,s) return r}, ZH:function(){var s,r,q,p,o,n,m=this m.r1=null s=m.id.a if(s==null)return r=t.KV q=H.b([s],r) p=H.b([m],r) T.Xn(s,m,q,p) o=T.ao8(q) s.la(null,o) r=m.k3 o.af(0,r.a,r.b) n=T.ao8(p) if(n.jZ(n)===0)return n.cz(0,o) m.r1=n m.rx=!0}, gjP:function(){return!0}, cP:function(a,b){var s,r,q=this if(q.id.a==null&&!0){q.k4=q.r1=null q.rx=!0 q.sfZ(null) return}q.ZH() s=q.r1 r=t.qf if(s!=null){q.sfZ(a.qA(s.a,r.a(q.e))) q.mM(a) a.dr(0) q.k4=q.k2.U(0,b)}else{q.k4=null s=q.k2 q.sfZ(a.qA(E.nr(s.a,s.b,0).a,r.a(q.e))) q.mM(a) a.dr(0)}q.rx=!0}, fe:function(a){return this.cP(a,C.i)}, la:function(a,b){var s=this.r1 if(s!=null)b.cz(0,s) else{s=this.k2 b.cz(0,E.nr(s.a,s.b,0))}}} T.uE.prototype={ eh:function(a,b,c,d){var s,r,q,p=this,o=p.jl(a,b,!0,d),n=a.a if(n.length!==0&&!0)return o s=p.k1 if(s!=null){r=p.k2 q=r.a r=r.b s=!new P.x(q,r,q+s.a,r+s.b).C(0,b)}else s=!1 if(s)return o if(H.bO(p.$ti.c)===H.bO(d)){o=o||!1 n.push(new T.uF(d.a(p.id),b.a5(0,p.k2),d.h("uF<0>")))}return o}} T.No.prototype={} A.NM.prototype={ adK:function(a){var s=this.a this.a=a return s}, j:function(a){var s="#",r="latestEvent: "+(s+Y.cf(this.b)),q=this.a,p="annotations: [list of "+q.gl(q)+"]" return s+Y.cf(this)+"("+r+", "+p+")"}} A.NN.prototype={ giN:function(a){var s=this.c return s.giN(s)}} A.GI.prototype={ Hs:function(a){var s,r,q,p,o,n,m=t._h,l=t.KM.a(P.y(m,t.xV)) for(s=a.a,r=s.length,q=0;q"}} K.qw.prototype={ dq:function(a,b){var s if(a.gav()){this.ob() if(a.fr)K.aoW(a,null,!0) s=a.db s.toString t.gY.a(s).sbV(0,b) s=a.db s.toString this.zW(s)}else a.If(this,b)}, zW:function(a){a.c4(0) this.a.L4(0,a)}, gbZ:function(a){var s,r=this if(r.e==null){r.c=new T.HE(r.b) s=P.ap3() r.d=s r.e=P.anB(s,null) s=r.c s.toString r.a.L4(0,s)}s=r.e s.toString return s}, ob:function(){var s,r,q=this if(q.e==null)return s=q.c s.toString r=q.d.uL() s.dc() s.cx=r q.e=q.d=q.c=null}, DL:function(){var s=this.c if(s!=null)if(!s.cy){s.cy=!0 s.dc()}}, kw:function(a,b,c,d){var s,r=this if(a.ch!=null)a.OH() r.ob() r.zW(a) s=r.a8D(a,d==null?r.b:d) b.$2(s,c) s.ob()}, qy:function(a,b,c){return this.kw(a,b,c,null)}, a8D:function(a,b){return new K.qw(a,b)}, lF:function(a,b,c,d,e,f){var s,r=c.bJ(b) if(a){s=f==null?new T.vg(C.ak):f if(!r.k(0,s.id)){s.id=r s.dc()}if(e!==s.k1){s.k1=e s.dc()}this.kw(s,d,b,r) return s}else{this.a7Z(r,e,r,new K.a0V(this,d,b)) return null}}, adc:function(a,b,c,d,e,f){var s,r=c.bJ(b),q=d.bJ(b) if(a){s=f==null?new T.Eh(C.bQ):f if(!q.k(0,s.id)){s.id=q s.dc()}if(C.bQ!==s.k1){s.k1=C.bQ s.dc()}this.kw(s,e,b,r) return s}else{this.a7Y(q,C.bQ,r,new K.a0U(this,e,b)) return null}}, adb:function(a,b,c,d,e,f,g){var s,r=c.bJ(b),q=d.bJ(b) if(a){s=g==null?new T.vf(C.bQ):g if(q!==s.id){s.id=q s.dc()}if(f!==s.k1){s.k1=f s.dc()}this.kw(s,e,b,r) return s}else{this.a7W(q,f,r,new K.a0T(this,e,b)) return null}}, Cl:function(a,b,c,d,e){var s,r=this,q=b.a,p=b.b,o=E.nr(q,p,0) o.cz(0,c) o.af(0,-q,-p) if(a){s=e==null?new T.rW(null,C.i):e s.sc0(0,o) r.kw(s,d,b,T.aoI(o,r.b)) return s}else{q=r.gbZ(r) q.bu(0) q.b1(0,o.a) d.$2(r,b) r.gbZ(r).bj(0) return null}}, adg:function(a,b,c,d){return this.Cl(a,b,c,d,null)}, Oy:function(a,b,c,d){var s=d==null?new T.xg(C.i):d if(b!=s.id){s.id=b s.dc()}if(!a.k(0,s.k1)){s.k1=a s.dc()}this.qy(s,c,C.i) return s}, j:function(a){return"PaintingContext#"+H.di(this)+"(layer: "+H.c(this.a)+", canvas bounds: "+this.b.j(0)+")"}} K.a0V.prototype={ $0:function(){return this.b.$2(this.a,this.c)}, $S:0} K.a0U.prototype={ $0:function(){return this.b.$2(this.a,this.c)}, $S:0} K.a0T.prototype={ $0:function(){return this.b.$2(this.a,this.c)}, $S:0} K.UM.prototype={} K.a4q.prototype={ p:function(a){var s=this.b if(s!=null)this.a.Q.T(0,s) s=this.a if(--s.ch===0){s.Q.p(0) s.Q=null s.c.$0()}}} K.HG.prototype={ qG:function(){this.a.$0()}, sadX:function(a){var s=this.d if(s===a)return if(s!=null)s.ab(0) this.d=a a.ag(this)}, aaf:function(){var s,r,q,p,o,n,m,l try{for(q=t.W,p=t.TT;o=this.e,o.length!==0;){s=o this.e=H.b([],p) o=s n=new K.a1c() if(!!o.immutable$list)H.e(P.F("sort")) m=o.length-1 if(m-0<=32)H.JA(o,0,m,n) else H.Jz(o,0,m,n) n=o.length l=0 for(;l0;m=l){l=m-1 r[m].di(r[l],n)}return n}, iM:function(a){return null}, AC:function(a){return null}, eA:function(a){}, rh:function(a){var s,r=this if(t.W.a(B.I.prototype.gca.call(r)).Q==null)return s=r.go if(s!=null&&!s.cx)s.Qp(a) else if(r.ga9(r)!=null){s=r.ga9(r) s.toString t.F.a(s).rh(a)}}, gz9:function(){var s,r=this if(r.fx==null){s=A.J2() r.fx=s r.eA(s)}s=r.fx s.toString return s}, mU:function(){this.fy=!0 this.go=null this.be(new K.a2O())}, ao:function(){var s,r,q,p,o,n,m,l,k,j,i=this if(i.b==null||t.W.a(B.I.prototype.gca.call(i)).Q==null){i.fx=null return}if(i.go!=null){s=i.fx r=(s==null?null:s.a)===!0}else r=!1 i.fx=null q=i.gz9().a&&r s=t.F p=t._S o=t.HT n=t.I7 m=t.M l=i while(!0){if(!(!q&&l.ga9(l) instanceof K.r))break if(l!==i&&l.fy)break l.fy=!0 k=l.ga9(l) k.toString s.a(k) if(k.fx==null){j=new A.r0(P.y(p,o),P.y(n,m)) k.fx=j k.eA(j)}q=k.fx.a if(q&&k.go==null)return l=k}if(l!==i&&i.go!=null&&i.fy)t.W.a(B.I.prototype.gca.call(i)).cy.u(0,i) if(!l.fy){l.fy=!0 s=t.W if(s.a(B.I.prototype.gca.call(i))!=null){s.a(B.I.prototype.gca.call(i)).cy.B(0,l) s.a(B.I.prototype.gca.call(i)).qG()}}}, a6u:function(){var s,r,q,p,o,n,m=this,l=null if(m.z)return s=m.go if(s==null)s=l else{s=t.LQ.a(B.I.prototype.ga9.call(s,s)) if(s==null)s=l else s=s.cy||s.cx}r=t.pp.a(m.H1(s===!0)) q=H.b([],t.QF) s=m.go p=s==null o=p?l:s.y n=p?l:s.z s=p?l:s.Q r.mW(s==null?0:s,n,o,q) C.b.gc5(q)}, H1:function(a){var s,r,q,p,o,n,m,l=this,k={},j=l.gz9() k.a=j.c s=!j.d&&!j.a r=t.CZ q=H.b([],r) p=P.aZ(t.pp) o=a||j.ac k.b=!1 l.f8(new K.a2M(k,l,o,q,p,j,s)) if(k.b)return new K.KO(H.b([l],t.TT),!1) for(n=P.cq(p,p.r,p.$ti.c);n.q();)n.d.vl() l.fy=!1 if(!(l.ga9(l) instanceof K.r)){n=k.a m=new K.Pf(H.b([],r),H.b([l],t.TT),n)}else{n=k.a if(s)m=new K.a9x(H.b([],r),n) else{m=new K.Q3(a,j,H.b([],r),H.b([l],t.TT),n) if(j.a)m.y=!0}}m.J(0,q) return m}, f8:function(a){this.be(a)}, mS:function(a,b,c){a.jc(0,t.V1.a(c),b)}, i5:function(a,b){}, cp:function(){var s,r,q=this,p="#"+Y.cf(q),o=q.Q if(o!=null&&o!==q){o=t.Rn s=o.a(q.ga9(q)) r=1 while(!0){if(!(s!=null&&s!==q.Q))break s=o.a(s.ga9(s));++r}p+=" relayoutBoundary=up"+r}if(q.z)p+=" NEEDS-LAYOUT" if(q.fr)p+=" NEEDS-PAINT" if(q.dx)p+=" NEEDS-COMPOSITING-BITS-UPDATE" return q.b==null?p+" DETACHED":p}, j:function(a){return this.cp()}, eb:function(a,b,c,d){var s,r=this if(r.ga9(r) instanceof K.r){s=r.ga9(r) s.toString t.F.a(s) s.eb(a,b==null?r:b,c,d)}}, o6:function(){return this.eb(C.ax,null,C.G,null)}, m5:function(a){return this.eb(C.ax,null,C.G,a)}, m6:function(a,b,c){return this.eb(a,null,b,c)}} K.a2L.prototype={ $0:function(){var s=this return P.d9(function(){var r=0,q=1,p,o return function $async$$0(a,b){if(a===1){p=b r=q}while(true)switch(r){case 0:o=s.a r=2 return Y.ajf("The following RenderObject was being processed when the exception was fired",C.q2,o) case 2:r=3 return Y.ajf("RenderObject",C.q3,o) case 3:return P.d5() case 1:return P.d6(p)}}},t.EX)}, $S:20} K.a2P.prototype={ $0:function(){this.b.$1(this.c.a(this.a.gX()))}, $S:0} K.a2N.prototype={ $1:function(a){a.K9() if(a.geT())this.a.dy=!0}, $S:58} K.a2O.prototype={ $1:function(a){a.mU()}, $S:58} K.a2M.prototype={ $1:function(a){var s,r,q,p,o,n,m,l,k,j,i,h,g,f=this,e=f.a if(e.b||f.b.z){e.b=!0 return}s=a.H1(f.c) if(s.gKN()){e.b=!0 return}if(s.a){C.b.sl(f.d,0) f.e.az(0) if(!f.f.a)e.a=!0}for(e=s.gNm(),r=e.length,q=f.d,p=f.e,o=f.f,n=f.b,m=f.r,l=0;l"),n=0;n1){j=new K.ae0() j.YI(c,b,s)}else j=f r=g.e q=!r if(q){if(j==null)p=f else{p=j.gty() p=p.gO(p)}p=p===!0}else p=!1 if(p)return p=C.b.gI(s) if(p.go==null)p.go=A.J4(f,C.b.gI(s).go5()) i=C.b.gI(s).go i.sNA(r) i.id=g.c i.Q=a if(a!==0){g.Gr() r=g.f r.sk6(0,r.v+a)}if(j!=null){i.sb8(0,j.gty()) i.sc0(0,j.ga6f()) i.y=j.b i.z=j.a if(q&&j.e){g.Gr() g.f.b6(C.lZ,!0)}}h=H.b([],t.QF) for(r=g.x,q=r.length,n=0;n0;){r=c[s];--s q=c[s] a=r.AC(q) if(a!=null){m.b=a m.a=K.aqz(m.a,r.iM(q))}else m.b=K.aqz(m.b,r.iM(q)) l=$.atN() l.du() p=m.c K.aCp(r,q,p===$?H.e(H.t("_transform")):p,l) m.b=K.aqA(m.b,l) m.a=K.aqA(m.a,l)}o=C.b.gI(c) l=m.b m.d=l==null?o.gkH():l.f_(o.gkH()) l=m.a if(l!=null){n=l.f_(m.gty()) if(n.gO(n)){l=m.gty() l=!l.gO(l)}else l=!1 m.e=l if(!l)m.d=n}}} K.pD.prototype={} K.P0.prototype={} Q.rR.prototype={ j:function(a){return this.b}} Q.j5.prototype={ j:function(a){var s=H.b(["offset="+this.a.j(0)],t.s) s.push(this.oc(0)) return C.b.bI(s,"; ")}} Q.xU.prototype={ ep:function(a){if(!(a.d instanceof Q.j5))a.d=new Q.j5(null,null,C.i)}, gbs:function(a){var s=this.F.c s.toString return s}, sbs:function(a,b){var s=this,r=s.F switch(r.c.bR(0,b)){case C.cB:case C.Bo:return case C.lq:r.sbs(0,b) s.xZ(b) s.aw() s.ao() break case C.cC:r.sbs(0,b) s.ax=null s.xZ(b) s.a1() break default:throw H.a(H.j(u.I))}}, ga3X:function(){var s=this.N return s===$?H.e(H.t("_placeholderSpans")):s}, xZ:function(a){this.N=H.b([],t.TP) a.be(new Q.a2Q(this))}, slP:function(a,b){var s=this.F if(s.d===b)return s.slP(0,b) this.aw()}, sbt:function(a,b){var s=this.F if(s.e===b)return s.sbt(0,b) this.a1()}, sQV:function(a){if(this.S===a)return this.S=a this.a1()}, sacY:function(a,b){var s,r=this if(r.au===b)return r.au=b s=b===C.aV?"\u2026":null r.F.sMj(0,s) r.a1()}, snL:function(a){var s=this.F if(s.f===a)return s.snL(a) this.ax=null this.a1()}, snp:function(a,b){var s=this.F if(s.y==b)return s.snp(0,b) this.ax=null this.a1()}, slv:function(a,b){var s=this.F if(J.d(s.x,b))return s.slv(0,b) this.ax=null this.a1()}, siv:function(a,b){var s=this.F if(J.d(s.z,b))return s.siv(0,b) this.ax=null this.a1()}, snM:function(a){var s=this.F if(s.Q===a)return s.snM(a) this.ax=null this.a1()}, sqK:function(a,b){return}, dA:function(a){this.yH(t.k.a(K.r.prototype.gX.call(this))) return this.F.dA(C.R)}, h0:function(a){return!0}, cR:function(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g={} g.a=$ s=new Q.a2T(g) r=this.F q=r.a.fa(b) p=r.c.Dg(q) if(p!=null&&!0){o=new O.iF(p) a.kZ() o.b=C.b.gL(a.b) a.a.push(o) s.$1(!0)}else s.$1(!1) o=g.b=this.a7$ n=H.u(this).h("aD.1") m=t.tq l=0 while(!0){if(!(o!=null&&l"),b=new H.fL(a0,1,a7,c),b.rz(a0,1,a7,d.c),c=new H.bj(b,b.gl(b),c.h("bj"));c.q();){d=c.d a1=a1.ka(new P.x(d.a,d.b,d.c,d.d)) a2=d.e}d=a1.a c=Math.max(0,H.B(d)) b=a1.b a=Math.max(0,H.B(b)) d=Math.min(a1.c-d,H.B(p.a(K.r.prototype.gX.call(a6)).b)) b=Math.min(a1.d-b,H.B(p.a(K.r.prototype.gX.call(a6)).d)) k=new P.x(Math.floor(c)-4,Math.floor(a)-4,Math.ceil(c+d)+4,Math.ceil(a+b)+4) a3=new A.r0(P.y(o,n),P.y(m,l)) a4=i+1 a3.r2=new A.nD(i,a7) a3.d=!0 a3.aE=j b=f.b a3.aN=b==null?b0:b b0=a6.ae a5=(b0==null?a7:!b0.gO(b0))===!0?a6.ae.lJ():A.J4(a7,a7) a5.Pn(0,a3) if(!J.d(a5.x,k)){a5.x=k a5.hQ()}s.dV(0,a5) a8.push(a5) i=a4 j=a2}a6.ae=s b1.jc(0,a8,b2)}, mU:function(){this.wO() this.ae=null}, d4:function(a){return this.gbs(this).$0()}} Q.a2Q.prototype={ $1:function(a){return!0}, $S:55} Q.a2T.prototype={ $1:function(a){var s=this.a if(s.a===$)return s.a=a else throw H.a(H.ew("hitText"))}, $S:122} Q.a2S.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("hitText")):s}, $S:39} Q.a2U.prototype={ $2:function(a,b){var s=this.a.b s.toString b.toString return s.c3(a,b)}, $S:14} Q.a2V.prototype={ $2:function(a,b){var s=this.a.a s.toString a.dq(s,b)}, $S:12} Q.a2R.prototype={ $1:function(a){a.toString return!1}, $S:127} Q.Ba.prototype={ ag:function(a){var s,r,q this.dU(a) s=this.a7$ for(r=t.tq;s!=null;){s.ag(a) q=s.d q.toString s=r.a(q).an$}}, ab:function(a){var s,r,q this.dw(0) s=this.a7$ for(r=t.tq;s!=null;){s.ab(0) q=s.d q.toString s=r.a(q).an$}}} Q.P1.prototype={} Q.P2.prototype={ ag:function(a){this.TS(a) $.iS.n6$.a.B(0,this.goj())}, ab:function(a){$.iS.n6$.a.u(0,this.goj()) this.TT(0)}} L.Io.prototype={ sacX:function(a){if(a===this.F)return this.F=a this.aw()}, sadj:function(a){if(a===this.N)return this.N=a this.aw()}, gjk:function(){return!0}, gaF:function(){return!0}, ga2y:function(){var s=this.F,r=(s|1)>>>0>0||(s|2)>>>0>0?80:0 return(s|4)>>>0>0||(s|8)>>>0>0?r+80:r}, cB:function(a){return a.bH(new P.Q(1/0,this.ga2y()))}, aD:function(a,b){var s,r,q=b.a,p=b.b,o=this.r2,n=o.a o=o.b s=this.F r=this.N a.ob() a.zW(new T.Hw(new P.x(q,p,q+n,p+o),s,r,!1,!1))}} E.It.prototype={} E.dT.prototype={ ep:function(a){if(!(a.d instanceof K.iV))a.d=new K.iV()}, cB:function(a){var s=this.v$ if(s!=null)return s.iq(a) return this.pk(a)}, bM:function(){var s=this,r=s.v$,q=t.k if(r!=null){r.cJ(0,q.a(K.r.prototype.gX.call(s)),!0) r=s.v$.r2 r.toString s.r2=r}else s.r2=s.pk(q.a(K.r.prototype.gX.call(s)))}, pk:function(a){return new P.Q(C.f.a6(0,a.a,a.b),C.f.a6(0,a.c,a.d))}, cR:function(a,b){var s=this.v$ s=s==null?null:s.c3(a,b) return s===!0}, di:function(a,b){}, aD:function(a,b){var s=this.v$ if(s!=null)a.dq(s,b)}} E.w9.prototype={ j:function(a){return this.b}} E.Iu.prototype={ c3:function(a,b){var s,r,q=this if(q.r2.C(0,b)){s=q.cR(a,b)||q.G===C.bh if(s||q.G===C.cm){r=new S.uY(b,q) a.kZ() r.b=C.b.gL(a.b) a.a.push(r)}}else s=!1 return s}, h0:function(a){return this.G===C.bh}} E.xQ.prototype={ sL1:function(a){if(J.d(this.G,a))return this.G=a this.a1()}, bM:function(){var s=this,r=t.k.a(K.r.prototype.gX.call(s)),q=s.v$,p=s.G if(q!=null){q.cJ(0,p.pH(r),!0) q=s.v$.r2 q.toString s.r2=q}else s.r2=p.pH(r).bH(C.r)}, cB:function(a){var s=this.v$,r=this.G if(s!=null)return s.iq(r.pH(a)) else return r.pH(a).bH(C.r)}} E.Ii.prototype={ sac8:function(a,b){if(this.G===b)return this.G=b this.a1()}, sac6:function(a,b){if(this.a8===b)return this.a8=b this.a1()}, HL:function(a){var s,r,q=a.a,p=a.b p=p<1/0?p:C.f.a6(this.G,q,p) s=a.c r=a.d return new S.aN(q,p,s,r<1/0?r:C.f.a6(this.a8,s,r))}, It:function(a,b){var s=this.v$ if(s!=null)return a.bH(b.$2(s,this.HL(a))) return this.HL(a).bH(C.r)}, cB:function(a){return this.It(a,N.ai3())}, bM:function(){this.r2=this.It(t.k.a(K.r.prototype.gX.call(this)),N.ai4())}} E.Im.prototype={ gaF:function(){if(this.v$!=null){var s=this.G s=s!==0&&s!==255}else s=!1 return s}, se6:function(a,b){var s,r,q=this if(q.a8==b)return s=q.gaF() r=q.G q.a8=b q.G=C.d.aO(J.aW(b,0,1)*255) if(s!==q.gaF())q.lw() q.aw() if(r!==0!==(q.G!==0)&&!0)q.ao()}, stZ:function(a){return}, aD:function(a,b){var s,r=this,q=r.v$ if(q!=null){s=r.G if(s===0){r.db=null return}if(s===255){r.db=null a.dq(q,b) return}r.db=a.Oy(b,s,E.dT.prototype.gfq.call(r),t.Jq.a(r.db))}}, f8:function(a){var s,r=this.v$ if(r!=null)s=this.G!==0||!1 else s=!1 if(s){r.toString a.$1(r)}}} E.xO.prototype={ gaF:function(){if(this.v$!=null){var s=this.iQ$ s.toString}else s=!1 return s}, se6:function(a,b){var s=this,r=s.n5$ if(r==b)return if(s.b!=null&&r!=null)r.T(0,s.gtN()) s.n5$=b if(s.b!=null)b.aQ(0,s.gtN()) s.zz()}, stZ:function(a){if(a===this.uO$)return this.uO$=a this.ao()}, zz:function(){var s,r=this,q=r.hw$,p=r.n5$ p=r.hw$=C.d.aO(J.aW(p.gm(p),0,1)*255) if(q!==p){s=r.iQ$ p=p>0&&p<255 r.iQ$=p if(r.v$!=null&&s!==p)r.lw() r.aw() if(q===0||r.hw$===0)r.ao()}}, f8:function(a){var s,r=this.v$ if(r!=null)if(this.hw$===0){s=this.uO$ s.toString}else s=!0 else s=!1 if(s){r.toString a.$1(r)}}} E.I3.prototype={} E.vt.prototype={ aQ:function(a,b){return null}, T:function(a,b){return null}, j:function(a){return"CustomClipper"}} E.nY.prototype={ PE:function(a){return this.b.h9(new P.x(0,0,0+a.a,0+a.b),this.c)}, QO:function(a){if(H.E(a)!==C.GB)return!0 t.jH.a(a) return!J.d(a.b,this.b)||a.c!=this.c}} E.tY.prototype={ spi:function(a){var s,r=this,q=r.G if(q==a)return r.G=a s=a==null if(s||q==null||H.E(a)!==H.E(q)||a.QO(q))r.tk() if(r.b!=null){if(q!=null)q.T(0,r.gtj()) if(!s)a.aQ(0,r.gtj())}}, ag:function(a){var s this.rv(a) s=this.G if(s!=null)s.aQ(0,this.gtj())}, ab:function(a){var s=this.G if(s!=null)s.T(0,this.gtj()) this.mc(0)}, tk:function(){this.a8=null this.aw() this.ao()}, siH:function(a){if(a!==this.aJ){this.aJ=a this.aw()}}, bM:function(){var s,r=this,q=r.r2 q=q!=null?q:null r.of() s=r.r2 s.toString if(!J.d(q,s))r.a8=null}, jF:function(){var s,r,q=this if(q.a8==null){s=q.G if(s==null)s=null else{r=q.r2 r.toString r=s.PE(r) s=r}q.a8=s==null?q.grN():s}}, iM:function(a){var s if(this.G==null)s=null else{s=this.r2 s=new P.x(0,0,0+s.a,0+s.b)}if(s==null){s=this.r2 s=new P.x(0,0,0+s.a,0+s.b)}return s}} E.I6.prototype={ grN:function(){var s=this.r2 return new P.x(0,0,0+s.a,0+s.b)}, c3:function(a,b){var s=this if(s.G!=null){s.jF() if(!s.a8.C(0,b))return!1}return s.ix(a,b)}, aD:function(a,b){var s,r,q=this if(q.v$!=null){q.jF() s=q.geT() r=q.a8 r.toString q.db=a.lF(s,b,r,E.dT.prototype.gfq.call(q),q.aJ,t.VX.a(q.db))}else q.db=null}} E.I5.prototype={ grN:function(){var s=P.dh(),r=this.r2 s.jK(0,new P.x(0,0,0+r.a,0+r.b)) return s}, c3:function(a,b){var s=this if(s.G!=null){s.jF() if(!s.a8.C(0,b))return!1}return s.ix(a,b)}, aD:function(a,b){var s,r,q,p,o=this if(o.v$!=null){o.jF() s=o.geT() r=o.r2 q=r.a r=r.b p=o.a8 p.toString o.db=a.adb(s,b,new P.x(0,0,0+q,0+r),p,E.dT.prototype.gfq.call(o),o.aJ,t.ts.a(o.db))}else o.db=null}} E.Bb.prototype={ sk6:function(a,b){if(this.cC==b)return this.cC=b this.aw()}, so3:function(a,b){if(J.d(this.cb,b))return this.cb=b this.aw()}, sap:function(a,b){if(J.d(this.cc,b))return this.cc=b this.aw()}, gaF:function(){return!0}, eA:function(a){this.fC(a) a.sk6(0,this.cC)}} E.Ip.prototype={ sji:function(a,b){if(this.B0===b)return this.B0=b this.tk()}, sa7r:function(a,b){if(J.d(this.B1,b))return this.B1=b this.tk()}, grN:function(){var s,r,q,p,o=this switch(o.B0){case C.ac:s=o.B1 if(s==null)s=C.ba r=o.r2 return s.h6(new P.x(0,0,0+r.a,0+r.b)) case C.bb:s=o.r2 r=0+s.a s=0+s.b q=(r-0)/2 p=(s-0)/2 return new P.hc(0,0,r,s,q,p,q,p,q,p,q,p,q===p) default:throw H.a(H.j(u.I))}}, c3:function(a,b){var s=this if(s.G!=null){s.jF() if(!s.a8.C(0,b))return!1}return s.ix(a,b)}, aD:function(a,b){var s,r,q,p,o,n=this if(n.v$!=null){n.jF() s=n.a8.bJ(b) r=P.dh() r.hp(0,s) q=t.EA if(q.a(K.r.prototype.gib.call(n,n))==null)n.db=T.ap2() p=q.a(K.r.prototype.gib.call(n,n)) p.sLo(0,r) p.siH(n.aJ) o=n.cC p.sk6(0,o) p.sap(0,n.cc) p.so3(0,n.cb) q=q.a(K.r.prototype.gib.call(n,n)) q.toString a.kw(q,E.dT.prototype.gfq.call(n),b,new P.x(s.a,s.b,s.c,s.d))}else n.db=null}} E.Iq.prototype={ grN:function(){var s=P.dh(),r=this.r2 s.jK(0,new P.x(0,0,0+r.a,0+r.b)) return s}, c3:function(a,b){var s=this if(s.G!=null){s.jF() if(!s.a8.C(0,b))return!1}return s.ix(a,b)}, aD:function(a,b){var s,r,q,p,o,n,m,l,k=this if(k.v$!=null){k.jF() s=k.r2 r=b.a q=b.b p=s.a s=s.b o=k.a8.bJ(b) n=t.EA if(n.a(K.r.prototype.gib.call(k,k))==null)k.db=T.ap2() m=n.a(K.r.prototype.gib.call(k,k)) m.sLo(0,o) m.siH(k.aJ) l=k.cC m.sk6(0,l) m.sap(0,k.cc) m.so3(0,k.cb) n=n.a(K.r.prototype.gib.call(k,k)) n.toString a.kw(n,E.dT.prototype.gfq.call(k),b,new P.x(r,q,r+p,q+s))}else k.db=null}} E.EJ.prototype={ j:function(a){return this.b}} E.Ia.prototype={ sad:function(a,b){var s,r=this if(J.d(b,r.a8))return s=r.G if(s!=null)s.p(0) r.G=null r.a8=b r.aw()}, sbB:function(a,b){if(b===this.aJ)return this.aJ=b this.aw()}, slf:function(a){if(a.k(0,this.br))return this.br=a this.aw()}, ab:function(a){var s=this,r=s.G if(r!=null)r.p(0) s.G=null s.mc(0) s.aw()}, h0:function(a){var s=this.a8,r=this.r2 r.toString return s.Nc(r,a,this.br.d)}, aD:function(a,b){var s,r,q,p=this if(p.G==null)p.G=p.a8.po(p.gdd()) s=p.br r=p.r2 r.toString q=s.An(r) if(p.aJ===C.fK){s=p.G s.toString s.fs(a.gbZ(a),b,q) if(p.a8.gBF())a.DL()}p.m9(a,b) if(p.aJ===C.pY){s=p.G s.toString s.fs(a.gbZ(a),b,q) if(p.a8.gBF())a.DL()}}} E.IA.prototype={ sOf:function(a,b){return}, sex:function(a){var s=this if(J.d(s.a8,a))return s.a8=a s.aw() s.ao()}, sbt:function(a,b){var s=this if(s.aJ==b)return s.aJ=b s.aw() s.ao()}, sc0:function(a,b){var s,r=this if(J.d(r.cW,b))return s=new E.b8(new Float64Array(16)) s.bC(b) r.cW=s r.aw() r.ao()}, gxS:function(){var s,r,q,p=this,o=p.a8 if(o==null)o=null if(o==null)return p.cW s=new E.b8(new Float64Array(16)) s.du() r=p.r2 r.toString q=o.zU(r) s.af(0,q.a,q.b) r=p.cW r.toString s.cz(0,r) s.af(0,-q.a,-q.b) return s}, c3:function(a,b){return this.cR(a,b)}, cR:function(a,b){var s=this.br?this.gxS():null return a.zS(new E.a3a(this),b,s)}, aD:function(a,b){var s,r,q=this if(q.v$!=null){s=q.gxS() s.toString r=T.ajV(s) if(r==null)q.db=a.Cl(q.geT(),b,s,E.dT.prototype.gfq.call(q),t.zV.a(q.db)) else{q.m9(a,b.U(0,r)) q.db=null}}}, di:function(a,b){var s=this.gxS() s.toString b.cz(0,s)}} E.a3a.prototype={ $2:function(a,b){b.toString return this.a.rt(a,b)}, $S:14} E.Ie.prototype={ saef:function(a){var s=this if(J.d(s.G,a))return s.G=a s.aw() s.ao()}, c3:function(a,b){return this.cR(a,b)}, cR:function(a,b){var s,r,q,p=this if(p.a8){s=p.G r=s.a q=p.r2 q=new P.m(r*q.a,s.b*q.b) s=q}else s=null return a.jN(new E.a2F(p),s,b)}, aD:function(a,b){var s,r,q,p=this if(p.v$!=null){s=p.G r=s.a q=p.r2 p.m9(a,new P.m(b.a+r*q.a,b.b+s.b*q.b))}}, di:function(a,b){var s=this.G,r=s.a,q=this.r2 b.af(0,r*q.a,s.b*q.b)}} E.a2F.prototype={ $2:function(a,b){b.toString return this.a.rt(a,b)}, $S:14} E.Ir.prototype={ pk:function(a){return new P.Q(C.f.a6(1/0,a.a,a.b),C.f.a6(1/0,a.c,a.d))}, i5:function(a,b){var s,r=this,q=null if(t.pY.b(a)){s=r.bS return s==null?q:s.$1(a)}if(t.n2.b(a))return q if(t.oN.b(a)){s=r.bL return s==null?q:s.$1(a)}if(t.XA.b(a))return q if(t.Ko.b(a)){s=r.cC return s==null?q:s.$1(a)}if(t.ks.b(a)){s=r.cb return s==null?q:s.$1(a)}}} E.Ik.prototype={ h0:function(a){return!0}, c3:function(a,b){return this.ix(a,b)&&!0}, i5:function(a,b){var s=this.aJ if(s!=null&&t.XA.b(a))return s.$1(a)}, gLZ:function(a){return this.cW}, gCR:function(){return this.a2}, ag:function(a){this.rv(a) this.a2=!0}, ab:function(a){this.a2=!1 this.mc(0)}, pk:function(a){return new P.Q(C.f.a6(1/0,a.a,a.b),C.f.a6(1/0,a.c,a.d))}, $iiN:1, gC6:function(a){return this.a8}, gC8:function(a){return this.br}} E.Iv.prototype={ gav:function(){return!0}} E.xS.prototype={ sNf:function(a){var s,r=this if(a===r.G)return r.G=a s=r.a8 if(s==null||!s)r.ao()}, sBw:function(a){var s=this,r=s.a8 if(a==r)return if(r==null)r=s.G s.a8=a if(r!==(a==null?s.G:a))s.ao()}, c3:function(a,b){return!this.G&&this.ix(a,b)}, f8:function(a){var s,r=this.v$ if(r!=null){s=this.a8 s=!(s==null?this.G:s)}else s=!1 if(s){r.toString a.$1(r)}}} E.Il.prototype={ svt:function(a){var s=this if(a===s.G)return s.G=a s.a1() s.BT()}, dA:function(a){if(this.G)return null return this.EJ(a)}, gjk:function(){return this.G}, cB:function(a){if(this.G)return new P.Q(C.f.a6(0,a.a,a.b),C.f.a6(0,a.c,a.d)) return this.SI(a)}, qr:function(){this.SA()}, bM:function(){var s,r=this if(r.G){s=r.v$ if(s!=null)s.ei(0,t.k.a(K.r.prototype.gX.call(r)))}else r.of()}, c3:function(a,b){return!this.G&&this.ix(a,b)}, aD:function(a,b){if(this.G)return this.m9(a,b)}, f8:function(a){if(this.G)return this.wP(a)}} E.xN.prototype={ sKO:function(a){if(this.G===a)return this.G=a this.ao()}, sBw:function(a){return}, c3:function(a,b){return this.G?this.r2.C(0,b):this.ix(a,b)}, f8:function(a){var s,r=this.v$ if(r!=null){s=this.G s=!s}else s=!1 if(s){r.toString a.$1(r)}}} E.k7.prototype={ saer:function(a){if(S.aim(a,this.bS))return this.bS=a this.ao()}, shC:function(a){var s,r=this if(J.d(r.bq,a))return s=r.bq r.bq=a if(a!=null!==(s!=null))r.ao()}, siZ:function(a){var s,r=this if(J.d(r.bL,a))return s=r.bL r.bL=a if(a!=null!==(s!=null))r.ao()}, sacA:function(a){var s,r=this if(J.d(r.bA,a))return s=r.bA r.bA=a if(a!=null!==(s!=null))r.ao()}, sacV:function(a){var s,r=this if(J.d(r.cC,a))return s=r.cC r.cC=a if(a!=null!==(s!=null))r.ao()}, eA:function(a){var s,r=this r.fC(a) if(r.bq!=null){s=r.bS s=s==null||s.C(0,C.dq)}else s=!1 if(s)a.shC(r.bq) if(r.bL!=null){s=r.bS s=s==null||s.C(0,C.lL)}else s=!1 if(s)a.siZ(r.bL) if(r.bA!=null){s=r.bS if(s==null||s.C(0,C.du))a.snD(r.ga3R()) s=r.bS if(s==null||s.C(0,C.dt))a.snC(r.ga3P())}if(r.cC!=null){s=r.bS if(s==null||s.C(0,C.dr))a.snE(r.ga3T()) s=r.bS if(s==null||s.C(0,C.ds))a.snB(r.ga3N())}}, a3Q:function(){var s,r,q=this.bA if(q!=null){s=this.r2 r=s.a*-0.8 s=s.jS(C.i) s=T.fu(this.de(0,null),s) q.$1(new O.h4(null,new P.m(r,0),r,s))}}, a3S:function(){var s,r,q=this.bA if(q!=null){s=this.r2 r=s.a*0.8 s=s.jS(C.i) s=T.fu(this.de(0,null),s) q.$1(new O.h4(null,new P.m(r,0),r,s))}}, a3U:function(){var s,r,q=this.cC if(q!=null){s=this.r2 r=s.b*-0.8 s=s.jS(C.i) s=T.fu(this.de(0,null),s) q.$1(new O.h4(null,new P.m(0,r),r,s))}}, a3O:function(){var s,r,q=this.cC if(q!=null){s=this.r2 r=s.b*0.8 s=s.jS(C.i) s=T.fu(this.de(0,null),s) q.$1(new O.h4(null,new P.m(0,r),r,s))}}} E.xV.prototype={ sa8i:function(a){if(this.G===a)return this.G=a this.ao()}, sa9S:function(a){if(this.a8===a)return this.a8=a this.ao()}, sa9L:function(a){return}, sAb:function(a,b){return}, sk7:function(a,b){if(this.cW==b)return this.cW=b this.ao()}, swd:function(a,b){if(this.a2==b)return this.a2=b this.ao()}, sA7:function(a,b){if(this.eZ==b)return this.eZ=b this.ao()}, swr:function(a){return}, sBN:function(a){return}, slt:function(a){return}, sBo:function(a){if(this.c9==a)return this.c9=a this.ao()}, sCt:function(a){return}, sqC:function(a,b){return}, sB9:function(a){if(this.cI==a)return this.cI=a this.ao()}, sBa:function(a,b){if(this.a7==b)return this.a7=b this.ao()}, sBx:function(a){return}, slA:function(a){return}, sC0:function(a,b){return}, swb:function(a){if(this.n7==a)return this.n7=a this.ao()}, sC1:function(a){if(this.ln==a)return this.ln=a this.ao()}, sBq:function(a,b){return}, sfn:function(a,b){if(this.n4==b)return this.n4=b}, sBQ:function(a){if(this.eD==a)return this.eD=a this.ao()}, sqd:function(a){return}, sn_:function(a){if(this.lj==a)return this.lj=a this.ao()}, sCD:function(a){if(this.eX==a)return this.eX=a this.ao()}, sBO:function(a,b){if(this.lk==b)return this.lk=b this.ao()}, sm:function(a,b){return}, sBy:function(a){return}, sAw:function(a){return}, sBr:function(a,b){return}, sab0:function(a){if(J.d(this.bL,a))return this.bL=a this.ao()}, sbt:function(a,b){if(this.bA==b)return this.bA=b this.ao()}, sws:function(a){if(this.cC==a)return this.cC=a this.ao()}, sae0:function(a){if(J.d(this.cb,a))return this.ao() this.cb=a}, shC:function(a){var s,r=this if(J.d(r.cc,a))return s=r.cc r.cc=a if(a!=null!==(s!=null))r.ao()}, snv:function(a){var s,r=this if(J.d(r.hw,a))return s=r.hw r.hw=a if(a!=null!==(s!=null))r.ao()}, siZ:function(a){var s,r=this if(J.d(r.iQ,a))return s=r.iQ r.iQ=a if(a!=null!==(s!=null))r.ao()}, snC:function(a){return}, snD:function(a){return}, snE:function(a){return}, snB:function(a){return}, sqo:function(a){return}, sqm:function(a){return}, sns:function(a,b){var s,r=this if(J.d(r.pN,b))return s=r.pN r.pN=b if(b!=null!==(s!=null))r.ao()}, snt:function(a,b){var s,r=this if(J.d(r.pO,b))return s=r.pO r.pO=b if(b!=null!==(s!=null))r.ao()}, snA:function(a,b){var s,r=this if(J.d(r.pP,b))return s=r.pP r.pP=b if(b!=null!==(s!=null))r.ao()}, sny:function(a){return}, snw:function(a){return}, snz:function(a){return}, snx:function(a){return}, snF:function(a){return}, snG:function(a){return}, snu:function(a){var s,r=this if(J.d(r.pQ,a))return s=r.pQ r.pQ=a if(a!=null!==(s!=null))r.ao()}, sqn:function(a){return}, sa8L:function(a){return}, f8:function(a){this.wP(a)}, eA:function(a){var s,r=this r.fC(a) a.a=r.G a.b=r.a8 s=r.cW if(s!=null){a.b6(C.hP,!0) a.b6(C.hM,s)}s=r.eX if(s!=null){a.b6(C.hQ,!0) a.b6(C.hN,s)}s=r.a2 if(s!=null)a.b6(C.lU,s) s=r.eZ if(s!=null)a.b6(C.lY,s) s=r.c9 if(s!=null)a.b6(C.lW,s) s=r.cI if(s!=null)a.b6(C.lS,s) s=r.a7 if(s!=null)a.b6(C.hO,s) s=r.n4 if(s!=null)a.b6(C.lQ,s) s=r.lk if(s!=null){a.aN=s a.d=!0}r.bL!=null s=r.n7 if(s!=null)a.b6(C.lR,s) s=r.ln if(s!=null)a.b6(C.lV,s) s=r.eD if(s!=null)a.b6(C.lT,s) s=r.lj if(s!=null)a.sn_(s) s=r.bA if(s!=null){a.aE=s a.d=!0}s=r.cC if(s!=null){a.r2=s a.d=!0}s=r.cb if(s!=null)a.KZ(s) if(r.cc!=null)a.shC(r.ga3V()) if(r.iQ!=null)a.siZ(r.ga3J()) if(r.hw!=null)a.snv(r.ga3H()) if(r.pN!=null)a.sns(0,r.ga3B()) if(r.pO!=null)a.snt(0,r.ga3D()) if(r.pP!=null)a.snA(0,r.ga3L()) if(r.pQ!=null)a.snu(r.ga3F())}, a3W:function(){var s=this.cc if(s!=null)s.$0()}, a3K:function(){var s=this.iQ if(s!=null)s.$0()}, a3I:function(){var s=this.hw if(s!=null)s.$0()}, a3C:function(){var s=this.pN if(s!=null)s.$0()}, a3E:function(){var s=this.pO if(s!=null)s.$0()}, a3M:function(){var s=this.pP if(s!=null)s.$0()}, a3G:function(){var s=this.pQ if(s!=null)s.$0()}} E.I4.prototype={ sa7n:function(a){return}, eA:function(a){this.fC(a) a.c=!0}} E.Ij.prototype={ eA:function(a){this.fC(a) a.d=a.ac=a.a=!0}} E.Ic.prototype={ sa9M:function(a){if(a===this.G)return this.G=a this.ao()}, f8:function(a){if(this.G)return this.wP(a)}} E.Ig.prototype={ sabc:function(a,b){if(b===this.G)return this.G=b this.ao()}, eA:function(a){this.fC(a) a.a=!0 a.rx=this.G a.d=!0}} E.Ih.prototype={ slt:function(a){var s=this,r=s.G if(r===a)return r.b=null s.G=a r=s.a8 if(r!=null)a.b=r s.aw()}, gaF:function(){return!0}, bM:function(){var s,r=this r.of() s=r.r2 s.toString r.a8=s r.G.b=s}, aD:function(a,b){var s=this,r=s.db,q=s.G if(r==null)r=s.db=new T.nl(q,b) else{t.rf.a(r) r.id=q r.k1=b}a.qy(r,E.dT.prototype.gfq.call(s),C.i)}} E.Id.prototype={ slt:function(a){if(this.G===a)return this.G=a this.aw()}, sQS:function(a){return}, sbV:function(a,b){if(this.aJ.k(0,b))return this.aJ=b this.aw()}, sabM:function(a){if(this.br.k(0,a))return this.br=a this.aw()}, saal:function(a){if(this.cW.k(0,a))return this.cW=a this.aw()}, ab:function(a){this.db=null this.mc(0)}, gaF:function(){return!0}, CZ:function(){var s=t.RC.a(K.r.prototype.gib.call(this,this)) s=s==null?null:s.Db() if(s==null){s=new E.b8(new Float64Array(16)) s.du()}return s}, c3:function(a,b){if(this.G.a==null&&!0)return!1 return this.cR(a,b)}, cR:function(a,b){return a.zS(new E.a2E(this),b,this.CZ())}, aD:function(a,b){var s,r,q,p,o=this,n=o.G.b if(n==null)s=o.aJ else{r=o.br.zU(n) q=o.cW p=o.r2 p.toString s=r.a5(0,q.zU(p)).U(0,o.aJ)}r=t.RC if(r.a(K.r.prototype.gib.call(o,o))==null)o.db=new T.w0(o.G,!1,b,s) else{q=r.a(K.r.prototype.gib.call(o,o)) if(q!=null){q.id=o.G q.k1=!1 q.k3=s q.k2=b}}r=r.a(K.r.prototype.gib.call(o,o)) r.toString a.kw(r,E.dT.prototype.gfq.call(o),C.i,C.Bn)}, di:function(a,b){b.cz(0,this.CZ())}} E.a2E.prototype={ $2:function(a,b){b.toString return this.a.rt(a,b)}, $S:14} E.xP.prototype={ sm:function(a,b){if(this.G.k(0,b))return this.G=b this.aw()}, sQT:function(a){return}, aD:function(a,b){var s=this,r=s.G,q=s.r2 q.toString a.qy(new T.uE(r,q,b,s.$ti.h("uE<1>")),E.dT.prototype.gfq.call(s),b)}, gaF:function(){return!0}} E.OO.prototype={ dA:function(a){var s=this.v$ if(s!=null)return s.jg(a) return this.EJ(a)}} E.OP.prototype={ ag:function(a){var s=this s.rv(a) s.n5$.aQ(0,s.gtN()) s.zz()}, ab:function(a){this.n5$.T(0,this.gtN()) this.mc(0)}, aD:function(a,b){var s,r=this,q=r.v$ if(q!=null){s=r.hw$ if(s===0){r.db=null return}if(s===255){r.db=null a.dq(q,b) return}s.toString r.db=a.Oy(b,s,E.dT.prototype.gfq.call(r),t.Jq.a(r.db))}}} E.Bc.prototype={ ag:function(a){var s this.dU(a) s=this.v$ if(s!=null)s.ag(a)}, ab:function(a){var s this.dw(0) s=this.v$ if(s!=null)s.ab(0)}} E.Bd.prototype={ dA:function(a){var s=this.v$ if(s!=null)return s.jg(a) return this.wN(a)}} T.Iw.prototype={ dA:function(a){var s,r=this.v$ if(r!=null){s=r.jg(a) r=this.v$.d r.toString t.q.a(r) if(s!=null)s+=r.a.b}else s=this.wN(a) return s}, aD:function(a,b){var s,r=this.v$ if(r!=null){s=r.d s.toString a.dq(r,t.q.a(s).a.U(0,b))}}, cR:function(a,b){var s=this.v$ if(s!=null){s=s.d s.toString t.q.a(s) return a.jN(new T.a2W(this,b,s),s.a,b)}return!1}} T.a2W.prototype={ $2:function(a,b){var s=this.a.v$ s.toString b.toString return s.c3(a,b)}, $S:14} T.In.prototype={ tE:function(){var s=this if(s.G!=null)return s.G=s.a8.ak(s.aJ)}, sek:function(a,b){var s=this if(J.d(s.a8,b))return s.a8=b s.G=null s.a1()}, sbt:function(a,b){var s=this if(s.aJ==b)return s.aJ=b s.G=null s.a1()}, cB:function(a){var s,r,q,p=this p.tE() if(p.v$==null){s=p.G return a.bH(new P.Q(s.a+s.c,s.b+s.d))}s=p.G s.toString r=a.Az(s) q=p.v$.iq(r) s=p.G return a.bH(new P.Q(s.a+q.a+s.c,s.b+q.b+s.d))}, bM:function(){var s,r,q,p,o,n,m=this,l=t.k.a(K.r.prototype.gX.call(m)) m.tE() if(m.v$==null){s=m.G m.r2=l.bH(new P.Q(s.a+s.c,s.b+s.d)) return}s=m.G s.toString r=l.Az(s) m.v$.cJ(0,r,!0) s=m.v$ q=s.d q.toString t.q.a(q) p=m.G o=p.a n=p.b q.a=new P.m(o,n) s=s.r2 m.r2=l.bH(new P.Q(o+s.a+p.c,n+s.b+p.d))}} T.I2.prototype={ tE:function(){var s=this if(s.G!=null)return s.G=s.a8.ak(s.aJ)}, sex:function(a){var s=this if(J.d(s.a8,a))return s.a8=a s.G=null s.a1()}, sbt:function(a,b){var s=this if(s.aJ==b)return s.aJ=b s.G=null s.a1()}, L2:function(){var s,r,q,p,o=this o.tE() s=o.v$ r=s.d r.toString t.q.a(r) q=o.G q.toString p=o.r2 p.toString s=s.r2 s.toString r.a=q.mQ(t.EP.a(p.a5(0,s)))}} T.Is.prototype={ saew:function(a){if(this.bL==a)return this.bL=a this.a1()}, saaX:function(a){if(this.bA==a)return this.bA=a this.a1()}, cB:function(a){var s,r,q,p=this,o=p.bL!=null||a.b===1/0,n=p.bA!=null||a.d===1/0,m=p.v$ if(m!=null){s=m.iq(a.qc()) if(o){m=s.a r=p.bL m*=r==null?1:r}else m=1/0 if(n){r=s.b q=p.bA r*=q==null?1:q}else r=1/0 return a.bH(new P.Q(m,r))}m=o?0:1/0 return a.bH(new P.Q(m,n?0:1/0))}, bM:function(){var s,r,q=this,p=t.k.a(K.r.prototype.gX.call(q)),o=q.bL!=null||p.b===1/0,n=q.bA!=null||p.d===1/0,m=q.v$ if(m!=null){m.cJ(0,p.qc(),!0) if(o){m=q.v$.r2.a s=q.bL m*=s==null?1:s}else m=1/0 if(n){s=q.v$.r2.b r=q.bA s*=r==null?1:r}else s=1/0 q.r2=p.bH(new P.Q(m,s)) q.L2()}else{m=o?0:1/0 q.r2=p.bH(new P.Q(m,n?0:1/0))}}} T.a4Q.prototype={ w5:function(a){return new P.Q(C.f.a6(1/0,a.a,a.b),C.f.a6(1/0,a.c,a.d))}, qU:function(a){return a}, r0:function(a,b){return C.i}} T.I9.prototype={ sAB:function(a){var s=this,r=s.G if(r===a)return if(H.E(a)!==H.E(r)||a.m4(r))s.a1() s.G=a s.b!=null}, ag:function(a){this.TU(a)}, ab:function(a){this.TV(0)}, cB:function(a){return a.bH(this.G.w5(a))}, bM:function(){var s,r,q,p,o,n,m=this,l=t.k,k=l.a(K.r.prototype.gX.call(m)) m.r2=k.bH(m.G.w5(k)) if(m.v$!=null){s=m.G.qU(l.a(K.r.prototype.gX.call(m))) l=m.v$ l.toString k=s.a r=s.b q=k>=r l.cJ(0,s,!(q&&s.c>=s.d)) l=m.v$ p=l.d p.toString t.q.a(p) o=m.G n=m.r2 n.toString if(q&&s.c>=s.d)l=new P.Q(C.f.a6(0,k,r),C.f.a6(0,s.c,s.d)) else{l=l.r2 l.toString}p.a=o.r0(n,l)}}} T.Be.prototype={ ag:function(a){var s this.dU(a) s=this.v$ if(s!=null)s.ag(a)}, ab:function(a){var s this.dw(0) s=this.v$ if(s!=null)s.ab(0)}} G.FQ.prototype={ j:function(a){return this.b}} G.lI.prototype={ gNG:function(){return!1}, a7d:function(a,b){var s=this.x switch(G.bW(this.a)){case C.o:return new S.aN(b,a,s,s) case C.n:return new S.aN(s,s,b,a) default:throw H.a(H.j(u.I))}}, a7c:function(){return this.a7d(1/0,0)}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 if(!(b instanceof G.lI))return!1 return b.a===s.a&&b.b===s.b&&b.d===s.d&&b.f===s.f&&b.r===s.r&&b.x==s.x&&b.y===s.y&&b.z==s.z&&b.ch===s.ch&&b.Q===s.Q}, gt:function(a){var s=this return P.a5(s.a,s.b,s.d,s.f,s.r,s.x,s.y,s.z,s.ch,s.Q,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){var s=this,r=H.b([s.a.j(0),s.b.j(0),s.c.j(0),"scrollOffset: "+C.d.ba(s.d,1),"remainingPaintExtent: "+C.d.ba(s.r,1)],t.s),q=s.f if(q!==0)r.push("overlap: "+C.d.ba(q,1)) r.push("crossAxisExtent: "+J.aU(s.x,1)) r.push("crossAxisDirection: "+s.y.j(0)) r.push("viewportMainAxisExtent: "+J.aU(s.z,1)) r.push("remainingCacheExtent: "+C.d.ba(s.ch,1)) r.push("cacheOrigin: "+C.d.ba(s.Q,1)) return"SliverConstraints("+C.b.bI(r,", ")+")"}} G.Jq.prototype={ cp:function(){return"SliverGeometry"}} G.rs.prototype={} G.Jr.prototype={ gj7:function(a){return t.nl.a(this.a)}, j:function(a){var s=this return H.E(t.nl.a(s.a)).j(0)+"@(mainAxis: "+H.c(s.c)+", crossAxis: "+H.c(s.d)+")"}} G.ob.prototype={ j:function(a){var s=this.a return"layoutOffset="+(s==null?"None":C.d.ba(s,1))}} G.kc.prototype={} G.yA.prototype={ j:function(a){return"paintOffset="+this.a.j(0)}} G.dj.prototype={ gX:function(){return t.p.a(K.r.prototype.gX.call(this))}, gkH:function(){return this.gii()}, gii:function(){var s=this,r=t.p switch(G.bW(r.a(K.r.prototype.gX.call(s)).a)){case C.o:return new P.x(0,0,0+s.k3.c,0+r.a(K.r.prototype.gX.call(s)).x) case C.n:return new P.x(0,0,0+r.a(K.r.prototype.gX.call(s)).x,0+s.k3.c) default:throw H.a(H.j(u.I))}}, qr:function(){}, Bt:function(a,b,c){var s,r=this if(c>=0&&c=0&&br;j=h,i=o){o=a3.Nk(p,!0) if(o==null){n=a3.a7$ k=n.d k.toString m.a(k).a=0 if(r===0){n.cJ(0,p,!0) o=a3.a7$ if(a5.a==null)a5.a=o i=o break}else{a3.k3=G.oa(a4,!1,a4,a4,0,0,0,0,-r) return}}n=a3.a7$ n.toString h=j-a3.lB(n) if(h<-1e-10){a3.k3=G.oa(a4,!1,a4,a4,0,0,0,0,-h) a7=a3.a7$.d a7.toString m.a(a7).a=0 return}n=o.d n.toString m.a(n).a=h if(a5.a==null)a5.a=o}if(r<1e-10)while(!0){n=a3.a7$ n.toString n=n.d n.toString m.a(n) k=n.b k.toString if(!(k>0))break n=n.a n.toString o=a3.Nk(p,!0) k=a3.a7$ k.toString h=n-a3.lB(k) k=a3.a7$.d k.toString m.a(k).a=0 if(h<-1e-10){a3.k3=G.oa(a4,!1,a4,a4,0,0,0,0,-h) return}}if(i==null){o.cJ(0,p,!0) a5.a=o}a5.b=!0 a5.c=o n=o.d n.toString m.a(n) k=n.b k.toString a5.d=k n=n.a n.toString a5.e=n+a3.lB(o) g=new U.a2Z(a5,a3,p) for(f=0;a5.es+n||s>0,a4,a4,a,a1,0,a,a4) if(a===m)a7.aI=!0 a7.AH()}} U.a2Z.prototype={ $0:function(){var s,r,q,p,o=this.a,n=o.c,m=o.a if(n==m)o.b=!1 s=this.b n=n.d n.toString r=o.c=H.u(s).h("aD.1").a(n).an$ n=r==null if(n)o.b=!1 q=o.d+1 o.d=q if(!o.b){if(!n){n=r.d n.toString n=t.D.a(n).b n.toString n=n!==q}else n=!0 p=this.c if(n){r=s.abh(p,m,!0) o.c=r if(r==null)return!1}else r.cJ(0,p,!0) n=o.a=o.c}else n=r m=n.d m.toString t.D.a(m) p=o.e m.a=p o.e=p+s.lB(n) return!0}, $S:39} F.jM.prototype={} F.a32.prototype={ ep:function(a){}} F.j3.prototype={ j:function(a){var s="index="+H.c(this.b)+"; " return s+(this.pR$?"keepAlive; ":"")+this.Tc(0)}} F.qN.prototype={ ep:function(a){if(!(a.d instanceof F.j3))a.d=new F.j3(!1,null,null)}, ff:function(a){var s this.ED(a) s=a.d s.toString t.D.a(s) if(!s.c){t.x.a(a) s.b=this.aA.aN}}, BA:function(a,b,c){this.wE(0,b,c)}, vo:function(a,b){var s,r,q,p=this,o=a.d o.toString s=t.D s.a(o) if(!o.c){p.RJ(a,b) o=a.d o.toString s.a(o).b=p.aA.aN p.a1()}else{r=p.bi if(r.i(0,o.b)==a)r.u(0,o.b) q=a.d q.toString s.a(q).b=p.aA.aN o=o.b o.toString r.n(0,o,a)}}, u:function(a,b){var s=b.d s.toString t.D.a(s) if(!s.c){this.RL(0,b) return}this.bi.u(0,s.b) this.fX(b)}, xB:function(a,b){this.BC(new F.a3_(this,a,b),t.p)}, G9:function(a){var s,r=this,q=a.d q.toString t.D.a(q) if(q.pR$){r.u(0,a) s=q.b s.toString r.bi.n(0,s,a) a.d=q r.ED(a) q.c=!0}else r.aA.OI(a)}, ag:function(a){var s this.TW(a) for(s=this.bi,s=s.gaZ(s),s=s.gM(s);s.q();)s.gw(s).ag(a)}, ab:function(a){var s this.TX(0) for(s=this.bi,s=s.gaZ(s),s=s.gM(s);s.q();)s.gw(s).ab(0)}, io:function(){this.RK() var s=this.bi s.gaZ(s).K(0,this.gCr())}, be:function(a){var s this.Ec(a) s=this.bi s.gaZ(s).K(0,a)}, f8:function(a){this.Ec(a)}, a6W:function(a,b){var s this.xB(a,null) s=this.a7$ if(s!=null){s=s.d s.toString t.D.a(s).a=b return!0}this.aA.aI=!0 return!1}, KR:function(){return this.a6W(0,0)}, Nk:function(a,b){var s,r,q,p=this,o=p.a7$ o.toString o=o.d o.toString s=t.D o=s.a(o).b o.toString r=o-1 p.xB(r,null) o=p.a7$ o.toString q=o.d q.toString q=s.a(q).b q.toString if(q===r){o.cJ(0,a,b) return p.a7$}p.aA.aI=!0 return null}, abh:function(a,b,c){var s,r,q,p=b.d p.toString s=t.D p=s.a(p).b p.toString r=p+1 this.xB(r,b) p=b.d p.toString q=H.u(this).h("aD.1").a(p).an$ if(q!=null){p=q.d p.toString p=s.a(p).b p.toString p=p===r}else p=!1 if(p){q.cJ(0,a,c) return q}this.aA.aI=!0 return null}, Ae:function(a,b){var s={} s.a=a s.b=b this.BC(new F.a31(s,this),t.p)}, lB:function(a){switch(G.bW(t.p.a(K.r.prototype.gX.call(this)).a)){case C.o:return a.r2.a case C.n:return a.r2.b default:throw H.a(H.j(u.I))}}, Bu:function(a,b,c){var s,r,q=this.d9$,p=S.anw(a) for(s=H.u(this).h("aD.1");q!=null;){if(this.ab2(p,q,b,c))return!0 r=q.d r.toString q=s.a(r).c9$}return!1}, Ac:function(a){var s=a.d s.toString return t.D.a(s).a}, di:function(a,b){var s,r,q,p,o=this,n=a.d n.toString s=t.D n=s.a(n).b if(n==null)b.DU() else if(o.bi.am(0,n))b.DU() else{n=t.p r=o.H0(n.a(K.r.prototype.gX.call(o))) q=a.d q.toString q=s.a(q).a q.toString p=q-n.a(K.r.prototype.gX.call(o)).d switch(G.bW(n.a(K.r.prototype.gX.call(o)).a)){case C.o:b.af(0,!r?o.k3.c-a.r2.a-p:p,0) break case C.n:b.af(0,0,!r?o.k3.c-a.r2.b-p:p) break default:H.e(H.j(u.I))}}}, aD:function(a1,a2){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0=this if(a0.a7$==null)return s=t.p switch(G.kH(s.a(K.r.prototype.gX.call(a0)).a,s.a(K.r.prototype.gX.call(a0)).b)){case C.A:r=a2.U(0,new P.m(0,a0.k3.c)) q=C.xt p=C.cy o=!0 break case C.P:r=a2 q=C.cy p=C.az o=!1 break case C.y:r=a2 q=C.az p=C.cy o=!1 break case C.L:r=a2.U(0,new P.m(a0.k3.c,0)) q=C.ld p=C.az o=!0 break default:throw H.a(H.j(u.I))}n=a0.a7$ for(m=H.u(a0).h("aD.1"),l=t.D,k=r.a,j=q.a,i=p.a,h=r.b,g=q.b,f=p.b;n!=null;){e=n.d e.toString e=l.a(e).a e.toString d=e-s.a(K.r.prototype.gX.call(a0)).d e=k+j*d+i*0 c=h+g*d+f*0 b=new P.m(e,c) if(o){a=a0.lB(n) b=new P.m(e+j*a,c+g*a)}if(d0)a1.dq(n,b) e=n.d e.toString n=m.a(e).an$}}} F.a3_.prototype={ $1:function(a){var s=this.a,r=s.bi,q=this.b,p=this.c if(r.am(0,q)){r=r.u(0,q) r.toString q=r.d q.toString t.D.a(q) s.fX(r) r.d=q s.wE(0,r,p) q.c=!1}else s.aA.a8C(q,p)}, $S:119} F.a31.prototype={ $1:function(a){var s,r,q for(s=this.a,r=this.b;s.a>0;){q=r.a7$ q.toString r.G9(q);--s.a}for(;s.b>0;){q=r.d9$ q.toString r.G9(q);--s.b}s=r.bi s=s.gaZ(s) q=H.u(s).h("aO") C.b.K(P.an(new H.aO(s,new F.a30(),q),!0,q.h("l.E")),r.aA.gadC())}, $S:119} F.a30.prototype={ $1:function(a){var s=a.d s.toString return!t.D.a(s).pR$}, $S:264} F.Bg.prototype={ ag:function(a){var s,r,q this.dU(a) s=this.a7$ for(r=t.D;s!=null;){s.ag(a) q=s.d q.toString s=r.a(q).an$}}, ab:function(a){var s,r,q this.dw(0) s=this.a7$ for(r=t.D;s!=null;){s.ab(0) q=s.d q.toString s=r.a(q).an$}}} F.P5.prototype={} F.P6.prototype={} F.PF.prototype={ ab:function(a){this.wL(0)}} F.PG.prototype={} T.xW.prototype={ gA2:function(){var s=this,r=t.p switch(G.kH(r.a(K.r.prototype.gX.call(s)).a,r.a(K.r.prototype.gX.call(s)).b)){case C.A:return s.aK.d case C.P:return s.aK.a case C.y:return s.aK.b case C.L:return s.aK.c default:throw H.a(H.j(u.I))}}, ga75:function(){var s=this,r=t.p switch(G.kH(r.a(K.r.prototype.gX.call(s)).a,r.a(K.r.prototype.gX.call(s)).b)){case C.A:return s.aK.b case C.P:return s.aK.c case C.y:return s.aK.d case C.L:return s.aK.a default:throw H.a(H.j(u.I))}}, ga8I:function(){switch(G.bW(t.p.a(K.r.prototype.gX.call(this)).a)){case C.o:var s=this.aK return s.gcA(s)+s.gcH(s) case C.n:return this.aK.gi8() default:throw H.a(H.j(u.I))}}, ep:function(a){if(!(a.d instanceof G.yA))a.d=new G.yA(C.i)}, bM:function(){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4=this,a5=null,a6=t.p,a7=a6.a(K.r.prototype.gX.call(a4)),a8=a4.gA2() a4.ga75() s=a4.aK s.toString r=s.a79(G.bW(a6.a(K.r.prototype.gX.call(a4)).a)) q=a4.ga8I() if(a4.v$==null){a4.k3=G.oa(a5,!1,a5,a5,r,Math.min(r,a7.r),0,r,a5) return}p=a4.iG(a7,0,a8) o=a7.f if(o>0)o=Math.max(0,o-p) a6=a4.v$ a6.toString s=Math.max(0,a7.d-a8) n=Math.min(0,a7.Q+a8) m=a7.r l=a4.iG(a7,0,a8) k=a7.ch j=a4.ub(a7,0,a8) i=Math.max(0,a7.x-q) h=a7.e g=a7.a f=a7.b e=a7.c d=a7.y c=a7.z a6.cJ(0,new G.lI(g,f,e,s,a8+h,o,m-l,i,d,c,n,k-j),!0) b=a4.v$.k3 a6=b.z if(a6!=null){a4.k3=G.oa(a5,!1,a5,a5,0,0,0,0,a6) return}a6=b.a s=a8+a6 n=r+a6 a=a4.iG(a7,s,n) a0=p+a a1=a4.ub(a7,0,a8) a2=a4.ub(a7,s,n) s=b.c l=b.d a3=Math.min(p+Math.max(s,l+a),m) m=b.b l=Math.min(a0+l,a3) k=Math.min(a2+a1+b.Q,k) j=b.e s=Math.max(a0+s,p+b.r) a4.k3=G.oa(k,b.y,s,l,r+j,a3,m,n,a5) n=a4.v$.d n.toString t.jB.a(n) switch(G.kH(g,f)){case C.A:s=a4.aK m=s.a a6=s.d+a6 n.a=new P.m(m,a4.iG(a7,a6,a6+s.b)) break case C.P:n.a=new P.m(a4.iG(a7,0,a4.aK.a),a4.aK.b) break case C.y:a6=a4.aK n.a=new P.m(a6.a,a4.iG(a7,0,a6.b)) break case C.L:s=a4.aK a6=s.c+a6 n.a=new P.m(a4.iG(a7,a6,a6+s.a),a4.aK.b) break default:throw H.a(H.j(u.I))}}, Bu:function(a,b,c){var s,r,q,p=this,o=p.v$ if(o!=null&&o.k3.r>0){o=o.d o.toString t.jB.a(o) s=p.iG(t.p.a(K.r.prototype.gX.call(p)),0,p.gA2()) r=p.v$ r.toString r=p.a7P(r) o=o.a q=p.v$.gab1() a.c.push(new O.tQ(new P.m(-o.a,-o.b))) q.$3$crossAxisPosition$mainAxisPosition(a,b-r,c-s) a.vA()}return!1}, a7P:function(a){var s=this,r=t.p switch(G.kH(r.a(K.r.prototype.gX.call(s)).a,r.a(K.r.prototype.gX.call(s)).b)){case C.A:case C.y:return s.aK.a case C.L:case C.P:return s.aK.b default:throw H.a(H.j(u.I))}}, Ac:function(a){return this.gA2()}, di:function(a,b){var s=a.d s.toString s=t.jB.a(s).a b.af(0,s.a,s.b)}, aD:function(a,b){var s,r=this.v$ if(r!=null&&r.k3.x){s=r.d s.toString a.dq(r,b.U(0,t.jB.a(s).a))}}} T.Iz.prototype={ a5m:function(){if(this.aK!=null)return this.aK=this.cw}, sek:function(a,b){var s=this if(s.cw.k(0,b))return s.cw=b s.aK=null s.a1()}, sbt:function(a,b){var s=this if(s.e3===b)return s.e3=b s.aK=null s.a1()}, bM:function(){this.a5m() this.SJ()}} T.P4.prototype={ ag:function(a){var s this.dU(a) s=this.v$ if(s!=null)s.ag(a)}, ab:function(a){var s this.dw(0) s=this.v$ if(s!=null)s.ab(0)}} K.a26.prototype={ k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 return b instanceof K.a26&&b.a==s.a&&b.b==s.b&&b.c===s.c&&b.d===s.d}, gt:function(a){var s=this return P.a5(s.a,s.b,s.c,s.d,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){var s=this return"RelativeRect.fromLTRB("+J.aU(s.a,1)+", "+J.aU(s.b,1)+", "+C.d.ba(s.c,1)+", "+C.d.ba(s.d,1)+")"}} K.dl.prototype={ gBJ:function(){var s=this return s.e!=null||s.f!=null||s.r!=null||s.x!=null||s.y!=null||s.z!=null}, j:function(a){var s=this,r=H.b([],t.s),q=s.e if(q!=null)r.push("top="+E.fU(q)) q=s.f if(q!=null)r.push("right="+E.fU(q)) q=s.r if(q!=null)r.push("bottom="+E.fU(q)) q=s.x if(q!=null)r.push("left="+E.fU(q)) q=s.y if(q!=null)r.push("width="+E.fU(q)) q=s.z if(q!=null)r.push("height="+E.fU(q)) if(r.length===0)r.push("not positioned") r.push(s.oc(0)) return C.b.bI(r,"; ")}, say:function(a,b){return this.y=b}, sai:function(a,b){return this.z=b}} K.yG.prototype={ j:function(a){return this.b}} K.a0H.prototype={ j:function(a){return this.b}} K.qO.prototype={ ep:function(a){if(!(a.d instanceof K.dl))a.d=new K.dl(null,null,C.i)}, a5r:function(){var s=this if(s.N!=null)return s.N=s.S.ak(s.au)}, sex:function(a){var s=this if(s.S.k(0,a))return s.S=a s.N=null s.a1()}, sbt:function(a,b){var s=this if(s.au==b)return s.au=b s.N=null s.a1()}, dA:function(a){return this.M3(a)}, cB:function(a){return this.Jx(a,N.ai3())}, Jx:function(a,b){var s,r,q,p,o,n,m,l,k,j,i,h=this h.a5r() if(h.cI$===0)return new P.Q(C.f.a6(1/0,a.a,a.b),C.f.a6(1/0,a.c,a.d)) s=a.a r=a.c switch(h.aB){case C.br:q=a.qc() break case C.Ci:q=S.uX(new P.Q(C.f.a6(1/0,s,a.b),C.f.a6(1/0,r,a.d))) break case C.m3:q=a break default:throw H.a(H.j(u.I))}p=h.a7$ for(o=t.B,n=r,m=s,l=!1;p!=null;){k=p.d k.toString o.a(k) if(!k.gBJ()){j=b.$2(p,q) i=j.a m=Math.max(H.B(m),H.B(i)) i=j.b n=Math.max(H.B(n),H.B(i)) l=!0}p=k.an$}return l?new P.Q(m,n):new P.Q(C.f.a6(1/0,s,a.b),C.f.a6(1/0,r,a.d))}, bM:function(){var s,r,q,p,o,n,m,l=this,k=t.k.a(K.r.prototype.gX.call(l)) l.F=!1 l.r2=l.Jx(k,N.ai4()) s=l.a7$ for(r=t.B,q=t.EP;s!=null;){p=s.d p.toString r.a(p) if(!p.gBJ()){o=l.N o.toString n=l.r2 n.toString m=s.r2 m.toString p.a=o.mQ(q.a(n.a5(0,m)))}else{o=l.r2 o.toString n=l.N n.toString l.F=K.apo(s,p,o,n)||l.F}s=p.an$}}, cR:function(a,b){return this.Ax(a,b)}, lC:function(a,b){this.ps(a,b)}, aD:function(a,b){var s,r,q=this if(q.ax!==C.V&&q.F){s=q.geT() r=q.r2 q.aU=a.lF(s,b,new P.x(0,0,0+r.a,0+r.b),q.gvw(),q.ax,q.aU)}else{q.aU=null q.lC(a,b)}}, iM:function(a){var s if(this.F){s=this.r2 s=new P.x(0,0,0+s.a,0+s.b)}else s=null return s}} K.a34.prototype={ $1:function(a){var s=this.a if(s.a===$)return s.a=a else throw H.a(H.ew("x"))}, $S:49} K.a36.prototype={ $1:function(a){var s=this.a if(s.b===$)return s.b=a else throw H.a(H.ew("y"))}, $S:49} K.a33.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("x")):s}, $S:34} K.a35.prototype={ $0:function(){var s=this.a.b return s===$?H.e(H.c1("y")):s}, $S:34} K.xT.prototype={ f8:function(a){if(this.dK!=null&&this.a7$!=null)a.$1(this.xi())}, xi:function(){var s,r=this.a7$,q=t.B,p=this.dK,o=0 while(!0){if(r!=null){p.toString s=o=a||l>=b.length||!J.d(i,b[l]) else i=!1 if(i){i=j.F[m] i.toString p.B(0,i)}}for(o=0;i=o*a,i=s||o>=j.S||!J.d(j.F[n+o*s],k) else s=!1 if(s)if(!p.u(0,b[l])){s=b[l] s.toString j.ep(s) j.a1() j.lw() j.ao() j.wA(s)}}++o}p.K(0,j.ga9n()) j.N=a j.S=C.f.hM(b.length,a) j.F=P.bk(b,!0,t.Qv) j.a1()}, DC:function(a,b,c){var s=this,r=a+b*s.N,q=s.F[r] if(q==c)return if(q!=null)s.fX(q) C.b.n(s.F,r,c) if(c!=null)s.ff(c)}, ag:function(a){var s,r,q,p this.dU(a) for(s=this.F,r=s.length,q=0;q0){j.toString if(isFinite(j))h=j else h=i if(sj){d=s-j c=o while(!0){if(!(d>1e-10&&q>1e-10))break for(b=0,p=0;p1e-10&&c>0))break e=d/c for(a2=0,p=0;p0)if(a3<=e){d-=a3 a6[p]=a}else{d-=e a6[p]=a5-e;++a2}}c=a2}}return a6}, cB:function(a){var s,r,q,p,o,n,m,l,k,j=this if(j.S*j.N===0)return a.bH(C.r) s=j.FM(a) r=C.b.lo(s,0,new S.a38()) for(q=t.o3,p=0,o=0;o=0;--p){o=p+1 q[p]=q[o]+s[o]}a2.e2=new H.bI(q,H.Y(q).h("bI<1>")) n=C.b.gI(q)+C.b.gI(s) break case C.m:q[0]=0 for(p=1;p=0;--s){q=this.F[s] if(q!=null){p=q.d p.toString r.a(p) if(a.jN(new S.a39(b,p,q),p.a,b))return!0}}return!1}, aD:function(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g,f=this if(f.S*f.N===0){s=b.a r=b.b q=f.r2 q=q.a f.aU.Og(a.gbZ(a),new P.x(s,r,s+q,r+0),C.kl,C.kl) return}if(f.b7!=null){p=a.gbZ(a) for(s=b.a,r=b.b,q=f.cD,o=f.gdd(),n=0;n")).K(0,a)}, slb:function(a){if(a===this.F)return this.F=a this.a1()}, sa8H:function(a){if(a===this.N)return this.N=a this.a1()}, sbV:function(a,b){var s=this,r=s.S if(b==r)return if(s.b!=null)r.T(0,s.gvm()) s.S=b if(s.b!=null){r=b.P$ r.bQ(r.c,new B.bn(s.gvm()),!1)}s.a1()}, siH:function(a){var s=this if(a!==s.aU){s.aU=a s.aw() s.ao()}}, ag:function(a){var s this.TY(a) s=this.S.P$ s.bQ(s.c,new B.bn(this.gvm()),!1)}, ab:function(a){this.S.T(0,this.gvm()) this.TZ(0)}, gav:function(){return!0}, abL:function(a,b,c,d,e,f,g,h,a0,a1,a2){var s,r,q,p,o,n,m,l,k=this,j=G.aEy(k.S.fy,e),i=f+h for(s=f,r=0;c!=null;){q=a2<=0?0:a2 p=Math.max(b,-q) o=b-p c.cJ(0,new G.lI(k.F,e,j,q,r,i-s,Math.max(0,a1-s+f),d,k.N,g,p,Math.max(0,a0+o)),!0) n=c.k3 m=n.z if(m!=null)return m l=s+n.b if(n.x||a2>0)k.Pf(c,l,e) else k.Pf(c,-a2+f,e) i=Math.max(l+n.c,i) m=n.a a2-=m r+=m s+=n.d m=n.Q if(m!==0){a0-=m-o b=Math.min(p+m,0)}k.aeo(e,n) c=a.$1(c)}return 0}, iM:function(a){var s,r,q,p,o=this.r2,n=0+o.a,m=0+o.b a.toString o=t.p if(o.a(K.r.prototype.gX.call(a)).f!==0){s=o.a(K.r.prototype.gX.call(a)).z s.toString s=!isFinite(s)}else s=!0 if(s)return new P.x(0,0,n,m) r=o.a(K.r.prototype.gX.call(a)).z-o.a(K.r.prototype.gX.call(a)).r+o.a(K.r.prototype.gX.call(a)).f switch(G.kH(this.F,o.a(K.r.prototype.gX.call(a)).b)){case C.y:q=0+r p=0 break case C.A:m-=r p=0 q=0 break case C.P:p=0+r q=0 break case C.L:n-=r p=0 q=0 break default:throw H.a(H.j(u.I))}return new P.x(p,q,n,m)}, AC:function(a){var s,r=this,q=r.aB if(q==null){q=r.r2 return new P.x(0,0,0+q.a,0+q.b)}switch(G.bW(r.F)){case C.n:s=r.r2 return new P.x(0,0-q,0+s.a,0+s.b+q) case C.o:s=r.r2 return new P.x(0-q,0,0+s.a+q,0+s.b) default:throw H.a(H.j(u.I))}}, aD:function(a,b){var s,r,q=this if(q.a7$==null)return if(q.gaaV()&&q.aU!==C.V){s=q.geT() r=q.r2 q.b7=a.lF(s,b,new P.x(0,0,0+r.a,0+r.b),q.ga3t(),q.aU,q.b7)}else{q.b7=null q.Ia(a,b)}}, Ia:function(a,b){var s,r,q,p,o for(s=this.gAd(),s=new P.d8(s.a(),H.u(s).h("d8<1>")),r=b.a,q=b.b;s.q();){p=s.gw(s) if(p.k3.x){o=this.Oj(p) a.dq(p,new P.m(r+o.a,q+o.b))}}}, cR:function(a,b){var s,r,q,p,o=this,n={} n.a=n.b=null switch(G.bW(o.F)){case C.n:n.b=b.b n.a=b.a break case C.o:n.b=b.a n.a=b.b break default:throw H.a(H.j(u.I))}s=new G.rs(a.a,a.b,a.c) for(r=o.gLn(),r=new P.d8(r.a(),H.u(r).h("d8<1>"));r.q();){q=r.gw(r) if(!q.k3.x)continue p=new E.b8(new Float64Array(16)) p.du() o.di(q,p) if(a.a73(new Q.a3b(n,o,q,s),p))return!0}return!1}, lU:function(a,a0,a1){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d=this,c=u.I,b=a instanceof G.dj for(s=t.F,r=a,q=0,p=null;r.ga9(r)!==d;r=o){o=r.ga9(r) o.toString s.a(o) if(r instanceof S.A)p=r if(o instanceof G.dj){n=o.Ac(r) n.toString q+=n}else{q=0 b=!1}}if(p!=null){s=p.ga9(p) s.toString t.nl.a(s) m=t.p.a(K.r.prototype.gX.call(s)).b switch(G.bW(d.F)){case C.o:l=p.r2.a break case C.n:l=p.r2.b break default:throw H.a(H.j(c))}if(a1==null)a1=a.gii() k=T.ns(a.de(0,p),a1)}else{if(b){t.nl.a(a) a.toString s=t.p m=s.a(K.r.prototype.gX.call(a)).b l=a.k3.a if(a1==null)switch(G.bW(d.F)){case C.o:a1=new P.x(0,0,0+l,0+s.a(K.r.prototype.gX.call(a)).x) break case C.n:a1=new P.x(0,0,0+s.a(K.r.prototype.gX.call(a)).x,0+a.k3.a) break default:throw H.a(H.j(c))}}else{s=d.S.y s.toString a1.toString return new Q.nQ(s,a1)}k=a1}t.nl.a(r) switch(G.kH(d.F,m)){case C.A:s=k.d q+=l-s j=s-k.b break case C.P:s=k.a q+=s j=k.c-s break case C.y:s=k.b q+=s j=k.d-s break case C.L:s=k.c q+=l-s j=s-k.a break default:throw H.a(H.j(c))}r.k3.toString q=d.Qj(r,q) i=T.ns(a.de(0,d),a1) h=d.ac7(r) switch(t.p.a(K.r.prototype.gX.call(r)).b){case C.bU:q-=h break case C.d1:switch(G.bW(d.F)){case C.n:q-=i.d-i.b break case C.o:q-=i.c-i.a break default:throw H.a(H.j(c))}break default:throw H.a(H.j(c))}s=d.F switch(G.bW(s)){case C.o:g=d.r2.a-h break case C.n:g=d.r2.b-h break default:throw H.a(H.j(c))}f=q-(g-j)*a0 o=d.S.y o.toString e=o-f switch(s){case C.y:i=i.af(0,0,e) break case C.P:i=i.af(0,e,0) break case C.A:i=i.af(0,0,-e) break case C.L:i=i.af(0,-e,0) break default:throw H.a(H.j(c))}return new Q.nQ(f,i)}, a8a:function(a,b,c){switch(G.kH(this.F,c)){case C.A:return new P.m(0,this.r2.b-(b+a.k3.c)) case C.P:return new P.m(b,0) case C.y:return new P.m(0,b) case C.L:return new P.m(this.r2.a-(b+a.k3.c),0) default:throw H.a(H.j(u.I))}}, eb:function(a,b,c,d){var s=this.S s.b.toString this.EF(a,null,c,Q.app(a,b,c,s,d,this))}, o6:function(){return this.eb(C.ax,null,C.G,null)}, m5:function(a){return this.eb(C.ax,null,C.G,a)}, m6:function(a,b,c){return this.eb(a,null,b,c)}, $iI1:1} Q.a3c.prototype={ $1:function(a){var s=a.k3 return s.x||s.Q>0}, $S:266} Q.a3b.prototype={ $1:function(a){var s=this,r=s.c,q=s.a,p=s.b.a8c(r,q.b) return r.Bt(s.d,q.a,p)}, $S:121} Q.Ix.prototype={ ep:function(a){if(!(a.d instanceof G.kc))a.d=new G.kc(null,null)}, gHT:function(){var s=this.c9 return s===$?H.e(H.t("_maxScrollExtent")):s}, gze:function(){var s=this.an return s===$?H.e(H.t("_shrinkWrapExtent")):s}, bM:function(){var s,r,q,p,o,n,m,l,k,j,i=this,h=u.I,g=t.k.a(K.r.prototype.gX.call(i)) if(i.a7$==null){switch(G.bW(i.F)){case C.n:i.r2=new P.Q(g.b,g.c) break case C.o:i.r2=new P.Q(g.a,g.d) break default:throw H.a(H.j(h))}i.S.u_(0) i.an=i.c9=0 i.pV=!1 i.S.mR(0,0) return}switch(G.bW(i.F)){case C.n:s=g.d r=g.b break case C.o:s=g.b r=g.d break default:throw H.a(H.j(h))}q=i.ga7N() p=null do{o=i.S.y o.toString i.an=i.c9=0 i.pV=!1 n=i.a7$ m=Math.max(0,o) o=Math.min(0,o) l=i.au k=i.abL(q,-l,n,r,C.bU,0,s,o,s+2*l,s,m) if(k!==0)i.S.a8z(k) else{switch(G.bW(i.F)){case C.n:p=J.aW(i.gze(),g.c,g.d) break case C.o:p=J.aW(i.gze(),g.a,g.b) break default:throw H.a(H.j(h))}i.S.u_(p) j=i.S.mR(0,Math.max(0,i.gHT()-p)) if(j)break}}while(!0) switch(G.bW(i.F)){case C.n:i.r2=new P.Q(J.aW(r,g.a,g.b),J.aW(p,g.c,g.d)) break case C.o:i.r2=new P.Q(J.aW(p,g.a,g.b),J.aW(r,g.c,g.d)) break default:throw H.a(H.j(h))}}, gaaV:function(){return this.pV}, aeo:function(a,b){var s=this s.c9=s.gHT()+b.a if(b.y)s.pV=!0 s.an=s.gze()+b.e}, Pf:function(a,b,c){var s=a.d s.toString t.Xp.a(s).a=b}, Oj:function(a){var s=a.d s.toString s=t.Xp.a(s).a s.toString return this.a8a(a,s,C.bU)}, Qj:function(a,b){var s,r,q,p=this.a7$ for(s=H.u(this).h("aD.1"),r=0;p!==a;){r+=p.k3.a q=p.d q.toString p=s.a(q).an$}return r+b}, ac7:function(a){var s,r,q=this.a7$ for(s=H.u(this).h("aD.1");q!==a;){q.k3.toString r=q.d r.toString q=s.a(r).an$}return 0}, di:function(a,b){var s=this.Oj(t.nl.a(a)) b.af(0,s.a,s.b)}, a8c:function(a,b){var s,r=a.d r.toString t.Xp.a(r) s=t.p switch(G.kH(s.a(K.r.prototype.gX.call(a)).a,s.a(K.r.prototype.gX.call(a)).b)){case C.y:case C.P:r=r.a r.toString return b-r case C.A:s=this.r2.b r=r.a r.toString return s-b-r case C.L:s=this.r2.a r=r.a r.toString return s-b-r default:throw H.a(H.j(u.I))}}, gAd:function(){var s=this return P.d9(function(){var r=0,q=1,p,o,n,m return function $async$gAd(a,b){if(a===1){p=b r=q}while(true)switch(r){case 0:m=s.d9$ o=H.u(s).h("aD.1") case 2:if(!(m!=null)){r=3 break}r=4 return m case 4:n=m.d n.toString m=o.a(n).c9$ r=2 break case 3:return P.d5() case 1:return P.d6(p)}}},t.nl)}, gLn:function(){var s=this return P.d9(function(){var r=0,q=1,p,o,n,m return function $async$gLn(a,b){if(a===1){p=b r=q}while(true)switch(r){case 0:m=s.a7$ o=H.u(s).h("aD.1") case 2:if(!(m!=null)){r=3 break}r=4 return m case 4:n=m.d n.toString m=o.a(n).an$ r=2 break case 3:return P.d5() case 1:return P.d6(p)}}},t.nl)}} Q.jf.prototype={ ag:function(a){var s,r,q this.dU(a) s=this.a7$ for(r=H.u(this).h("jf.0");s!=null;){s.ag(a) q=s.d q.toString s=r.a(q).an$}}, ab:function(a){var s,r,q this.dw(0) s=this.a7$ for(r=H.u(this).h("jf.0");s!=null;){s.ab(0) q=s.d q.toString s=r.a(q).an$}}} N.yf.prototype={ j:function(a){return this.b}} N.fa.prototype={ qg:function(a,b,c,d){var s=d.a===0 if(s){this.iX(b) return P.dD(null,t.H)}else return this.hq(b,c,d)}, j:function(a){var s=this,r=H.b([],t.s) s.T8(r) r.push(H.E(s.c).j(0)) r.push(H.c(s.b)) r.push(H.c(s.dy)) r.push(s.fy.j(0)) return"#"+Y.cf(s)+"("+C.b.bI(r,", ")+")"}, dl:function(a){var s=this.y if(s!=null)a.push("offset: "+C.d.ba(s,1))}} N.jh.prototype={ ae_:function(){this.f.ci(0,this.a.$0())}} N.tu.prototype={} N.nS.prototype={ j:function(a){return this.b}} N.i4.prototype={ a71:function(a){var s=this.c$ s.push(a) if(s.length===1){s=$.b4().b s.dx=this.gZK() s.dy=$.R}}, OM:function(a){var s=this.c$ C.b.u(s,a) if(s.length===0){s=$.b4().b s.dx=null s.dy=$.R}}, ZL:function(a){var s,r,q,p,o,n,m,l,k=this.c$,j=P.bk(k,!0,t.xt) for(p=j.length,o=0;o")) s.B(0,new N.jh(a,b.a,null,null,new P.aH(q,c.h("aH<0>")),c.h("jh<0>"))) if(r===0&&this.a<=0)this.xV() return q}, xV:function(){if(this.r$)return this.r$=!0 P.ci(C.G,this.ga4L())}, a4M:function(){this.r$=!1 if(this.aax())this.xV()}, aax:function(){var s,r,q,p,o,n,m=this,l="No element",k=m.f$,j=k.c===0 if(j||m.a>0)return!1 if(j)H.e(P.a4(l)) s=k.rS(0) j=s.b if(m.e$.$2$priority$scheduler(j,m)){try{if(k.c===0)H.e(P.a4(l));++k.d k.rS(0) p=k.c-1 o=k.rS(p) C.b.n(k.b,p,null) k.c=p if(p>0)k.XX(o,0) s.ae_()}catch(n){r=H.U(n) q=H.aB(n) j=U.bE("during a task callback") U.dC(new U.bK(r,q,"scheduler library",j,null,!1))}return k.c!==0}return!1}, rb:function(a,b){var s,r=this r.it() s=++r.x$ r.y$.n(0,s,new N.tu(a)) return r.x$}, Do:function(a){return this.rb(a,!1)}, ga9z:function(){var s=this if(s.cx$==null){if(s.db$===C.c0)s.it() s.cx$=new P.aH(new P.a1($.R,t.U),t.gR) s.ch$.push(new N.a3T(s))}return s.cx$.a}, gBf:function(){return this.dx$}, Jd:function(a){if(this.dx$===a)return this.dx$=a if(a)this.it()}, AV:function(){switch(this.db$){case C.c0:case C.lF:this.it() return case C.lD:case C.lE:case C.dm:return default:throw H.a(H.j(u.I))}}, it:function(){var s,r=this if(!r.cy$)s=!(N.i4.prototype.gBf.call(r)&&r.aY$) else s=!0 if(s)return s=$.b4().b if(s.x==null){s.x=r.ga_W() s.y=$.R}if(s.z==null){s.z=r.ga0k() s.Q=$.R}s.it() r.cy$=!0}, Qf:function(){var s=this if(!(N.i4.prototype.gBf.call(s)&&s.aY$))return if(s.cy$)return $.b4().b.it() s.cy$=!0}, Dq:function(){var s,r=this if(r.dy$||r.db$!==C.c0)return r.dy$=!0 P.oq("Warm-up frame",null,null) s=r.cy$ P.ci(C.G,new N.a3V(r)) P.ci(C.G,new N.a3W(r,s)) r.abV(new N.a3X(r))}, adO:function(){var s=this s.fx$=s.F1(s.fy$) s.fr$=null}, F1:function(a){var s=this.fr$,r=s==null?C.G:new P.aK(a.a-s.a) return P.cJ(C.d.aO(r.a/$.arR)+this.fx$.a,0)}, a_X:function(a){if(this.dy$){this.k2$=!0 return}this.MX(a)}, a0l:function(){var s=this if(s.k2$){s.k2$=!1 s.ch$.push(new N.a3S(s)) return}s.MY()}, MX:function(a){var s,r,q=this P.oq("Frame",C.db,null) if(q.fr$==null)q.fr$=a r=a==null q.go$=q.F1(r?q.fy$:a) if(!r)q.fy$=a q.cy$=!1 try{P.oq("Animate",C.db,null) q.db$=C.lD s=q.y$ q.y$=P.y(t.S,t.h1) J.fi(s,new N.a3U(q)) q.z$.az(0)}finally{q.db$=C.lE}}, MY:function(){var s,r,q,p,o,n,m,l=this P.op() try{l.db$=C.dm for(p=l.Q$,o=p.length,n=0;n1e4)b=1e4*C.f.gwq(b) return new V.HR(this.a+b)}, a5:function(a,b){return this.U(0,-b)}} M.rU.prototype={ sdE:function(a,b){var s,r=this if(b===r.b)return r.b=b if(b)r.CL() else{s=r.a!=null&&r.e==null if(s)r.e=$.bT.rb(r.gzn(),!1)}}, gabB:function(){if(this.a==null)return!1 if(this.b)return!1 var s=$.bT s.toString if(N.i4.prototype.gBf.call(s)&&s.aY$)return!0 if($.bT.db$!==C.c0)return!0 return!1}, rn:function(a){var s,r,q=this q.a=new M.oo(new P.aH(new P.a1($.R,t.U),t.gR)) if(!q.b)s=q.e==null else s=!1 if(s)q.e=$.bT.rb(q.gzn(),!1) s=$.bT r=s.db$.a if(r>0&&r<4){s=s.go$ s.toString q.c=s}s=q.a s.toString return s}, oa:function(a,b){var s=this,r=s.a if(r==null)return s.c=s.a=null s.CL() if(b)r.Fo(s) else r.JV()}, fB:function(a){return this.oa(a,!1)}, a64:function(a){var s,r=this r.e=null s=r.c if(s==null)s=r.c=a s.toString r.d.$1(new P.aK(a.a-s.a)) if(!r.b&&r.a!=null&&r.e==null)r.e=$.bT.rb(r.gzn(),!0)}, CL:function(){var s,r=this.e if(r!=null){s=$.bT s.y$.u(0,r) s.z$.B(0,r) this.e=null}}, p:function(a){var s=this,r=s.a if(r!=null){s.a=null s.CL() r.Fo(s)}}, ae7:function(a,b){return"Ticker()".charCodeAt(0)==0?"Ticker()":"Ticker()"}, j:function(a){return this.ae7(a,!1)}} M.oo.prototype={ JV:function(){this.c=!0 this.a.ez(0) var s=this.b if(s!=null)s.ez(0)}, Fo:function(a){var s this.c=!1 s=this.b if(s!=null)s.hZ(new M.z8(a))}, Pp:function(a){var s,r,q=this,p=new M.a7j(a) if(q.b==null){s=q.b=new P.aH(new P.a1($.R,t.U),t.gR) r=q.c if(r!=null)if(r)s.ez(0) else s.hZ(C.FF)}q.b.a.f6(0,p,p,t.H)}, mT:function(a,b){return this.a.a.mT(a,b)}, jR:function(a){return this.mT(a,null)}, f6:function(a,b,c,d){return this.a.a.f6(0,b,c,d)}, bN:function(a,b,c){return this.f6(a,b,null,c)}, f9:function(a){return this.a.a.f9(a)}, j:function(a){var s="#"+Y.cf(this)+"(",r=this.c if(r==null)r="active" else r=r?"complete":"canceled" return s+r+")"}, $iax:1} M.a7j.prototype={ $1:function(a){this.a.$0()}, $S:28} M.z8.prototype={ j:function(a){var s=this.a if(s!=null)return"This ticker was canceled: "+s.j(0) return'The ticker was canceled before the "orCancel" property was first used.'}, $icc:1} N.a4f.prototype={ gET:function(){var s=this.cC$ return s===$?H.e(H.t("_accessibilityFeatures")):s}} A.ym.prototype={ j:function(a){return"SemanticsTag("+this.a+")"}, gar:function(a){return this.a}} A.J3.prototype={ cp:function(){return"SemanticsData"}, k:function(a,b){var s,r=this if(b==null)return!1 if(b instanceof A.J3)if(b.a===r.a)if(b.b===r.b)if(b.c==r.c)if(b.d==r.d)if(b.e==r.e)if(b.f==r.f)if(b.r==r.r)if(b.x==r.x)if(J.d(b.fr,r.fr))if(S.aim(b.fx,r.fx))if(b.z==r.z)if(b.Q==r.Q)if(J.d(b.y,r.y))if(b.ch==r.ch)if(b.cx==r.cx)if(b.cy==r.cy)s=b.dy==r.dy&&J.d(b.fy,r.fy)&&b.go==r.go&&b.id===r.id&&A.aAJ(b.k1,r.k1) else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 else s=!1 return s}, gt:function(a){var s=this return P.a5(P.a5(s.a,s.b,s.c,s.d,s.e,s.f,s.r,s.x,s.fr,s.fx,s.y,s.z,s.Q,s.ch,s.cx,s.cy,s.db,s.dx,s.dy,s.fy),s.go,s.id,P.em(s.k1),C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}} A.Ps.prototype={} A.J6.prototype={ cp:function(){return"SemanticsProperties"}} A.bM.prototype={ sc0:function(a,b){if(!T.azw(this.r,b)){this.r=b==null||T.a_y(b)?null:b this.hQ()}}, sb8:function(a,b){if(!J.d(this.x,b)){this.x=b this.hQ()}}, sNA:function(a){if(this.cx===a)return this.cx=a this.hQ()}, a4p:function(a){var s,r,q,p,o,n,m,l=this,k=l.db if(k!=null)for(s=k.length,r=0;r=0;--o)r[o]=n[q-o-1].e}n=b.k1 m=n.length if(m!==0){l=new Int32Array(m) for(o=0;o0?r[n-1].y1:null if(n!==0)if(J.N(l)===J.N(o)){if(l!=null)o.toString k=!0}else k=!1 else k=!0 if(!k&&p.length!==0){if(o!=null){if(!!p.immutable$list)H.e(P.F("sort")) h=p.length-1 if(h-0<=32)H.JA(p,0,h,J.ald()) else H.Jz(p,0,h,J.ald())}C.b.J(q,p) C.b.sl(p,0)}p.push(new A.kz(m,l,n))}if(o!=null)C.b.ha(p) C.b.J(q,p) h=t.rB return P.an(new H.Z(q,new A.a4s(),h),!0,h.h("av.E"))}, Qp:function(a){if(this.b==null)return C.iV.eo(0,a.Pa(this.e))}, cp:function(){return"SemanticsNode#"+this.e}, ae4:function(a,b,c){return new A.Ps(a,this,b,!0,!0,null,c)}, P6:function(a){return this.ae4(C.pX,null,a)}} A.a4u.prototype={ $1:function(a){var s,r,q=this.a q.a=q.a|a.k1 q.b=q.b|a.go if(q.x==null)q.x=a.x2 if(q.z==null)q.z=a.y2 if(q.Q==null)q.Q=a.at if(q.ch==null)q.ch=a.aN if(q.cx==null)q.cx=a.aI if(q.cy==null)q.cy=a.b4 if(q.db==null)q.db=a.P q.dx=a.bD q.dy=a.aR if(q.fr==null)q.fr=a.v s=q.e if(s===""||s==null)q.e=a.k3 s=q.f if(s===""||s==null)q.f=a.r1 s=q.r if(s===""||s==null)q.r=a.k4 s=a.id if(s!=null){r=q.y;(r==null?q.y=P.aZ(t.g3):r).J(0,s)}for(s=this.b.fy,s=s.gaj(s),s=s.gM(s),r=this.c;s.q();)r.B(0,A.anL(s.gw(s))) a.x1!=null s=q.c r=q.x q.c=A.agt(a.k2,a.x2,s,r) r=q.d s=q.x q.d=A.agt(a.r2,a.x2,r,s) q.fx=Math.max(q.fx,a.ry+a.rx) return!0}, $S:92} A.a4s.prototype={ $1:function(a){return a.a}, $S:270} A.kn.prototype={ bR:function(a,b){return C.d.cU(J.eo(this.b-b.b))}, $ibi:1} A.im.prototype={ bR:function(a,b){return C.d.cU(J.eo(this.a-b.a))}, QY:function(){var s,r,q,p,o,n,m,l,k,j,i,h,g=H.b([],t.TV) for(s=this.c,r=s.length,q=0;q") return P.an(new H.fn(k,new A.ae5(),s),!0,s.h("l.E"))}, QX:function(){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4=this.c,a5=a4.length if(a5<=1)return a4 s=t.S r=P.y(s,t.bu) q=P.y(s,s) for(p=this.b,o=p===C.p,p=p===C.m,n=a5,m=0;m2.356194490192345 else a1=!1 if(a0||a1)q.n(0,l.e,f.e)}}a2=H.b([],t._) a3=H.b(a4.slice(0),H.Y(a4)) C.b.d5(a3,new A.ae1()) new H.Z(a3,new A.ae2(),H.Y(a3).h("Z<1,p>")).K(0,new A.ae4(P.aZ(s),q,a2)) a4=t.qn a4=P.an(new H.Z(a2,new A.ae3(r),a4),!0,a4.h("av.E")) a5=H.Y(a4).h("bI<1>") return P.an(new H.bI(a4,a5),!0,a5.h("av.E"))}} A.ae5.prototype={ $1:function(a){return a.QX()}, $S:114} A.ae1.prototype={ $2:function(a,b){var s,r,q=a.x,p=A.oU(a,new P.m(q.a,q.b)) q=b.x s=A.oU(b,new P.m(q.a,q.b)) r=J.dJ(p.b,s.b) if(r!==0)return-r return-J.dJ(p.a,s.a)}, $S:91} A.ae4.prototype={ $1:function(a){var s=this,r=s.a if(r.C(0,a))return r.B(0,a) r=s.b if(r.am(0,a)){r=r.i(0,a) r.toString s.$1(r)}s.c.push(a)}, $S:104} A.ae2.prototype={ $1:function(a){return a.e}, $S:273} A.ae3.prototype={ $1:function(a){var s=this.a.i(0,a) s.toString return s}, $S:274} A.agq.prototype={ $1:function(a){return a.QY()}, $S:114} A.kz.prototype={ bR:function(a,b){var s,r=this.b if(r==null||b.b==null)return this.c-b.c r.toString s=b.b s.toString return r.bR(0,s)}, $ibi:1} A.r1.prototype={ p:function(a){var s=this s.a.az(0) s.b.az(0) s.c.az(0) s.hb(0)}, Qq:function(){var s,r,q,p,o,n,m,l,k,j,i,h,g,f=this,e=f.a if(e.a===0)return s=P.aZ(t.S) r=H.b([],t.QF) for(q=t.LQ,p=H.u(e).h("aO"),o=p.h("l.E"),n=f.c;e.a!==0;){m=P.an(new H.aO(e,new A.a4z(f),p),!0,o) e.az(0) n.az(0) l=new A.a4A() if(!!m.immutable$list)H.e(P.F("sort")) k=m.length-1 if(k-0<=32)H.JA(m,0,k,l) else H.Jz(m,0,k,l) C.b.J(r,m) for(l=m.length,j=0;j#"+Y.cf(this)}} A.a4z.prototype={ $1:function(a){return!this.a.c.C(0,a)}, $S:92} A.a4A.prototype={ $2:function(a,b){return a.a-b.a}, $S:91} A.a4B.prototype={ $2:function(a,b){return a.a-b.a}, $S:91} A.a4y.prototype={ $1:function(a){if(a.fx.am(0,this.b)){this.a.a=a return!1}return!0}, $S:92} A.r0.prototype={ kO:function(a,b){var s=this s.e.n(0,a,b) s.f=s.f|a.a s.d=!0}, eN:function(a,b){this.kO(a,new A.a4g(b))}, shC:function(a){a.toString this.eN(C.dq,a)}, siZ:function(a){a.toString this.eN(C.lL,a)}, snC:function(a){this.eN(C.dt,a)}, snv:function(a){this.eN(C.BM,a)}, snD:function(a){this.eN(C.du,a)}, snE:function(a){this.eN(C.dr,a)}, snB:function(a){this.eN(C.ds,a)}, sqo:function(a){this.eN(C.lM,a)}, sqm:function(a){this.eN(C.lK,a)}, sns:function(a,b){this.eN(C.BO,b)}, snt:function(a,b){this.eN(C.BS,b)}, snA:function(a,b){this.eN(C.BI,b)}, sny:function(a){this.kO(C.BP,new A.a4j(a))}, snw:function(a){this.kO(C.BG,new A.a4h(a))}, snz:function(a){this.kO(C.BQ,new A.a4k(a))}, snx:function(a){this.kO(C.BH,new A.a4i(a))}, snF:function(a){this.kO(C.BJ,new A.a4l(a))}, snG:function(a){this.kO(C.BK,new A.a4m(a))}, snu:function(a){this.eN(C.BN,a)}, sqn:function(a){this.eN(C.BR,a)}, sQh:function(a){if(a==this.ry)return this.ry=a this.d=!0}, sQi:function(a){if(a==this.x1)return this.x1=a this.d=!0}, sqd:function(a){return}, sn_:function(a){if(a==this.y2)return this.y2=a this.d=!0}, sk6:function(a,b){if(b==this.v)return this.v=b this.d=!0}, KZ:function(a){var s=this.aY;(s==null?this.aY=P.aZ(t.g3):s).B(0,a)}, b6:function(a,b){var s=this,r=s.bl,q=a.a if(b)s.bl=r|q else s.bl=r&~q s.d=!0}, Nw:function(a){var s,r=this if(a==null||!a.d||!r.d)return!0 if((r.f&a.f)!==0)return!1 if((r.bl&a.bl)!==0)return!1 if(r.y2!=null&&a.y2!=null)return!1 s=r.aI if(s!=null)if(s.length!==0){s=a.aI s=s!=null&&s.length!==0}else s=!1 else s=!1 if(s)return!1 return!0}, p2:function(a){var s,r,q=this if(!a.d)return q.e.J(0,a.e) q.at.J(0,a.at) q.f=q.f|a.f q.bl=q.bl|a.bl if(q.bT==null)q.bT=a.bT if(q.aA==null)q.aA=a.aA if(q.bi==null)q.bi=a.bi if(q.cv==null)q.cv=a.cv if(q.aR==null)q.aR=a.aR if(q.rx==null)q.rx=a.rx if(q.x1==null)q.x1=a.x1 if(q.ry==null)q.ry=a.ry q.x2=a.x2 q.y1=a.y1 if(q.y2==null)q.y2=a.y2 s=q.aE if(s==null){s=q.aE=a.aE q.d=!0}if(q.r2==null)q.r2=a.r2 r=q.aN q.aN=A.agt(a.aN,a.aE,r,s) s=q.b4 if(s===""||s==null)q.b4=a.b4 s=q.aI if(s===""||s==null)q.aI=a.aI s=q.P if(s===""||s==null)q.P=a.P s=q.bD r=q.aE q.bD=A.agt(a.bD,a.aE,s,r) q.A=Math.max(q.A,a.A+a.v) q.d=q.d||a.d}, Al:function(a){var s=this,r=A.J2() r.a=s.a r.b=s.b r.c=s.c r.d=s.d r.ac=s.ac r.aE=s.aE r.r2=s.r2 r.aN=s.aN r.P=s.P r.aI=s.aI r.b4=s.b4 r.bD=s.bD r.aR=s.aR r.v=s.v r.A=s.A r.bl=s.bl r.aY=s.aY r.bT=s.bT r.aA=s.aA r.bi=s.bi r.cv=s.cv r.f=s.f r.rx=s.rx r.x1=s.x1 r.ry=s.ry r.x2=s.x2 r.y1=s.y1 r.y2=s.y2 r.e.J(0,s.e) r.at.J(0,s.at) return r}} A.a4g.prototype={ $1:function(a){this.a.$0()}, $S:8} A.a4j.prototype={ $1:function(a){a.toString this.a.$1(H.uc(a))}, $S:8} A.a4h.prototype={ $1:function(a){a.toString this.a.$1(H.uc(a))}, $S:8} A.a4k.prototype={ $1:function(a){a.toString this.a.$1(H.uc(a))}, $S:8} A.a4i.prototype={ $1:function(a){a.toString this.a.$1(H.uc(a))}, $S:8} A.a4l.prototype={ $1:function(a){var s,r,q a.toString s=J.amf(t.f.a(a),t.N,t.S) r=s.i(0,"base") r.toString q=s.i(0,"extent") q.toString this.a.$1(X.cY(C.l,r,q,!1))}, $S:8} A.a4m.prototype={ $1:function(a){a.toString this.a.$1(H.cr(a))}, $S:8} A.V8.prototype={ j:function(a){return this.b}} A.r2.prototype={ bR:function(a,b){var s b.toString s=this.a99(b) return s}, $ibi:1, gar:function(a){return this.a}} A.nD.prototype={ a99:function(a){var s=a.b===this.b if(s)return 0 return C.f.bR(this.b,a.b)}} A.Pr.prototype={} A.Pt.prototype={} A.Pu.prototype={} E.a4o.prototype={ Pa:function(a){var s=P.aj(["type",this.a,"data",this.qX()],t.N,t.z) if(a!=null)s.n(0,"nodeId",a) return s}, cO:function(){return this.Pa(null)}, j:function(a){var s,r,q=H.b([],t.s),p=this.qX(),o=p.gaj(p),n=o.f7(o) C.b.ha(n) for(o=n.length,s=0;s#"+Y.cf(this)+"()"}} Q.TG.prototype={ lu:function(a,b){return this.R7(a,!0)}, abU:function(a,b,c){var s,r={},q=this.b if(q.am(0,a)){r=q.i(0,a) r.toString return c.h("ax<0>").a(r)}r.a=r.b=null this.lu(a,!1).bN(0,b,c).bN(0,new Q.TH(r,this,a,c),t.H) s=r.a if(s!=null)return s s=new P.a1($.R,c.h("a1<0>")) r.b=new P.aH(s,c.h("aH<0>")) q.n(0,a,s) return r.b.a}} Q.TH.prototype={ $1:function(a){var s=this,r=new O.cX(a,s.d.h("cX<0>")),q=s.a q.a=r s.b.b.n(0,s.c,r) q=q.b if(q!=null)q.ci(0,a)}, $S:function(){return this.d.h("a6(0)")}} Q.a1f.prototype={ dD:function(a,b){return this.abS(a,b)}, abS:function(a,b){var s=0,r=P.af(t.V4),q,p,o var $async$dD=P.a9(function(c,d){if(c===1)return P.ac(d,r) while(true)switch(s){case 0:p=C.cg.c6(P.aqL(P.C1(C.h6,b,C.U,!1)).e) s=3 return P.ak($.lC.grM().rg(0,"flutter/assets",H.ha(p.buffer,0,null)),$async$dD) case 3:o=d if(o==null)throw H.a(U.mW("Unable to load asset: "+H.c(b))) q=o s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$dD,r)}} F.SX.prototype={ dS:function(){return P.aj(["uniqueIdentifier",this.a,"hints",this.b,"editingValue",this.c.vP()],t.N,t.z)}} Q.T6.prototype={} N.yo.prototype={ grM:function(){var s=this.a$ return s===$?H.e(H.t("_defaultBinaryMessenger")):s}, q0:function(){}, ke:function(a){var s=0,r=P.af(t.H),q,p=this var $async$ke=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)switch(s){case 0:switch(H.cr(J.aS(t.b.a(a),"type"))){case"memoryPressure":p.q0() break}s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$ke,r)}, kP:function(){var $async$kP=P.a9(function(a,b){switch(a){case 2:n=q s=n.pop() break case 1:o=b s=p}while(true)switch(s){case 0:l=new P.a1($.R,t.fB) k=new P.aH(l,t.A0) j=t.v7 m.Dp(new N.a4H(k),C.lo,j) s=3 return P.bo(l,$async$kP,r) case 3:l=new P.a1($.R,t.ND) m.Dp(new N.a4I(new P.aH(l,t.r7),k),C.lo,j) s=4 return P.bo(l,$async$kP,r) case 4:i=P s=6 return P.bo(l,$async$kP,r) case 6:s=5 q=[1] return P.bo(P.Nk(i.akp(b,t.hz)),$async$kP,r) case 5:case 1:return P.bo(null,0,r) case 2:return P.bo(o,1,r)}}) var s=0,r=P.CC($async$kP,t.hz),q,p=2,o,n=[],m=this,l,k,j,i return P.CD(r)}, ado:function(){if(this.d$!=null)return $.b4().b.toString var s=N.apA("AppLifecycleState.resumed") if(s!=null)this.uZ(s)}, yo:function(a){return this.a0Q(a)}, a0Q:function(a){var s=0,r=P.af(t.ob),q,p=this,o var $async$yo=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)switch(s){case 0:a.toString o=N.apA(a) o.toString p.uZ(o) q=null s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$yo,r)}, goY:function(){var s=this.b$ return s===$?H.e(H.t("_restorationManager")):s}} N.a4H.prototype={ $0:function(){var s=0,r=P.af(t.P),q=this,p var $async$$0=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:p=q.a s=2 return P.ak($.aiH().lu("NOTICES",!1),$async$$0) case 2:p.ci(0,b) return P.ad(null,r)}}) return P.ae($async$$0,r)}, $C:"$0", $R:0, $S:95} N.a4I.prototype={ $0:function(){var s=0,r=P.af(t.P),q=this,p,o,n var $async$$0=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:p=q.a o=U n=N.aEV() s=2 return P.ak(q.b.a,$async$$0) case 2:p.ci(0,o.RY(n,b,"parseLicenses",t.N,t.qC)) return P.ad(null,r)}}) return P.ae($async$$0,r)}, $C:"$0", $R:0, $S:95} N.M4.prototype={ a5_:function(a,b){var s=new P.a1($.R,t.gg),r=$.bw() r.toString r.Xl(a,b,H.ayB(new N.a9R(new P.aH(s,t.yB)))) return s}, lp:function(a,b,c){return this.aaM(a,b,c)}, aaM:function(a,b,c){var s=0,r=P.af(t.H),q=1,p,o=[],n,m,l,k,j,i,h,g var $async$lp=P.a9(function(d,e){if(d===1){p=e s=q}while(true)switch(s){case 0:c=c n=null q=3 m=$.akD.i(0,a) s=m!=null?6:8 break case 6:s=9 return P.ak(m.$1(b),$async$lp) case 9:n=e s=7 break case 8:j=$.Sj() i=c i.toString j.Os(a,b,i) c=null case 7:o.push(5) s=4 break case 3:q=2 g=p l=H.U(g) k=H.aB(g) j=U.bE("during a platform message callback") U.dC(new U.bK(l,k,"services library",j,null,!1)) o.push(5) s=4 break case 2:o=[1] case 4:q=1 if(c!=null)c.$1(n) s=o.pop() break case 5:return P.ad(null,r) case 1:return P.ac(p,r)}}) return P.ae($async$lp,r)}, rg:function(a,b,c){$.aC_.i(0,b) return this.a5_(b,c)}, wj:function(a,b){if(b==null)$.akD.u(0,a) else{$.akD.n(0,a,b) $.Sj().uJ(a,new N.a9S(this,a))}}} N.a9R.prototype={ $1:function(a){var s,r,q,p try{this.a.ci(0,a)}catch(q){s=H.U(q) r=H.aB(q) p=U.bE("during a platform message response callback") U.dC(new U.bK(s,r,"services library",p,null,!1))}}, $S:15} N.a9S.prototype={ $2:function(a,b){return this.Pw(a,b)}, Pw:function(a,b){var s=0,r=P.af(t.H),q=this var $async$$2=P.a9(function(c,d){if(c===1)return P.ac(d,r) while(true)switch(s){case 0:s=2 return P.ak(q.a.lp(q.b,a,b),$async$$2) case 2:return P.ad(null,r)}}) return P.ae($async$$2,r)}, $S:278} T.pp.prototype={ d4:function(a){return this.a.$0()}} G.a_5.prototype={} G.n.prototype={ gt:function(a){return C.f.gt(this.a)}, k:function(a,b){if(b==null)return!1 if(this===b)return!0 if(J.N(b)!==H.E(this))return!1 return b instanceof G.n&&b.a===this.a}} G.q.prototype={ gt:function(a){return C.f.gt(this.a)}, k:function(a,b){if(b==null)return!1 if(this===b)return!0 if(J.N(b)!==H.E(this))return!1 return b instanceof G.q&&b.a===this.a}} G.Nn.prototype={} F.hW.prototype={ j:function(a){return"MethodCall("+this.a+", "+H.c(this.b)+")"}} F.xx.prototype={ j:function(a){var s=this return"PlatformException("+H.c(s.a)+", "+H.c(s.b)+", "+H.c(s.c)+", "+H.c(s.d)+")"}, $icc:1} F.wX.prototype={ j:function(a){return"MissingPluginException("+H.c(this.a)+")"}, $icc:1} U.a6y.prototype={ fj:function(a){if(a==null)return null return C.cJ.c6(H.cK(a.buffer,a.byteOffset,a.byteLength))}, c8:function(a){if(a==null)return null return H.ha(C.cg.c6(a).buffer,0,null)}} U.ZC.prototype={ c8:function(a){if(a==null)return null return C.fy.c8(C.Q.d1(a))}, fj:function(a){var s if(a==null)return a s=C.fy.fj(a) s.toString return C.Q.c7(0,s)}} U.ZD.prototype={ i4:function(a){var s=C.bO.c8(P.aj(["method",a.a,"args",a.b],t.N,t.O)) s.toString return s}, fV:function(a){var s,r,q,p=null,o=C.bO.fj(a) if(!t.f.b(o))throw H.a(P.bx("Expected method call Map, got "+H.c(o),p,p)) s=J.ag(o) r=s.i(o,"method") q=s.i(o,"args") if(typeof r=="string")return new F.hW(r,q) throw H.a(P.bx("Invalid method call: "+H.c(o),p,p))}, M2:function(a){var s,r,q,p=null,o=C.bO.fj(a) if(!t.j.b(o))throw H.a(P.bx("Expected envelope List, got "+H.c(o),p,p)) s=J.ag(o) if(s.gl(o)===1)return s.i(o,0) if(s.gl(o)===3)if(typeof s.i(o,0)=="string")r=s.i(o,1)==null||typeof s.i(o,1)=="string" else r=!1 else r=!1 if(r){r=H.cr(s.i(o,0)) q=H.cr(s.i(o,1)) throw H.a(F.a1h(r,s.i(o,2),q,p))}if(s.gl(o)===4)if(typeof s.i(o,0)=="string")if(s.i(o,1)==null||typeof s.i(o,1)=="string")r=s.i(o,3)==null||typeof s.i(o,3)=="string" else r=!1 else r=!1 else r=!1 if(r){r=H.cr(s.i(o,0)) q=H.cr(s.i(o,1)) throw H.a(F.a1h(r,s.i(o,2),q,H.cr(s.i(o,3))))}throw H.a(P.bx("Invalid envelope: "+H.c(o),p,p))}, pG:function(a){var s=C.bO.c8([a]) s.toString return s}, lh:function(a,b,c){var s=C.bO.c8([a,c,b]) s.toString return s}} U.a6g.prototype={ c8:function(a){var s if(a==null)return null s=G.a8_() this.dF(0,s,a) return s.k5()}, fj:function(a){var s,r if(a==null)return null s=new G.xK(a) r=this.h3(0,s) if(s.b").a3(c).h("W<1,2>?"))}, abo:function(a,b,c,d){var s=0,r=P.af(d),q,p=this,o var $async$vf=P.a9(function(e,f){if(e===1)return P.ac(f,r) while(true)switch(s){case 0:s=3 return P.ak(p.cF(a,null,t.Xw),$async$vf) case 3:o=f q=o==null?null:J.amf(o,b,c) s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$vf,r)}, rj:function(a){var s,r=this $.au0().n(0,r,a) s=r.gpc() s.wj(r.a,new A.a_I(r,a))}, t7:function(a,b){return this.a_V(a,b)}, a_V:function(a,b){var s=0,r=P.af(t.CD),q,p=2,o,n=[],m=this,l,k,j,i,h,g,f,e,d var $async$t7=P.a9(function(c,a0){if(c===1){o=a0 s=p}while(true)switch(s){case 0:g=m.b f=g.fV(a) p=4 d=g s=7 return P.ak(b.$1(f),$async$t7) case 7:j=d.pG(a0) q=j s=1 break p=2 s=6 break case 4:p=3 e=o j=H.U(e) if(j instanceof F.xx){l=j j=l.a h=l.b q=g.lh(j,l.c,h) s=1 break}else if(j instanceof F.wX){q=null s=1 break}else{k=j g=g.lh("error",null,J.bB(k)) q=g s=1 break}s=6 break case 3:s=2 break case 6:case 1:return P.ad(q,r) case 2:return P.ac(o,r)}}) return P.ae($async$t7,r)}, gar:function(a){return this.a}} A.a_I.prototype={ $1:function(a){return this.a.t7(a,this.b)}, $S:110} A.nC.prototype={ cF:function(a,b,c){return this.abp(a,b,c,c.h("0?"))}, ki:function(a,b){return this.cF(a,null,b)}, abp:function(a,b,c,d){var s=0,r=P.af(d),q,p=this var $async$cF=P.a9(function(e,f){if(e===1)return P.ac(f,r) while(true)switch(s){case 0:q=p.Si(a,b,!0,c) s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$cF,r)}} B.nk.prototype={ j:function(a){return this.b}} B.fx.prototype={ j:function(a){return this.b}} B.a1K.prototype={ gNX:function(){var s,r,q,p=P.y(t.np,t.LE) for(s=0;s<9;++s){r=C.rn[s] if(this.abx(r)){q=this.PW(r) if(q!=null)p.n(0,r,q)}}return p}, QM:function(){return!0}} B.fD.prototype={} B.qI.prototype={} B.xI.prototype={} B.HW.prototype={ yn:function(a){var s=0,r=P.af(t.z),q,p=this,o,n,m,l,k,j,i var $async$yn=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)switch(s){case 0:i=B.aAg(t.b.a(a)) if(i instanceof B.qI){o=i.b if(o.QM()){p.c.n(0,o.gqs(),o.gabW()) n=!0}else{p.d.B(0,o.gqs()) n=!1}}else if(i instanceof B.xI){o=p.d m=i.b if(!o.C(0,m.gqs())){p.c.u(0,m.gqs()) n=!0}else{o.u(0,m.gqs()) n=!1}}else n=!0 if(!n){q=P.aj(["handled",!0],t.N,t.z) s=1 break}p.a5U(i) for(o=p.a,m=P.bk(o,!0,t.iS),l=m.length,k=0;k")),r.c=q.e;r.q();){p=r.d o=$.at4().i(0,p) o.toString l.n(0,p,o)}}s=this.c $.a1O.gaj($.a1O).K(0,s.gOF(s)) if(!(n instanceof Q.a1L)&&!(n instanceof B.a1M))s.u(0,C.ex) s.J(0,l)}} B.cD.prototype={ k:function(a,b){if(b==null)return!1 if(J.N(b)!==H.E(this))return!1 return b instanceof B.cD&&b.a==this.a&&b.b==this.b}, gt:function(a){return P.a5(this.a,this.b,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}} B.OL.prototype={} Q.a1L.prototype={} B.a1M.prototype={} A.a1N.prototype={ gqs:function(){var s=C.wR.i(0,this.a) return s==null?C.ll:s}, gabW:function(){var s,r=this.a,q=C.x2.i(0,r) if(q!=null)return q s=C.wT.i(0,r) if(s!=null)return s return new G.n((C.c.gt(r)|0)>>>0)}, abx:function(a){var s=this switch(a){case C.cu:return(s.c&4)!==0 case C.cv:return(s.c&1)!==0 case C.cw:return(s.c&2)!==0 case C.cx:return(s.c&8)!==0 case C.hp:return(s.c&16)!==0 case C.ho:return(s.c&32)!==0 case C.hq:return(s.c&64)!==0 case C.hr:case C.l1:return!1 default:throw H.a(H.j(u.I))}}, PW:function(a){return C.bi}, j:function(a){var s=this,r=s.b return"RawKeyEventDataWeb(keyLabel: "+(r==="Unidentified"?"":r)+", code: "+s.a+", metaState: "+s.c+", modifiers down: "+s.gNX().j(0)+")"}} K.y2.prototype={ gadW:function(){var s=this if(s.c)return new O.cX(s.a,t.hr) if(s.b==null){s.b=new P.aH(new P.a1($.R,t.X6),t.EZ) s.t4()}return s.b.a}, t4:function(){var s=0,r=P.af(t.H),q,p=this,o var $async$t4=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:s=3 return P.ak(C.hv.ki("get",t.pE),$async$t4) case 3:o=b if(p.b==null){s=1 break}p.Ii(o) case 1:return P.ad(q,r)}}) return P.ae($async$t4,r)}, Ii:function(a){var s,r=a==null if(!r){s=J.aS(a,"enabled") s.toString H.uc(s)}else s=!1 this.aaR(r?null:t.nc.a(J.aS(a,"data")),s)}, aaR:function(a,b){var s,r,q=this,p=q.c&&b q.d=p if(p)$.bT.ch$.push(new K.a3k(q)) s=q.a if(b){p=q.Z2(a) r=t.N if(p==null){p=t.O p=P.y(p,p)}r=new K.cP(p,q,null,"root",P.y(r,t.z4),P.y(r,t.I1)) p=r}else p=null q.a=p q.c=!0 r=q.b if(r!=null)r.ci(0,p) q.b=null if(q.a!=s){q.aa() if(s!=null)s.p(0)}}, yP:function(a){return this.a3_(a)}, a3_:function(a){var s=0,r=P.af(t.O),q=this,p var $async$yP=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)switch(s){case 0:p=a.a switch(p){case"push":q.Ii(t.pE.a(a.b)) break default:throw H.a(P.ce(p+" was invoked but isn't implemented by "+H.E(q).j(0)))}return P.ad(null,r)}}) return P.ae($async$yP,r)}, Z2:function(a){if(a==null)return null return t.qd.a(C.aj.fj(H.ha(a.buffer,a.byteOffset,a.byteLength)))}, Qg:function(a){var s=this s.r.B(0,a) if(!s.f){s.f=!0 $.bT.ch$.push(new K.a3l(s))}}, Gg:function(){var s,r,q,p=this if(!p.f)return p.f=!1 for(s=p.r,r=P.cq(s,s.r,H.u(s).c);r.q();)r.d.x=!1 s.az(0) q=C.aj.c8(p.a.a) C.hv.cF("put",H.cK(q.buffer,q.byteOffset,q.byteLength),t.H)}, aae:function(){if($.bT.cy$)return this.Gg()}} K.a3k.prototype={ $1:function(a){this.a.d=!1}, $S:2} K.a3l.prototype={ $1:function(a){return this.a.Gg()}, $S:2} K.cP.prototype={ goT:function(){var s=J.CZ(this.a,"c",new K.a3h()) s.toString return t.pE.a(s)}, gjA:function(){var s=J.CZ(this.a,"v",new K.a3i()) s.toString return t.pE.a(s)}, OG:function(a,b,c){var s=this,r=J.fW(s.gjA(),b),q=c.h("0?").a(J.p5(s.gjA(),b)) if(J.fX(s.gjA()))J.p5(s.a,"v") if(r)s.mu() return q}, a7R:function(a,b){var s,r,q,p,o=this,n=o.f if(n.am(0,a)||!J.fW(o.goT(),a)){n=t.N s=new K.cP(P.y(n,t.O),null,null,a,P.y(n,t.z4),P.y(n,t.I1)) o.ff(s) return s}r=t.N q=o.c p=J.aS(o.goT(),a) p.toString s=new K.cP(t.pE.a(p),q,o,a,P.y(r,t.z4),P.y(r,t.I1)) n.n(0,a,s) return s}, ff:function(a){var s=this,r=a.d if(r!==s){if(r!=null)r.tz(a) a.d=s s.EU(a) if(a.c!=s.c)s.IA(a)}}, Zm:function(a){this.tz(a) a.d=null if(a.c!=null){a.zy(null) a.KF(this.gIz())}}, mu:function(){var s,r=this if(!r.x){r.x=!0 s=r.c if(s!=null)s.Qg(r)}}, IA:function(a){a.zy(this.c) a.KF(this.gIz())}, zy:function(a){var s=this,r=s.c if(r==a)return if(s.x)if(r!=null)r.r.u(0,s) s.c=a if(s.x&&a!=null){s.x=!1 s.mu()}}, tz:function(a){var s,r,q,p=this if(J.d(p.f.u(0,a.e),a)){J.p5(p.goT(),a.e) s=p.r r=s.i(0,a.e) if(r!=null){q=J.bP(r) p.Gz(q.em(r)) if(q.gO(r))s.u(0,a.e)}if(J.fX(p.goT()))J.p5(p.a,"c") p.mu() return}s=p.r q=s.i(0,a.e) if(q!=null)J.p5(q,a) q=s.i(0,a.e) if((q==null?null:J.fX(q))===!0)s.u(0,a.e)}, EU:function(a){var s=this if(s.f.am(0,a.e)){J.kK(s.r.bX(0,a.e,new K.a3g()),a) s.mu() return}s.Gz(a) s.mu()}, Gz:function(a){this.f.n(0,a.e,a) J.it(this.goT(),a.e,a.a)}, KG:function(a,b){var s,r,q=this.f q=q.gaZ(q) s=this.r s=s.gaZ(s) r=q.aak(0,new H.fn(s,new K.a3j(),H.u(s).h("fn"))) J.fi(b?P.an(r,!1,H.u(r).h("l.E")):r,a)}, KF:function(a){return this.KG(a,!1)}, adH:function(a){var s,r=this if(a==r.e)return s=r.d if(s!=null)s.tz(r) r.e=a s=r.d if(s!=null)s.EU(r)}, p:function(a){var s,r=this r.KG(r.gZl(),!0) r.f.az(0) r.r.az(0) s=r.d if(s!=null)s.tz(r) r.d=null r.zy(null) r.y=!0}, j:function(a){return"RestorationBucket(restorationId: "+H.c(this.e)+", owner: "+H.c(this.b)+")"}} K.a3h.prototype={ $0:function(){var s=t.O return P.y(s,s)}, $S:159} K.a3i.prototype={ $0:function(){var s=t.O return P.y(s,s)}, $S:159} K.a3g.prototype={ $0:function(){return H.b([],t.QT)}, $S:284} K.a3j.prototype={ $1:function(a){return a}, $S:285} X.SK.prototype={} X.lK.prototype={ JW:function(){var s,r,q,p=this,o=null,n=p.a n=n==null?o:n.a s=p.e s=s==null?o:s.b r=p.f r=r==null?o:r.b q=p.c return P.aj(["systemNavigationBarColor",n,"systemNavigationBarDividerColor",null,"statusBarColor",null,"statusBarBrightness",s,"statusBarIconBrightness",r,"systemNavigationBarIconBrightness",q==null?o:q.b],t.N,t.z)}, j:function(a){return P.Gw(this.JW())}, gt:function(a){var s=this return P.a5(s.a,s.b,s.d,s.e,s.f,s.c,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, k:function(a,b){var s,r=this if(b==null)return!1 if(J.N(b)!==H.E(r))return!1 if(b instanceof X.lK)if(J.d(b.a,r.a))s=b.f==r.f&&b.e==r.e&&b.c==r.c else s=!1 else s=!1 return s}} X.a6L.prototype={ $0:function(){if(!J.d($.rF,$.aks)){C.bo.cF("SystemChrome.setSystemUIOverlayStyle",$.rF.JW(),t.H) $.aks=$.rF}$.rF=null}, $C:"$0", $R:0, $S:0} V.JV.prototype={ j:function(a){return this.b}} X.eh.prototype={ j:function(a){var s=this return"TextSelection(baseOffset: "+H.c(s.c)+", extentOffset: "+H.c(s.d)+", affinity: "+s.e.j(0)+", isDirectional: "+s.f+")"}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 return b instanceof X.eh&&b.c==s.c&&b.d==s.d&&b.e===s.e&&b.f===s.f}, gt:function(a){var s=this return P.a5(J.a3(s.c),J.a3(s.d),H.di(s.e),C.d3.gt(s.f),C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, fU:function(a,b){var s=this,r=a==null?s.c:a,q=b==null?s.d:b return X.cY(s.e,r,q,s.f)}, dk:function(a){return this.fU(null,a)}, LB:function(a){return this.fU(a,null)}} B.GC.prototype={ j:function(a){return this.b}} B.ol.prototype={} B.Fu.prototype={ aar:function(a,b){var s,r,q,p,o,n=new B.WW(this),m=b.b,l=m.a,k=m.b,j=l<0||k<0,i=b.a if(j){s=n.$1(i) r=null}else{q=n.$1(J.e7(i,0,l)) p=n.$1(C.c.V(i,l,k)) o=n.$1(C.c.bw(i,k)) s=C.c.U(J.mk(q,p),o) n=q.length r=m.c>m.d?m.fU(n+p.length,n):m.fU(n,n+p.length)}n=r==null?C.O:r return new N.bb(s,n,s==i?b.c:C.v)}} B.WW.prototype={ $1:function(a){var s=this.a a.toString return H.alK(a,s.a,new B.WV(s),null)}, $S:45} B.WV.prototype={ $1:function(a){return""}, $S:286} N.Jw.prototype={ j:function(a){return this.b}} N.Jx.prototype={ j:function(a){return this.b}} N.z0.prototype={ dS:function(){return P.aj(["name","TextInputType."+C.kf[this.a],"signed",this.b,"decimal",this.c],t.N,t.z)}, j:function(a){return"TextInputType(name: "+("TextInputType."+C.kf[this.a])+", signed: "+H.c(this.b)+", decimal: "+H.c(this.c)+")"}, k:function(a,b){if(b==null)return!1 return b instanceof N.z0&&b.a===this.a&&b.b==this.b&&b.c==this.c}, gt:function(a){return P.a5(this.a,this.b,this.c,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}} N.eL.prototype={ j:function(a){return this.b}} N.a6X.prototype={ j:function(a){return"TextCapitalization.none"}} N.a74.prototype={ dS:function(){var s,r=this,q=P.y(t.N,t.z) q.n(0,"inputType",r.a.dS()) q.n(0,"readOnly",r.b) q.n(0,"obscureText",r.c) q.n(0,"autocorrect",!0) q.n(0,"smartDashesType",C.f.j(r.f.a)) q.n(0,"smartQuotesType",C.f.j(r.r.a)) q.n(0,"enableSuggestions",!0) q.n(0,"actionLabel",null) q.n(0,"inputAction",r.z.b) q.n(0,"textCapitalization","TextCapitalization.none") q.n(0,"keyboardAppearance",r.ch.b) s=r.e if(s!=null)q.n(0,"autofill",s.dS()) return q}} N.vU.prototype={ j:function(a){return this.b}} N.bb.prototype={ vP:function(){var s=this.b,r=this.c return P.aj(["text",this.a,"selectionBase",s.c,"selectionExtent",s.d,"selectionAffinity",s.e.b,"selectionIsDirectional",s.f,"composingBase",r.a,"composingExtent",r.b],t.N,t.z)}, un:function(a,b,c){var s=c==null?this.a:c,r=b==null?this.b:b return new N.bb(s,r,a==null?this.c:a)}, LK:function(a){return this.un(null,a,null)}, LD:function(a){return this.un(a,null,null)}, LO:function(a,b){return this.un(a,b,null)}, j:function(a){return"TextEditingValue(text: \u2524"+H.c(this.a)+"\u251c, selection: "+this.b.j(0)+", composing: "+this.c.j(0)+")"}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 return b instanceof N.bb&&b.a==s.a&&b.b.k(0,s.b)&&b.c.k(0,s.c)}, gt:function(a){var s=this.b,r=this.c return P.a5(J.a3(this.a),s.gt(s),P.a5(J.a3(r.a),J.a3(r.b),C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a),C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, d4:function(a){return this.a.$0()}} N.j2.prototype={ j:function(a){return this.b}} N.a7c.prototype={} N.a75.prototype={ Qt:function(a){var s,r,q,p if(a.k(0,this.c))return this.c=a s=a.gvg(a)?a:new P.x(0,0,-1,-1) r=$.fV() q=s.a p=s.b p=P.aj(["width",s.c-q,"height",s.d-p,"x",q,"y",p],t.N,t.z) r.ger().cF("TextInput.setMarkedTextRect",p,t.H)}, Qs:function(a){var s,r,q,p if(a.k(0,this.d))return this.d=a s=a.gvg(a)?a:new P.x(0,0,-1,-1) r=$.fV() q=s.a p=s.b p=P.aj(["width",s.c-q,"height",s.d-p,"x",q,"y",p],t.N,t.z) r.ger().cF("TextInput.setCaretRect",p,t.H)}, DT:function(a,b,c,d,e,f){var s=$.fV(),r=d==null?null:d.a r=P.aj(["fontFamily",b,"fontSize",c,"fontWeightIndex",r,"textAlignIndex",e.a,"textDirectionIndex",f.a],t.N,t.z) s.ger().cF("TextInput.setStyle",r,t.H)}, aT:function(a){var s=$.fV() if(s.b===this){s.ger().ki("TextInput.clearClient",t.H) s.b=null s.J2()}}} N.K5.prototype={ Fc:function(a,b){this.ger().cF("TextInput.setClient",[a.e,b.dS()],t.H) this.b=a this.c=b}, ger:function(){var s=this.a return s===$?H.e(H.t("_channel")):s}, ys:function(a){return this.a28(a)}, a28:function(a9){var s=0,r=P.af(t.z),q,p=this,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1,a2,a3,a4,a5,a6,a7,a8 var $async$ys=P.a9(function(b0,b1){if(b0===1)return P.ac(b1,r) while(true)switch(s){case 0:a8=p.b if(a8==null){s=1 break}o=a9.a if(o==="TextInputClient.requestExistingInputState"){n=p.c p.Fc(a8,n===$?H.e(H.t("_currentConfiguration")):n) a8=p.b.f.a.c.a if(a8!=null)p.ger().cF("TextInput.setEditingState",a8.vP(),t.H) s=1 break}m=t.j.a(a9.b) if(o===u.w){a8=t.b l=a8.a(J.aS(m,1)) for(n=J.k(l),k=J.as(n.gaj(l));k.q();)N.apN(a8.a(n.i(l,k.gw(k)))) s=1 break}a8=J.ag(m) j=H.oR(a8.i(m,0)) n=p.b if(j!==n.e){s=1 break}switch(o){case"TextInputClient.updateEditingState":n.f.aek(N.apN(t.b.a(a8.i(m,1)))) break case"TextInputClient.performAction":n=n.f i=N.aEs(H.cr(a8.i(m,1))) switch(i){case C.eK:if(n.a.r2===1)n.rV(i,!0) break case C.dx:case C.i6:case C.i9:case C.ia:case C.i7:case C.i8:n.rV(i,!0) break case C.ib:case C.i5:case C.ic:case C.i2:case C.i4:case C.i3:n.rV(i,!1) break default:H.e(H.j(u.I))}break case"TextInputClient.performPrivateCommand":n=n.f k=H.cr(J.aS(a8.i(m,1),"action")) a8=t.b.a(J.aS(a8.i(m,1),"data")) n.a.b4.$2(k,a8) break case"TextInputClient.updateFloatingCursor":n=n.f k=N.aEr(H.cr(a8.i(m,1))) a8=t.b.a(a8.i(m,2)) if(k===C.e2){h=J.ag(a8) g=new P.m(H.Cu(h.i(a8,"X")),H.Cu(h.i(a8,"Y")))}else g=C.i switch(k){case C.fQ:a8=n.gjv().r if(a8!=null&&a8.a!=null){n.gjv().fB(0) n.I7()}n.k2=g a8=n.r h=$.D.A$.Q.i(0,a8).gD() h.toString f=t.E e=new P.aV(f.a(h).a2.c,C.l) h=$.D.A$.Q.i(0,a8).gD() h.toString h=f.a(h).nX(e) n.id=h h=h.gbn() d=$.D.A$.Q.i(0,a8).gD() d.toString n.k3=h.a5(0,new P.m(0,f.a(d).aq.gcS()/2)) n.k1=e a8=$.D.A$.Q.i(0,a8).gD() a8.toString f.a(a8) f=n.k3 f.toString n=n.k1 n.toString a8.wh(k,f,n) break case C.e2:a8=n.k2 a8.toString c=g.a5(0,a8) a8=n.id.gbn().U(0,c) h=n.r f=$.D.A$.Q.i(0,h).gD() f.toString d=t.E b=a8.a5(0,new P.m(0,d.a(f).aq.gcS()/2)) f=$.D.A$.Q.i(0,h).gD() f.toString d.a(f) a8=f.aq a=a8.a a=a.gai(a) a.toString a0=Math.ceil(a)-a8.gcS()+5 a1=a8.gay(a8)+4 a8=f.lk a2=a8!=null?b.a5(0,a8):C.i if(f.uN&&a2.a>0){f.eX=new P.m(b.a- -4,f.eX.b) f.uN=!1}else if(f.pM&&a2.a<0){f.eX=new P.m(b.a-a1,f.eX.b) f.pM=!1}if(f.bS&&a2.b>0){f.eX=new P.m(f.eX.a,b.b- -4) f.bS=!1}else if(f.bq&&a2.b<0){f.eX=new P.m(f.eX.a,b.b-a0) f.bq=!1}a8=f.eX a3=b.a-a8.a a4=b.b-a8.b a5=Math.min(Math.max(a3,-4),a1) a6=Math.min(Math.max(a4,-4),a0) if(a3<-4&&a2.a<0)f.uN=!0 else if(a3>a1&&a2.a>0)f.pM=!0 if(a4<-4&&a2.b<0)f.bS=!0 else if(a4>a0&&a2.b>0)f.bq=!0 f.lk=b n.k3=new P.m(a5,a6) a8=$.D.A$.Q.i(0,h).gD() a8.toString d.a(a8) f=$.D.A$.Q.i(0,h).gD() f.toString d.a(f) a=n.k3 a.toString a7=$.D.A$.Q.i(0,h).gD() a7.toString a7=a.U(0,new P.m(0,d.a(a7).aq.gcS()/2)) n.k1=a8.w4(T.fu(f.de(0,null),a7)) h=$.D.A$.Q.i(0,h).gD() h.toString d.a(h) d=n.k3 d.toString n=n.k1 n.toString h.wh(k,d,n) break case C.e3:if(n.k1!=null&&n.k3!=null){n.gjv().sm(0,0) a8=n.gjv() a8.Q=C.aw a8.jp(1,C.jl,C.qa)}break default:H.e(H.j(u.I))}break case"TextInputClient.onConnectionClosed":a8=n.f if(a8.ghg()){a8.y.toString a8.go=a8.y=$.fV().b=null a8.rV(C.dx,!0)}break case"TextInputClient.showAutocorrectionPromptRect":n.f.QP(H.oR(a8.i(m,1)),H.oR(a8.i(m,2))) break default:throw H.a(F.aoL(null))}case 1:return P.ad(q,r)}}) return P.ae($async$ys,r)}, J2:function(){if(this.d)return this.d=!0 P.eV(new N.a77(this))}, Yy:function(){this.ger().ki("TextInput.clearClient",t.H) this.b=null this.J2()}} N.a77.prototype={ $0:function(){var s=this.a s.d=!1 if(s.b==null)s.ger().ki("TextInput.hide",t.H)}, $C:"$0", $R:0, $S:0} U.agO.prototype={ $1:function(a){var s=this.a if(s.a===$)return s.a=a else throw H.a(H.ew("parent"))}, $S:288} U.agN.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("parent")):s}, $S:289} U.agP.prototype={ $1:function(a){this.a.$1(a) return!1}, $S:25} U.aP.prototype={} U.aX.prototype={ nj:function(a,b){return!0}, Ah:function(a){return!0}} U.c0.prototype={} U.iz.prototype={ bF:function(a){return this.b.$1(a)}} U.SC.prototype={ abm:function(a,b,c){var s if(a instanceof U.c0){if(c==null){s=$.D.A$.f.f c=s==null?null:s.d}return a.b2(b,c)}else return a.bF(b)}} U.fZ.prototype={ ah:function(){return new U.zv(P.aZ(t.od),new P.z(),C.k)}} U.SD.prototype={ $1:function(a){t.KU.a(a.gE()).toString return!1}, $S:144} U.SE.prototype={ $1:function(a){var s,r=this,q=r.c.h("aX<0>?").a(J.aS(t.KU.a(a.gE()).r,r.b)) if(q!=null){s=r.d s.toString s.wJ(a,null) r.a.a=q return!0}return!1}, $S:144} U.zv.prototype={ aC:function(){this.b_() this.K6()}, a_N:function(a){this.Y(new U.a8f(this))}, K6:function(){var s,r,q,p,o=this,n=J.and(J.amV(o.a.d)),m=o.d.n1(n),l=o.d l.toString s=n.n1(l) for(l=m.gM(m),r=o.gH9();l.q();){q=l.gw(l).a q.b=!0 p=q.goQ() if(p.a>0){p.b=p.c=p.d=p.e=null p.a=0}C.b.u(q.a,r)}for(l=s.gM(s);l.q();){q=l.gw(l).a q.b=!0 q.a.push(r)}o.d=n}, bd:function(a){this.bG(a) this.K6()}, p:function(a){var s,r,q,p,o=this o.bh(0) for(s=o.d,s=s.gM(s),r=o.gH9();s.q();){q=s.gw(s).a q.b=!0 p=q.goQ() if(p.a>0){p.b=p.c=p.d=p.e=null p.a=0}C.b.u(q.a,r)}o.d=null}, H:function(a,b){var s=this.a return new U.zu(null,s.d,this.e,s.e,null)}} U.a8f.prototype={ $0:function(){this.a.e=new P.z()}, $S:0} U.zu.prototype={ cZ:function(a){var s if(this.x===a.x)s=!S.S2(a.r,this.r) else s=!0 return s}} U.n_.prototype={ ah:function(){return new U.Ad(new N.aY(null,t.A),C.k)}} U.Ad.prototype={ aC:function(){this.b_() $.bT.ch$.push(new U.aay(this)) $.D.A$.f.d.B(0,this.gHf())}, p:function(a){$.D.A$.f.d.u(0,this.gHf()) this.bh(0)}, Ke:function(a){this.tl(new U.aaw(this))}, a0A:function(a){if(this.c==null)return this.Ke(a)}, Xq:function(a){if(!this.e)this.tl(new U.aar(this))}, Xs:function(a){if(this.e)this.tl(new U.aas(this))}, Xo:function(a){var s=this if(s.f!==a){s.tl(new U.aaq(s,a)) s.a.toString}}, HU:function(a,b){var s,r,q,p,o,n,m=this,l=new U.aav(m),k=new U.aau(m,new U.aat(m)) if(a==null){s=m.a s.toString r=s}else r=a q=l.$1(r) p=k.$1(r) if(b!=null)b.$0() s=m.a s.toString o=l.$1(s) s=m.a s.toString n=k.$1(s) if(p!=n)m.a.y.$1(n) if(q!=o)m.a.z.$1(o)}, tl:function(a){return this.HU(null,a)}, a2T:function(a){return this.HU(a,null)}, bd:function(a){this.bG(a) if(this.a.c!==a.c)$.bT.ch$.push(new U.aax(this,a))}, gXm:function(){var s,r=this.c r.toString r=F.fv(r) s=r==null?null:r.db switch(s==null?C.ay:s){case C.ay:return this.a.c case C.de:return!0 default:throw H.a(H.j(u.I))}}, H:function(a,b){var s,r,q,p=this,o=null,n=p.a,m=n.ch n=n.d s=p.gXm() r=p.a q=new T.hY(p.gXp(),o,p.gXr(),m,!0,L.vX(!1,s,r.cx,o,!0,n,!0,o,p.gXn(),o,o),p.r) if(r.c){n=r.r n=n!=null&&J.mm(n)}else n=!1 if(n){n=p.a.r n.toString q=new U.fZ(n,q,o)}p.a.c return q}} U.aay.prototype={ $1:function(a){var s=$.D.A$.f.b if(s==null)s=O.mZ() this.a.Ke(s)}, $S:2} U.aaw.prototype={ $0:function(){var s=$.D.A$.f.b switch(s==null?O.mZ():s){case C.bz:this.a.d=!1 break case C.bd:this.a.d=!0 break default:throw H.a(H.j(u.I))}}, $S:0} U.aar.prototype={ $0:function(){this.a.e=!0}, $S:0} U.aas.prototype={ $0:function(){this.a.e=!1}, $S:0} U.aaq.prototype={ $0:function(){this.a.f=this.b}, $S:0} U.aav.prototype={ $1:function(a){var s=this.a return s.e&&a.c&&s.d}, $S:87} U.aat.prototype={ $1:function(a){var s,r=this.a.c r.toString r=F.fv(r) s=r==null?null:r.db switch(s==null?C.ay:s){case C.ay:return a.c case C.de:return!0 default:throw H.a(H.j(u.I))}}, $S:87} U.aau.prototype={ $1:function(a){var s=this.a return s.f&&s.d&&this.b.$1(a)}, $S:87} U.aax.prototype={ $1:function(a){this.a.a2T(this.b)}, $S:2} U.F1.prototype={ Ah:function(a){return this.b}, bF:function(a){}} U.kM.prototype={} U.kU.prototype={} U.mK.prototype={} U.F_.prototype={} U.qE.prototype={} U.HQ.prototype={ nj:function(a,b){var s,r,q,p,o,n=$.D.A$.f.f if(n==null||n.d==null)return!1 b.toString s=t.vz r=0 for(;r<2;++r){q=C.t3[r] p=n.d p.toString o=U.ani(p,q,s) if(o!=null&&o.nj(0,q)){this.b=o this.c=q return!0}}return!1}, bF:function(a){var s,r=this.b if(r===$)r=H.e(H.t("_selectedAction")) s=this.c r.bF(s===$?H.e(H.t("_selectedIntent")):s)}} U.KR.prototype={} U.KQ.prototype={} U.Nj.prototype={} X.uD.prototype={ aM:function(a){var s=new E.xP(this.e,!0,null,this.$ti.h("xP<1>")) s.gav() s.dy=!0 s.sbc(null) return s}, aP:function(a,b){b.sm(0,this.e) b.sQT(!0)}} S.zq.prototype={ ah:function(){return new S.C2(C.k)}} S.C2.prototype={ ga2n:function(){var s,r $.D.toString s=$.b4().b if(s.gAy()!=="/"){$.D.toString s=s.gAy()}else{this.a.toString r=$.D r.toString s=s.gAy()}return s}, aC:function(){var s=this s.b_() s.a6t() $.D.toString s.f=s.IS($.b4().b.a.f,s.a.k3) $.D.aE$.push(s)}, bd:function(a){this.bG(a) this.Kq(a)}, p:function(a){var s C.b.u($.D.aE$,this) s=this.d if(s!=null)s.p(0) this.bh(0)}, Kq:function(a){var s,r=this r.a.toString if(r.gKD()){s=r.d if(s!=null)s.p(0) r.d=null if(a!=null){r.a.toString s=!1}else s=!0 if(s){r.a.toString r.e=new N.lb(r,t.TX)}}else{r.e=null s=r.d if(s!=null)s.p(0) r.d=null}}, a6t:function(){return this.Kq(null)}, gKD:function(){var s=this.a s=s.ch s=(s==null?null:s.gaV(s))===!0||this.a.d!=null||!1 return s}, a3d:function(a){var s,r=a.a if(r==="/")this.a.toString s=this.a s=this.a.d if(s!=null)return s.$1(a) return null}, a3m:function(a){return this.a.cx.$1(a)}, uz:function(){var s=0,r=P.af(t.y),q,p=this,o,n var $async$uz=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:p.a.toString o=p.e n=o==null?null:o.gas() if(n==null){q=!1 s=1 break}q=n.NQ() s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$uz,r)}, pB:function(a){return this.a94(a)}, a94:function(a){var s=0,r=P.af(t.y),q,p=this,o,n var $async$pB=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)switch(s){case 0:p.a.toString o=p.e n=o==null?null:o.gas() if(n==null){q=!1 s=1 break}o=n.IW(a,null,t.O) o.toString n.qx(o) q=!0 s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$pB,r)}, IS:function(a,b){this.a.toString return S.aCR(a,b)}, M5:function(a){var s=this,r=s.IS(a,s.a.k3) if(!r.k(0,s.f))s.Y(new S.ag_(s,r))}, gF7:function(){var s=this return P.d9(function(){var r=0,q=1,p return function $async$gF7(a,b){if(a===1){p=b r=q}while(true)switch(r){case 0:r=2 return P.Nk(s.a.id) case 2:r=3 return C.oG case 3:return P.d5() case 1:return P.d6(p)}}},t.bh)}, H:function(a,b){var s,r,q,p,o,n,m,l,k,j,i=this,h=null,g={} g.a=null i.a.toString if(i.gKD()){s=i.e r=i.ga2n() q=i.a q=q.db q.toString g.a=new K.x9(r,i.ga3c(),i.ga3l(),q,"nav",K.aFU(),!0,s)}g.b=null s=i.a s.toString p=new T.kT(new S.afZ(g,i),h) g.b=p p=g.b=L.mH(p,h,h,C.bL,!0,s.fx,h,h,C.av) s=$.aBH if(s)o=new L.Hv(15,!1,!1,h) else o=h g=o!=null?g.b=T.yF(C.ca,H.b([p,T.a1u(h,o,h,h,0,0,0,h)],t.J),C.br,h,h):p s=i.a r=s.dy q=s.fy n=i.f n.toString m=n s=s.ac n=S.aBG() l=$.aty() k=i.gF7() k=P.an(k,!0,k.$ti.h("l.E")) j=$.asU() return new K.y5(new X.lD(n,new E.ER(E.ayj(),new U.fZ(l,new E.EQ(j,new U.w_(new U.HZ(P.y(t.l5,t.UJ)),new S.AQ(new L.wD(m,k,new U.Kc(r,q,g,h),h),h),h),h),h),"",h),"",h),s,h)}} S.ag_.prototype={ $0:function(){this.a.f=this.b}, $S:0} S.afZ.prototype={ $1:function(a){return this.b.a.dx.$2(a,this.a.a)}, $S:30} S.AQ.prototype={ ah:function(){return new S.NE(C.k)}} S.NE.prototype={ aC:function(){this.b_() $.D.aE$.push(this)}, AD:function(){this.Y(new S.acD())}, M6:function(){this.Y(new S.acE())}, H:function(a,b){var s,r,q,p,o,n,m,l $.D.toString s=$.b4() r=s.gij() q=s.x r=r.hH(0,q==null?H.b0():q) q=s.x if(q==null)q=H.b0() p=s.b.a s.gqP() o=s.x o=V.VX(C.eO,o==null?H.b0():o) s.gqP() n=s.x n=V.VX(C.eO,n==null?H.b0():n) m=s.e l=s.x m=V.VX(m,l==null?H.b0():l) s.gqP() s=s.x s=V.VX(C.eO,s==null?H.b0():s) return new F.ln(new F.nu(r,q,p.e,p.d,m,o,n,s,!1,!1,!1,!1,!1,!1,C.ay),this.a.c,null)}, p:function(a){C.b.u($.D.aE$,this) this.bh(0)}} S.acD.prototype={ $0:function(){}, $S:0} S.acE.prototype={ $0:function(){}, $S:0} S.Re.prototype={} S.RI.prototype={} L.uL.prototype={ ah:function(){return new L.zA(C.k)}} L.zA.prototype={ aC:function(){this.b_() this.Fd()}, bd:function(a){this.bG(a) this.Fd()}, Fd:function(){this.e=new U.fz(this.a.c,this.gXx(),null,t.Jd)}, p:function(a){var s,r,q=this.d if(q!=null)for(q=q.gaj(q),q=q.gM(q);q.q();){s=q.gw(q) r=this.d.i(0,s) r.toString s.T(0,r)}this.bh(0)}, Xy:function(a){var s,r,q=this,p=a.a,o=q.d if(o==null)o=q.d=P.y(t.I_,t.M) o.n(0,p,q.YN(p)) o=q.d.i(0,p) o.toString s=p.P$ s.bQ(s.c,new B.bn(o),!1) if(!q.f){q.f=!0 r=q.GP() if(r!=null)q.Kk(r) else $.bT.ch$.push(new L.a8J(q))}return!1}, GP:function(){var s={},r=this.c r.toString s.a=null r.be(new L.a8O(s)) return t.xO.a(s.a)}, Kk:function(a){var s,r this.c.toString s=this.f r=this.e r.toString a.F8(t.Fw.a(G.azd(r,s)))}, YN:function(a){return new L.a8N(this,a)}, H:function(a,b){var s=this.f,r=this.e r.toString return new G.wr(s,r,null)}} L.a8J.prototype={ $1:function(a){var s,r=this.a if(r.c==null)return s=r.GP() s.toString r.Kk(s)}, $S:2} L.a8O.prototype={ $1:function(a){this.a.a=a}, $S:13} L.a8N.prototype={ $0:function(){var s,r=this.a r.d.u(0,this.b) s=r.d if(s.gO(s))if($.bT.db$.a<3)r.Y(new L.a8L(r)) else{r.f=!1 P.eV(new L.a8M(r))}}, $C:"$0", $R:0, $S:0} L.a8L.prototype={ $0:function(){this.a.f=!1}, $S:0} L.a8M.prototype={ $0:function(){var s,r=this.a if(r.c!=null){s=r.d s=s.gO(s)}else s=!1 if(s)r.Y(new L.a8K(r))}, $C:"$0", $R:0, $S:0} L.a8K.prototype={ $0:function(){}, $S:0} L.q7.prototype={} L.Gd.prototype={} L.pf.prototype={ rT:function(){var s,r=new L.Gd(new P.a7(t.V)) this.bA$=r s=this.c s.toString new L.q7(r).fk(s)}, nQ:function(){var s,r=this if(r.gvX()){if(r.bA$==null)r.rT()}else{s=r.bA$ if(s!=null){s.aa() r.bA$=null}}}, H:function(a,b){if(this.gvX()&&this.bA$==null)this.rT() return C.Hz}} L.O5.prototype={ H:function(a,b){throw H.a(U.mW("Widgets that mix AutomaticKeepAliveClientMixin into their State must call super.build() but must ignore the return value of the superclass."))}} T.h2.prototype={ cZ:function(a){return this.f!==a.f}} T.H1.prototype={ aM:function(a){var s,r=this.e r=new E.Im(C.d.aO(J.aW(r,0,1)*255),r,!1,null) r.gav() s=r.gaF() r.dy=s r.sbc(null) return r}, aP:function(a,b){b.se6(0,this.e) b.stZ(!1)}} T.vu.prototype={ aM:function(a){var s=new V.I8(this.e,this.f,this.r,!1,!1,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){b.sqq(this.e) b.sMT(this.f) b.svB(this.r) b.cW=b.br=!1}, pC:function(a){a.sqq(null) a.sMT(null)}} T.Ei.prototype={ aM:function(a){var s=new E.I6(null,C.ak,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){b.spi(null) b.siH(C.ak)}, pC:function(a){a.spi(null)}} T.Ee.prototype={ aM:function(a){var s=new E.I5(this.e,this.f,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){b.spi(this.e) b.siH(this.f)}, pC:function(a){a.spi(null)}} T.HB.prototype={ aM:function(a){var s=this,r=new E.Ip(s.e,s.r,s.x,s.z,s.y,null,s.f,null) r.gav() r.gaF() r.dy=!0 r.sbc(null) return r}, aP:function(a,b){var s=this b.sji(0,s.e) b.siH(s.f) b.sa7r(0,s.r) b.sk6(0,s.x) b.sap(0,s.y) b.so3(0,s.z)}} T.HC.prototype={ aM:function(a){var s=this,r=new E.Iq(s.r,s.y,s.x,s.e,s.f,null) r.gav() r.gaF() r.dy=!0 r.sbc(null) return r}, aP:function(a,b){var s=this b.spi(s.e) b.siH(s.f) b.sk6(0,s.r) b.sap(0,s.x) b.so3(0,s.y)}} T.zh.prototype={ aM:function(a){var s=T.dQ(a),r=new E.IA(this.x,null) r.gav() r.gaF() r.dy=!1 r.sbc(null) r.sc0(0,this.e) r.sex(this.r) r.sbt(0,s) r.sOf(0,null) return r}, aP:function(a,b){b.sc0(0,this.e) b.sOf(0,null) b.sex(this.r) b.sbt(0,T.dQ(a)) b.br=this.x}} T.pr.prototype={ aM:function(a){var s=new E.Ih(this.e,null) s.gav() s.gaF() s.dy=!0 s.sbc(null) return s}, aP:function(a,b){b.slt(this.e)}} T.Eq.prototype={ aM:function(a){var s=new E.Id(this.e,!1,this.y,C.cO,C.cO,null) s.gav() s.gaF() s.dy=!0 s.sbc(null) return s}, aP:function(a,b){b.slt(this.e) b.sQS(!1) b.sbV(0,this.y) b.sabM(C.cO) b.saal(C.cO)}} T.FK.prototype={ aM:function(a){var s=new E.Ie(this.e,this.f,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){b.saef(this.e) b.a8=this.f}} T.ee.prototype={ aM:function(a){var s=new T.In(this.e,T.dQ(a),null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){b.sek(0,this.e) b.sbt(0,T.dQ(a))}} T.mo.prototype={ aM:function(a){var s=new T.Is(this.f,this.r,this.e,T.dQ(a),null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){b.sex(this.e) b.saew(this.f) b.saaX(this.r) b.sbt(0,T.dQ(a))}} T.v8.prototype={} T.l4.prototype={ aM:function(a){var s=new T.I9(this.e,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){b.sAB(this.e)}} T.wx.prototype={ p9:function(a){var s,r,q=a.d q.toString t.Wz.a(q) s=this.f if(q.e!==s){q.e=s r=a.ga9(a) if(r instanceof K.r)r.a1()}}} T.mG.prototype={ aM:function(a){var s=new B.I7(this.e,0,null,null) s.gav() s.gaF() s.dy=!1 s.J(0,null) return s}, aP:function(a,b){b.sAB(this.e)}} T.o0.prototype={ aM:function(a){return E.apj(S.hB(this.f,this.e))}, aP:function(a,b){b.sL1(S.hB(this.f,this.e))}, cp:function(){var s,r=this,q=r.e if(q===1/0&&r.f===1/0)s="SizedBox.expand" else s=q===0&&r.f===0?"SizedBox.shrink":"SizedBox" q=r.a return q==null?s:s+"-"+q.j(0)}} T.hF.prototype={ aM:function(a){return E.apj(this.e)}, aP:function(a,b){b.sL1(this.e)}} T.Gm.prototype={ aM:function(a){var s=new E.Ii(this.e,this.f,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){b.sac8(0,this.e) b.sac6(0,this.f)}} T.qr.prototype={ aM:function(a){var s=new E.Il(this.e,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){b.svt(this.e)}, bK:function(a){var s=($.b5+1)%16777215 $.b5=s return new T.O9(s,this,C.a1,P.be(t.t))}} T.O9.prototype={ gE:function(){return t.kY.a(N.r7.prototype.gE.call(this))}} T.Jt.prototype={ aM:function(a){var s=a.a0(t.I) s.toString s=new T.Iz(this.e,s.f,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){var s b.sek(0,this.e) s=a.a0(t.I) s.toString b.sbt(0,s.f)}} T.rz.prototype={ aM:function(a){var s=T.dQ(a) return K.aAx(this.e,null,C.ak,this.r,s)}, aP:function(a,b){var s b.sex(this.e) s=T.dQ(a) b.sbt(0,s) s=this.r if(b.aB!==s){b.aB=s b.a1()}if(C.ak!==b.ax){b.ax=C.ak b.aw() b.ao()}}} T.G1.prototype={ aM:function(a){var s=T.dQ(a) s=new K.xT(this.ch,this.e,s,C.br,C.ak,0,null,null) s.gav() s.gaF() s.dy=!1 s.J(0,null) return s}, aP:function(a,b){var s=this.ch if(b.dK!=s){b.dK=s b.a1()}b.sex(this.e) s=T.dQ(a) b.sbt(0,s)}} T.nN.prototype={ p9:function(a){var s,r,q,p,o=this,n=a.d n.toString t.B.a(n) s=o.f if(n.x!=s){n.x=s r=!0}else r=!1 s=o.r if(n.e!=s){n.e=s r=!0}s=o.x if(n.f!=s){n.f=s r=!0}s=o.y if(n.r!=s){n.r=s r=!0}s=o.z if(n.y!=s){n.y=s r=!0}s=n.z q=o.Q if(s==null?q!=null:s!==q){n.z=q r=!0}if(r){p=a.ga9(a) if(p instanceof K.r)p.a1()}}} T.HM.prototype={ H:function(a,b){var s,r,q=this,p=null,o=b.a0(t.I) o.toString s=q.c switch(o.f){case C.p:r=p break case C.m:r=s s=p break default:H.e(H.j(u.I)) s=p r=s}return T.a1u(q.f,q.y,p,p,r,s,q.d,q.r)}} T.vS.prototype={ ga34:function(){switch(this.e){case C.o:return!0 case C.n:var s=this.x return s===C.fE||s===C.jF default:throw H.a(H.j(u.I))}}, w_:function(a){var s=this.ga34()?T.dQ(a):null return s}, aM:function(a){var s=this return F.aAu(null,C.V,s.x,s.e,s.f,s.r,s.Q,s.w_(a),s.z)}, aP:function(a,b){var s=this,r=s.e if(b.F!==r){b.F=r b.a1()}r=s.f if(b.N!==r){b.N=r b.a1()}r=s.r if(b.S!==r){b.S=r b.a1()}r=s.x if(b.au!==r){b.au=r b.a1()}r=s.w_(a) if(b.aB!=r){b.aB=r b.a1()}r=s.z if(b.ax!==r){b.ax=r b.a1()}if(C.V!==b.ae){b.ae=C.V b.aw() b.ao()}}} T.fG.prototype={} T.Ep.prototype={} T.FA.prototype={ p9:function(a){var s,r,q,p=a.d p.toString t.US.a(p) s=this.f if(p.e!==s){p.e=s r=!0}else r=!1 s=this.r if(p.f!==s){p.f=s r=!0}if(r){q=a.ga9(a) if(q instanceof K.r)q.a1()}}} T.Fl.prototype={} T.ID.prototype={ aM:function(a){var s,r,q,p=this,o=null,n=p.e,m=p.r if(m==null){m=a.a0(t.I) m.toString m=m.f}s=p.y r=L.Gt(a) q=s===C.aV?"\u2026":o s=new Q.xU(U.K7(q,r,p.Q,p.cx,n,p.f,m,p.db,p.z,p.cy),p.x,s,0,o,o) s.gav() s.gaF() s.dy=!1 s.J(0,o) s.xZ(n) return s}, aP:function(a,b){var s,r=this b.sbs(0,r.e) b.slP(0,r.f) s=r.r if(s==null){s=a.a0(t.I) s.toString s=s.f}b.sbt(0,s) b.sQV(r.x) b.sacY(0,r.y) b.snL(r.z) b.snp(0,r.Q) b.siv(0,r.cx) b.snM(r.cy) b.sqK(0,r.db) s=L.Gt(a) b.slv(0,s)}, d4:function(a){return this.e.$0()}} T.a3n.prototype={ $1:function(a){return!0}, $S:55} T.HV.prototype={ aM:function(a){var s=this,r=s.d r=r==null?null:r.dj(0) r=new U.If(r,s.e,s.f,s.r,s.x,s.y,s.z,s.Q,s.ch,s.cx,s.cy,s.db,s.dy,!1,null,!1) r.gav() r.gaF() r.dy=!1 r.a6m() return r}, aP:function(a,b){var s=this,r=s.d b.sfn(0,r==null?null:r.dj(0)) b.au=s.e b.say(0,s.f) b.sai(0,s.r) b.sQd(0,s.x) b.sap(0,s.y) b.sa84(s.Q) b.sex(s.cx) b.saab(s.ch) b.sadJ(0,s.cy) b.sa7K(s.db) b.sac4(!1) b.sbt(0,null) b.sve(s.dy) b.suR(s.z)}, pC:function(a){a.sfn(0,null)}} T.Gr.prototype={ aM:function(a){var s=this,r=null,q=new E.Ir(s.e,r,s.r,r,s.y,s.z,s.Q,r) q.gav() q.gaF() q.dy=!1 q.sbc(r) return q}, aP:function(a,b){var s=this b.bS=s.e b.bq=null b.bL=s.r b.bA=null b.cC=s.y b.cb=s.z b.G=s.Q}} T.hY.prototype={ ah:function(){return new T.AT(C.k)}} T.AT.prototype={ aaz:function(a){var s=this.a.e if(s!=null&&this.c!=null)s.$1(a)}, D4:function(){return this.a.e==null?null:this.gaay()}, H:function(a,b){return new T.OM(this,this.a.x,null)}} T.OM.prototype={ aM:function(a){var s=this.e,r=s.a r.toString r=new E.Ik(!0,r.c,r.d,s.D4(),r.f,null) r.gav() r.gaF() r.dy=!1 r.sbc(null) return r}, aP:function(a,b){var s=this.e,r=s.a r.toString b.a8=r.c b.aJ=r.d b.br=s.D4() r=r.f if(!J.d(b.cW,r)){b.cW=r b.aw()}}} T.he.prototype={ aM:function(a){var s=new E.Iv(null) s.gav() s.dy=!0 s.sbc(null) return s}} T.hP.prototype={ aM:function(a){var s=new E.xS(this.e,this.f,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){b.sNf(this.e) b.sBw(this.f)}} T.D0.prototype={ aM:function(a){var s=new E.xN(!1,null,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){b.sKO(!1) b.sBw(null)}} T.nV.prototype={ aM:function(a){var s=this,r=null,q=s.e q=new E.xV(s.f,s.r,!1,q.b,q.a,q.d,q.e,q.y,q.z,q.f,q.r,q.x,q.Q,q.ch,q.cx,q.cy,q.dx,q.dy,q.fr,q.fx,q.db,q.fy,q.go,q.id,q.k1,q.c,q.k2,q.k3,q.k4,q.r1,q.r2,q.rx,s.H3(a),q.x1,q.x2,q.y1,q.F,q.y2,q.ac,q.at,q.aN,q.aI,q.b4,q.P,q.bD,q.aR,q.v,q.A,q.aE,r,r,q.bi,q.cv,q.aY,q.bl,q.N,r) q.gav() q.gaF() q.dy=!1 q.sbc(r) return q}, H3:function(a){var s,r=this.e,q=r.ry if(q!=null)return q if(r.k2==null)s=!1 else s=!0 if(!s)return null return T.dQ(a)}, aP:function(a,b){var s,r,q=this b.sa8i(q.f) b.sa9S(q.r) b.sa9L(!1) s=q.e b.swb(s.fr) b.sk7(0,s.a) b.sAb(0,s.b) b.sCD(s.c) b.swd(0,s.d) b.sA7(0,s.e) b.swr(s.y) b.sBN(s.z) b.slt(s.f) b.sBo(s.r) b.sCt(s.x) b.sqC(0,s.Q) b.sB9(s.ch) b.sBa(0,s.cx) b.sBx(s.cy) b.slA(s.dx) b.sC0(0,s.dy) b.sBq(0,s.db) b.sfn(0,s.fy) b.sBQ(s.go) b.sqd(s.id) b.sn_(s.k1) b.sBO(0,s.k2) b.sm(0,s.k3) b.sBy(s.k4) b.sAw(s.r1) b.sBr(0,s.r2) b.sab0(s.rx) b.sC1(s.fx) b.sbt(0,q.H3(a)) b.sws(s.x1) b.sae0(s.x2) b.shC(s.y1) b.siZ(s.y2) b.snC(s.ac) b.snD(s.at) b.snE(s.aN) b.snB(s.aI) b.sqo(s.b4) b.snv(s.F) b.sqm(s.P) b.sns(0,s.bD) b.snt(0,s.aR) b.snA(0,s.v) r=s.A b.sny(r) b.snw(r) b.snz(null) b.snx(null) b.snF(s.bi) b.snG(s.cv) b.snu(s.aY) b.sqn(s.bl) b.sa8L(s.N)}} T.GE.prototype={ aM:function(a){var s=new E.Ij(null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}} T.Ds.prototype={ aM:function(a){var s=new E.I4(!0,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){b.sa7n(!0)}} T.mT.prototype={ aM:function(a){var s=new E.Ic(this.e,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){b.sa9M(this.e)}} T.G0.prototype={ aM:function(a){var s=new E.Ig(this.e,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){b.sabc(0,this.e)}} T.q8.prototype={ H:function(a,b){return this.c}} T.kT.prototype={ H:function(a,b){return this.c.$1(b)}} T.vh.prototype={ aM:function(a){var s=new T.OR(this.e,C.bh,null) s.gav() s.gaF() s.dy=!1 s.sbc(null) return s}, aP:function(a,b){b.sap(0,this.e)}} T.OR.prototype={ sap:function(a,b){if(J.d(b,this.bS))return this.bS=b this.aw()}, aD:function(a,b){var s,r,q,p,o,n=this,m=n.r2 if(m.a>0&&m.b>0){m=a.gbZ(a) s=n.r2 r=b.a q=b.b p=s.a s=s.b o=H.aF() o=o?H.b_():new H.aR(new H.aT()) o.sap(0,n.bS) m.ck(0,new P.x(r,q,r+p,q+s),o)}m=n.v$ if(m!=null)a.dq(m,b)}} N.ag1.prototype={ $0:function(){var s,r,q=this.b if(q==null){q=this.a.gdY().d q.toString s=this.c s=s.gbB(s) r=S.axJ() q.c3(r,s) q=r}return q}, $S:298} N.ag2.prototype={ $1:function(a){return this.a.ke(a)}, $S:299} N.fb.prototype={ uz:function(){return P.dD(!1,t.y)}, pB:function(a){return P.dD(!1,t.y)}, a95:function(a){var s=a.a s.toString return this.pB(s)}, AD:function(){}, M6:function(){}, M5:function(a){}, a91:function(a){}} N.KH.prototype={ aaE:function(){this.a97($.b4().b.a.f)}, a97:function(a){var s,r,q for(s=this.aE$,r=s.length,q=0;q"))}, aM:function(a){return this.d}, aP:function(a,b){}, a7f:function(a,b){var s,r={} r.a=b if(b==null){a.NL(new N.a2J(r,this,a)) s=r.a s.toString a.pf(s,new N.a2K(r))}else{b.N=this b.f0()}r=r.a r.toString return r}, cp:function(){return this.e}} N.a2J.prototype={ $0:function(){var s=this.b,r=N.aAv(s,s.$ti.c) this.a.a=r r.f=this.c}, $S:0} N.a2K.prototype={ $0:function(){var s=this.a.a s.toString s.EG(null,null) s.tw()}, $S:0} N.lz.prototype={ gE:function(){return this.$ti.h("ly<1>").a(N.a_.prototype.gE.call(this))}, be:function(a){var s=this.F if(s!=null)a.$1(s)}, hx:function(a){this.F=null this.iw(a)}, dQ:function(a,b){this.EG(a,b) this.tw()}, b5:function(a,b){this.jm(0,b) this.tw()}, hD:function(){var s=this,r=s.N if(r!=null){s.N=null s.jm(0,s.$ti.h("ly<1>").a(r)) s.tw()}s.wQ()}, tw:function(){var s,r,q,p,o,n,m=this try{m.F=m.ds(m.F,m.$ti.h("ly<1>").a(N.a_.prototype.gE.call(m)).c,C.fx)}catch(o){s=H.U(o) r=H.aB(o) n=U.bE("attaching to the render tree") q=new U.bK(s,r,"widgets library",n,null,!1) U.dC(q) p=N.Fj(q) m.F=m.ds(null,p,C.fx)}}, gD:function(){return this.$ti.h("aG<1>").a(N.a_.prototype.gD.call(this))}, iT:function(a,b){var s=this.$ti s.h("aG<1>").a(N.a_.prototype.gD.call(this)).sbc(s.c.a(a))}, iY:function(a,b,c){}, j4:function(a,b){this.$ti.h("aG<1>").a(N.a_.prototype.gD.call(this)).sbc(null)}} N.KI.prototype={} N.C3.prototype={ fo:function(){this.Ra() $.f1=this var s=$.b4().b s.ch=this.ga1l() s.cx=$.R}, CK:function(){this.Rc() this.y4()}} N.C4.prototype={ fo:function(){this.Uq() $.bT=this}, iS:function(){this.Rb()}} N.C5.prototype={ fo:function(){var s,r,q=this q.Us() $.lC=q q.a$=C.oA s=new K.y2(P.aZ(t.z4),new P.a7(t.V)) C.hv.rj(s.ga2Z()) q.b$=s s=$.b4() r=q.grM().gN_() s=s.b s.fr=r s.fx=$.R s=$.aoz if(s==null)s=$.aoz=H.b([],t.iL) s.push(q.gXC()) C.n3.wi(new N.ag2(q)) C.n2.wi(q.ga0P()) q.ado()}, iS:function(){this.Ut()}} N.C6.prototype={ fo:function(){this.Uu() $.iS=this var s=t.K this.kb$=new E.Z2(P.y(s,t.Sc),P.y(s,t.B6),P.y(s,t.pt)) C.o9.uM()}, q0:function(){this.Ta() var s=this.kb$ if(s!=null)s.az(0)}, ke:function(a){var s=0,r=P.af(t.H),q,p=this var $async$ke=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)switch(s){case 0:s=3 return P.ak(p.Tb(a),$async$ke) case 3:switch(H.cr(J.aS(t.b.a(a),"type"))){case"fontsChange":p.n6$.aa() break}s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$ke,r)}} N.C7.prototype={ fo:function(){this.Ux() $.J1=this this.cC$=$.b4().b.a.a}} N.C8.prototype={ fo:function(){var s,r,q,p=this p.Uy() $.lA=p s=t.TT p.ac$=new K.HG(p.ga9D(),p.ga1K(),p.ga1M(),H.b([],s),H.b([],s),H.b([],s),P.aZ(t.F)) s=$.b4() r=s.b r.f=p.gaaI() q=r.r=$.R r.r2=p.gaaL() r.rx=q r.ry=p.ga1I() r.x1=q r.x2=p.ga1G() r.y1=q s=new A.xY(C.r,p.LW(),s,null) s.gav() s.dy=!0 s.sbc(null) p.gdY().sadX(s) s=p.gdY().d s.Q=s q=t.W q.a(B.I.prototype.gca.call(s)).e.push(s) s.db=s.Kg() q.a(B.I.prototype.gca.call(s)).y.push(s) p.QG(r.a.c) p.Q$.push(p.ga1j()) r=p.y2$ if(r!=null)r.P$=null s=t.S p.y2$=new A.GI(new A.a_V(C.hT,P.y(s,t.ZA)),P.y(s,t.xg),new P.a7(t.V)) p.ch$.push(p.ga2c())}, iS:function(){this.Uv()}, AN:function(a,b,c){if(c!=null||t.ge.b(b)||t.PB.b(b))this.y2$.aeq(b,new N.ag1(this,c,b)) this.S_(0,b,c)}} N.C9.prototype={ iS:function(){this.UA()}, Bj:function(){var s,r,q this.SL() for(s=this.aE$,r=s.length,q=0;q=s.b&&s.c>=s.d) else s=!0}else s=!1 if(s)o=T.azk(new T.hF(C.j8,p,p),0,0) s=q.d if(s!=null)o=new T.mo(s,p,p,o,p) r=q.ga3q() if(r!=null)o=new T.ee(r,o,p) s=q.f if(s!=null)o=new T.vh(s,o,p) s=q.r if(s!=null)o=M.anO(o,s,C.fK) s=q.y if(s!=null)o=new T.hF(s,o,p) s=q.z if(s!=null)o=new T.ee(s,o,p) o.toString return o}} E.EQ.prototype={} E.Me.prototype={ Ah:function(a){return!1}, b2:function(a,b){}, bF:function(a){return this.b2(a,null)}} E.Mu.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).a9N(C.H)}, bF:function(a){return this.b2(a,null)}} E.Mv.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).a9O(C.H)}, bF:function(a){return this.b2(a,null)}} E.Mw.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).a9P(C.H)}, bF:function(a){return this.b2(a,null)}} E.Mx.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).a9Q(C.H)}, bF:function(a){return this.b2(a,null)}} E.My.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).a9T(C.H)}, bF:function(a){return this.b2(a,null)}} E.Mz.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).a9V(C.H)}, bF:function(a){return this.b2(a,null)}} E.MA.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).Mt(C.H,!1,!0)}, bF:function(a){return this.b2(a,null)}} E.MB.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).a9W(C.H,!1)}, bF:function(a){return this.b2(a,null)}} E.MC.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).a9U(C.H)}, bF:function(a){return this.b2(a,null)}} E.MD.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).a9Y(C.H)}, bF:function(a){return this.b2(a,null)}} E.ME.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).Mu(C.H,!1,!0)}, bF:function(a){return this.b2(a,null)}} E.MF.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).a9Z(C.H,!1)}, bF:function(a){return this.b2(a,null)}} E.MG.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).a9X(C.H)}, bF:function(a){return this.b2(a,null)}} E.MH.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).aa_(C.H)}, bF:function(a){return this.b2(a,null)}} E.NO.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).NY(C.H)}, bF:function(a){return this.b2(a,null)}} E.NR.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).NZ(C.H)}, bF:function(a){return this.b2(a,null)}} E.NU.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).O_(C.H)}, bF:function(a){return this.b2(a,null)}} E.NX.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).O0(C.H)}, bF:function(a){return this.b2(a,null)}} E.NP.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).BZ(C.H)}, bF:function(a){return this.b2(a,null)}} E.NQ.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).acf(C.H,!1)}, bF:function(a){return this.b2(a,null)}} E.NS.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).C_(C.H)}, bF:function(a){return this.b2(a,null)}} E.NT.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).acg(C.H,!1)}, bF:function(a){return this.b2(a,null)}} E.NV.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).vp(C.H)}, bF:function(a){return this.b2(a,null)}} E.NW.prototype={ b2:function(a,b){var s=this.gcN().r s=$.D.A$.Q.i(0,s).gD() s.toString t.E.a(s).vq(C.H)}, bF:function(a){return this.b2(a,null)}} E.ER.prototype={} K.F0.prototype={ gaL:function(a){var s=this.a if(s==null)return null s=s.c s.toString return s}} D.aL.prototype={ gbs:function(a){return this.a.a}, a7y:function(a,b,c){var s,r,q=null,p=this.a,o=p.c if(o.ghB()){s=o.b p=s>=o.a&&s<=p.a.length}else p=!1 if(!p||!c)return Q.lN(q,b,this.a.a) r=b.bU(C.Dg) p=this.a o=p.c p=p.a s=o.a o=o.b return Q.lN(H.b([Q.lN(q,q,J.e7(p,0,s)),Q.lN(q,r,C.c.V(p,s,o)),Q.lN(q,q,C.c.bw(p,o))],t.Ne),b,q)}, sre:function(a){var s,r,q,p,o=this if(!o.NF(a))throw H.a(U.mW("invalid text selection: "+a.j(0))) s=a.a r=a.b if(s==r){q=o.a.c s=s>=q.a&&r<=q.b}else s=!1 p=s?o.a.c:C.v o.aW(0,o.a.LO(p,a))}, NF:function(a){var s=this.a.a.length return a.a<=s&&a.b<=s}, d4:function(a){return this.gbs(this).$0()}} D.Kg.prototype={} D.pH.prototype={ giv:function(a){var s=this.fr,r=s.geE() return new M.JT(s.d,r,s.r,s.cx,s.x,s.y,null,!0,s.id)}, ah:function(){return new D.pI(new B.cZ(!0,new P.a7(t.V),t.uh),new N.aY(null,t.A),new T.ww(),new T.ww(),new T.ww(),null,null,C.k)}} D.pI.prototype={ ghf:function(){var s=this.ch return s===$?H.e(H.t("_cursorBlinkOpacityController")):s}, gjv:function(){var s=this.fy return s===$?H.e(H.t("_floatingCursorResetController")):s}, gvX:function(){return this.a.d.gcn()}, aC:function(){var s,r,q=this,p=null q.Tx() s=q.a.c.P$ s.bQ(s.c,new B.bn(q.gxL()),!1) s=q.a.d r=q.c r.toString q.dy=s.ag(r) r=q.a.d.P$ r.bQ(r.c,new B.bn(q.gxQ()),!1) q.a.toString s=F.IV(0) q.Q=s s=s.P$ s.bQ(s.c,new B.bn(new D.Wa(q)),!1) q.ch=G.cl(p,C.fM,0,p,1,p,q) s=q.ghf() s.dm() s=s.bq$ s.b=!0 s.a.push(q.gI5()) q.fy=G.cl(p,p,0,p,1,p,q) s=q.gjv() s.dm() s=s.bq$ s.b=!0 s.a.push(q.gI6()) q.f.sm(0,q.a.cx)}, aG:function(){var s=this s.Ty() s.c.a0(t.BY) if(!s.dx&&s.a.x1){s.dx=!0 $.bT.ch$.push(new D.W9(s))}}, bd:function(a){var s,r,q,p,o=this o.bG(a) s=o.a.c r=a.c if(s!=r){s=o.gxL() r.T(0,s) q=o.a.c.P$ q.bQ(q.c,new B.bn(s),!1) o.zB()}if(!o.a.c.a.b.k(0,r.a.b)){s=o.z if(s!=null)s.b5(0,o.a.c.a)}s=o.z if(s!=null)s.sN5(o.a.ch) if(!o.fx){o.goO() s=!1}else s=!0 o.fx=s s=o.a.d r=a.d if(s!==r){s=o.gxQ() r.T(0,s) r=o.dy if(r!=null)r.ab(0) r=o.a.d q=o.c q.toString o.dy=r.ag(q) q=o.a.d.P$ q.bQ(q.c,new B.bn(s),!1) o.nQ()}if(a.y&&o.a.d.gcn())o.yW() s=o.ghg() if(s)if(a.y!==o.a.y){o.y.toString o.goO() s=o.G1(!1) $.fV().ger().cF("TextInput.updateConfig",s.dS(),t.H)}if(!o.a.fr.k(0,a.fr)){p=o.a.fr if(o.ghg()){s=o.y s.toString r=o.gxR() s.DT(0,p.d,p.r,p.x,o.a.fy,r)}}s=o.a r=s.y if(!r){if(s.y1==null)s=null else s=!0 s=s===!0}else s=!1 s}, p:function(a){var s,r=this r.a.c.T(0,r.gxL()) r.ghf().T(0,r.gI5()) r.gjv().T(0,r.gI6()) r.FE() r.JC() s=r.z if(s!=null){s.v8() s.gzp().p(0)}r.z=null r.dy.ab(0) r.a.d.T(0,r.gxQ()) C.b.u($.D.aE$,r) r.Tz(0)}, aek:function(a){var s,r=this,q=r.a if(q.y)a=q.c.a.LK(a.b) r.go=a if(a.k(0,r.a.c.a))return q=a.a s=r.a.c.a if(q==s.a&&a.c.k(0,s.c))r.tb(a.b,C.H) else{r.i7() r.x2=null if(r.ghg()){s=r.a if(s.f&&q.length===s.c.a.a.length+1){r.ry=3 r.x1=s.c.a.b.c}}r.a_h(a,C.H)}r.tC() if(r.ghg()){r.zh(!1) r.zg()}}, I7:function(){var s,r,q,p,o=this,n=o.r,m=$.D.A$.Q.i(0,n).gD() m.toString s=t.E s.a(m) r=o.k1 r.toString r=m.nX(r).ga7J() m=$.D.A$.Q.i(0,n).gD() m.toString q=r.a5(0,new P.m(0,s.a(m).aq.gcS()/2)) m=o.gjv() if(m.gbg(m)===C.a7){m=$.D.A$.Q.i(0,n).gD() m.toString s.a(m) r=o.k1 r.toString m.wh(C.e3,q,r) m=o.k1.a n=$.D.A$.Q.i(0,n).gD() n.toString if(m!=s.a(n).a2.c)o.tb(X.hi(C.l,o.k1.a),C.lJ) o.k3=o.k2=o.k1=o.id=null}else{p=o.gjv().gbz() m=o.k3 r=P.aa(m.a,q.a,p) r.toString m=P.aa(m.b,q.b,p) m.toString n=$.D.A$.Q.i(0,n).gD() n.toString s.a(n) s=o.k1 s.toString n.DH(C.e2,new P.m(r,m),s,p)}}, rV:function(a,b){var s,r,q,p=this,o=p.a.c o.aW(0,o.a.LD(C.v)) if(b)switch(a){case C.i2:case C.i3:case C.dx:case C.i6:case C.i7:case C.i8:case C.ib:case C.ic:case C.i4:case C.i5:case C.eK:p.a.d.Pd() break case C.i9:o=p.a.d o.d.a0(t.ag).f.to(o,!0) break case C.ia:o=p.a.d o.d.a0(t.ag).f.to(o,!1) break default:throw H.a(H.j(u.I))}try{p.a.toString}catch(q){s=H.U(q) r=H.aB(q) o=U.bE("while calling onSubmitted for "+a.j(0)) U.dC(new U.bK(s,r,"widgets",o,null,!1))}}, zB:function(){var s,r=this if(r.k4>0||!r.ghg())return s=r.a.c.a if(J.d(s,r.go))return r.y.toString $.fV().ger().cF("TextInput.setEditingState",s.vP(),t.H) r.go=s}, GX:function(a){var s,r,q,p,o,n,m,l,k,j,i,h,g=this C.b.gc5(g.Q.d).b.toString s=g.r r=$.D.A$.Q.i(0,s).gD() r.toString q=t.E r=q.a(r).r2 r.toString if(g.a.r2===1){s=a.c q=a.a r=r.a p=s-q>=r?r/2-a.gbn().a:C.f.a6(0,s-r,q) o=C.cy}else{n=a.gbn() m=a.c l=a.a k=a.d j=a.b s=$.D.A$.Q.i(0,s).gD() s.toString i=P.aAk(n,Math.max(k-j,H.B(q.a(s).aq.gcS())),m-l) s=i.d q=i.b r=r.b p=s-q>=r?r/2-i.gbn().b:C.f.a6(0,s-r,q) o=C.az}s=C.b.gc5(g.Q.d).y s.toString r=C.b.gc5(g.Q.d).f r.toString q=C.b.gc5(g.Q.d).r q.toString h=C.d.a6(p+s,r,q) q=C.b.gc5(g.Q.d).y q.toString return new Q.nQ(h,a.bJ(o.a4(0,q-h)))}, ghg:function(){var s=this.y s=s==null?null:$.fV().b===s return s===!0}, goO:function(){this.a.toString return!1}, yW:function(){var s,r,q,p,o,n,m,l=this,k="TextInput.show" if(!l.ghg()){s=l.a.c.a l.goO() if(!l.fx){l.goO() r=!1}else r=!0 r=l.G1(r) q=$.apP $.apP=q+1 p=new N.a75(q,l) $.fV().Fc(p,r) r=p l.y=r r=$.fV() q=t.H r.ger().ki(k,q) l.Ku() l.K8() l.K7() l.goO() o=l.a.fr n=l.y n.toString m=l.gxR() n.DT(0,o.d,o.r,o.x,l.a.fy,m) r.ger().cF("TextInput.setEditingState",s.vP(),q)}else{l.y.toString $.fV().ger().ki(k,t.H)}}, FE:function(){var s,r,q=this if(q.ghg()){s=q.y s.toString r=$.fV() if(r.b===s)r.Yy() q.go=q.y=null}}, OS:function(){if(this.a.d.gcn())this.yW() else this.a.d.nI()}, Ki:function(){var s,r,q=this if(q.z!=null){s=q.a.d.gcn() r=q.z if(s){r.toString r.b5(0,q.a.c.a)}else{r.v8() r.gzp().p(0) q.z=null}}}, tb:function(a,b){var s,r,q,p,o,n,m,l,k,j=this,i=null if(!j.a.c.NF(a))return j.a.c.sre(a) j.OS() q=j.a if(q.y1==null){q=j.z if(q!=null)q.v8() j.z=null}else{p=j.z o=q.c if(p==null){p=j.c p.toString o=o.a n=$.D.A$.Q.i(0,j.r).gD() n.toString t.E.a(n) m=j.a o=new F.K8(p,q,j.cx,j.cy,j.db,n,m.y1,j,m.aB,m.bD,i,o) l=p.ML(t.N1) l.toString o.ch=G.cl(i,C.e0,0,i,1,i,l) j.z=o}else p.b5(0,o.a) q=j.z q.toString q.sN5(j.a.ch) j.z.QR()}try{j.a.P.$2(a,b)}catch(k){s=H.U(k) r=H.aB(k) q=U.bE("while calling onSelectionChanged for "+H.c(b)) U.dC(new U.bK(s,r,"widgets",q,i,!1))}if(j.d!=null){j.zh(!1) j.zg()}}, a00:function(a){this.r1=a}, tC:function(){if(this.r2)return this.r2=!0 $.bT.ch$.push(new D.W1(this))}, AD:function(){var s,r=this.rx if(r===$)r=H.e(H.t("_lastBottomViewInset")) $.D.toString s=$.b4() if(r>>16&255,s.gm(s)>>>8&255,s.gm(s)&255) p.gdW().sA8(s) p=q.a.cx&&q.ghf().gbz()>0 q.f.sm(0,p)}, Z_:function(a){var s,r=this,q=!r.e r.e=q s=q?1:0 if(r.a.bi){q=r.ghf() q.Q=C.aw q.jp(s,C.fJ,null)}else r.ghf().sm(0,s) if(r.ry>0)r.Y(new D.VZ(r))}, Z1:function(a){var s=this.d if(s!=null)s.aH(0) this.d=P.a7l(C.e1,this.gG4())}, zg:function(){var s=this s.e=!0 s.ghf().sm(0,1) if(s.a.bi)s.d=P.a7l(C.e0,s.gZ0()) else s.d=P.a7l(C.e1,s.gG4())}, zh:function(a){var s=this,r=s.d if(r!=null)r.aH(0) s.d=null s.e=!1 s.ghf().sm(0,0) if(a)s.ry=0 if(s.a.bi){s.ghf().fB(0) s.ghf().sm(0,0)}}, JC:function(){return this.zh(!0)}, Jz:function(){var s,r=this if(r.d==null)if(r.a.d.gcn()){s=r.a.c.a.b s=s.a==s.b}else s=!1 else s=!1 if(s)r.zg() else{if(r.d!=null)if(r.a.d.gcn()){s=r.a.c.a.b s=s.a!=s.b}else s=!0 else s=!1 if(s)r.JC()}}, Zc:function(){var s=this s.zB() s.Jz() s.Ki() s.Y(new D.W_())}, Zy:function(){var s,r,q=this if(q.a.d.gcn()&&q.a.d.a8h())q.yW() else if(!q.a.d.gcn()){q.FE() s=q.a.c s.aW(0,s.a.LD(C.v))}q.Jz() q.Ki() s=q.a.d.gcn() r=$.D if(s){r.aE$.push(q) $.D.toString q.rx=$.b4().e.d if(!q.a.y)q.tC() if(!q.a.c.a.b.ghB())q.tb(X.hi(C.l,q.a.c.a.a.length),null)}else{C.b.u(r.aE$,q) s=q.a.c s.aW(0,new N.bb(s.a.a,C.O,C.v)) q.x2=null}q.nQ()}, Ku:function(){var s,r,q,p,o=this if(o.ghg()){s=o.r r=$.D.A$.Q.i(0,s).gD() r.toString q=t.E r=q.a(r).r2 r.toString s=$.D.A$.Q.i(0,s).gD() s.toString p=q.a(s).de(0,null) s=o.y if(!r.k(0,s.a)||!p.k(0,s.b)){s.a=r s.b=p s=$.fV() r=P.aj(["width",r.a,"height",r.b,"transform",p.a],t.N,t.z) s.ger().cF("TextInput.setEditableSizeAndTransform",r,t.H)}$.bT.ch$.push(new D.W7(o))}}, K8:function(){var s,r,q,p,o,n=this,m=n.a.c.a.c if(n.ghg()){s=n.r r=$.D.A$.Q.i(0,s).gD() r.toString q=t.E p=q.a(r).Q1(m) if(p==null){o=m.ghB()?m.a:0 s=$.D.A$.Q.i(0,s).gD() s.toString p=q.a(s).nX(new P.aV(o,C.l))}n.y.Qt(p) $.bT.ch$.push(new D.W6(n))}}, K7:function(){var s,r,q,p,o=this if(o.ghg()){s=o.r r=$.D.A$.Q.i(0,s).gD() r.toString q=t.E q.a(r) r=$.D.A$.Q.i(0,s).gD() r.toString if(q.a(r).a2.ghB()){r=$.D.A$.Q.i(0,s).gD() r.toString r=q.a(r).a2 r=r.a==r.b}else r=!1 if(r){r=$.D.A$.Q.i(0,s).gD() r.toString r=q.a(r).a2 s=$.D.A$.Q.i(0,s).gD() s.toString p=q.a(s).nX(new P.aV(r.c,C.l)) o.y.Qs(p)}$.bT.ch$.push(new D.W5(o))}}, gxR:function(){var s,r this.a.toString s=this.c s=s.a0(t.I) s.toString r=s.f return r}, nR:function(a,b){var s=this.a,r=s.y s=s.c if(r?!s.a.b.k(0,a.b):!J.d(s.a,a))this.tC() this.GJ(a,b,!0)}, pd:function(a){var s,r,q=this.r,p=$.D.A$.Q.i(0,q).gD() p.toString s=t.E r=this.GX(s.a(p).nX(a)) this.Q.iX(r.a) q=$.D.A$.Q.i(0,q).gD() q.toString s.a(q).m5(r.b)}, o7:function(){return!1}, Nb:function(a){var s=this.z if(a){if(s!=null)s.v8()}else if(s!=null)s.i7()}, i7:function(){return this.Nb(!0)}, G1:function(a){var s,r,q,p,o,n=this,m=n.a,l=m.y2,k=m.y,j=m.f,i=m.db m=m.dx s=l.k(0,C.md)?C.eK:C.dx r=n.a q=r.id r=r.N if(!a)p=null else{p="EditableText-"+H.di(n) n.a.toString o=H.b([],t.s) p=new F.SX(p,o,n.a.c.a)}return new N.a74(l,k,j,!0,p,i,m,!0,s,q,r)}, QP:function(a,b){this.Y(new D.Wb(this,a,b))}, a4W:function(a){var s=this.a if(s.Q.a)if(s.d.gcn()){if(a==null)s=null else{s=this.a if(s.Q.a){s=s.c.a.b s=s.a!=s.b}else s=!1}s=s===!0}else s=!1 else s=!1 return s?new D.W2(this,a):null}, a4X:function(a){var s=this.a if(s.Q.b&&!s.y)if(s.d.gcn()){if(a==null)s=null else{s=this.a if(s.Q.b&&!s.y){s=s.c.a.b s=s.a!=s.b}else s=!1}s=s===!0}else s=!1 else s=!1 return s?new D.W3(this,a):null}, a4Y:function(a){var s=this.a,r=s.y if(!r)if(s.d.gcn()){if(a==null)s=null else s=!this.a.y if(s===!0)s=!0 else s=!1}else s=!1 else s=!1 return s?new D.W4(this,a):null}, H:function(a,b){var s,r,q,p,o,n,m,l,k=this,j=null k.dy.qF() k.E9(0,b) s=k.a r=s.y1 q=s.v p=s.r2!==1 o=p?C.y:C.P n=k.Q m=s.aU l=s.aB s=s.bf p=p?j:K.akl(b).LJ(!1) return new T.hY(j,j,j,q,!0,F.akm(o,n,l,!0,m,s,p,j,new D.W8(k,r)),j)}, a7x:function(){var s,r,q,p,o=this,n=o.a if(n.f){s=n.c.a.a s=C.c.a4(n.e,s.length) if(U.e4()===C.I||U.e4()===C.z||U.e4()===C.M){r=o.ry>0?o.x1:null if(r!=null&&r>=0&&r>>16&255,r.gm(r)>>>8&255,r.gm(r)&255) p=a5.a o=p.r1 n=p.y p=p.d.gcn() m=a5.a l=m.r2 k=m.rx m=m.giv(m) j=a5.a.x2 i=F.ajX(a9) h=a5.a.fy g=a5.gxR() a5.a.toString f=L.anP(a9) e=a5.a d=e.e c=e.f b=e.aE a=e.bT a0=e.aA a1=e.cv if(a1==null)a1=C.i a2=e.bl a3=e.F return new T.pr(a5.cx,T.cu(a4,new D.Mo(s,q,r,a5.cy,a5.db,o,a5.f,!0,n,p,l,k,!1,m,j,i,h,g,a4,d,c,f,C.av,b0,a5.ga0_(),!0,b,a,a0,a1,e.aY,a2,a3,!0,a5,a5.c.a0(t.w).f.b,a5.x2,a5.a.k4,C.ak,a5.r),!1,a4,a4,!1,a4,a4,a4,a4,a4,a4,a4,a4,a7,a8,a4,a4,a4,a6,a4,a4,a4,a4,a4,a4,a4),a4)}, $C:"$2", $R:2, $S:301} D.Mo.prototype={ aM:function(a){var s=this,r=null,q=L.Gt(a),p=s.e.b,o=D.aqF(),n=D.aqF(),m=t.V,l=t.uh q=U.K7(r,q,r,s.dy,s.d,s.fy,s.go,s.k3,s.fx,s.k4) q=new D.nO(o,n,s.x2,!0,s.v,s.k1,s.k2,s.aR,new B.cZ(!0,new P.a7(m),l),new B.cZ(!0,new P.a7(m),l),q,s.z,s.cx,!0,s.ch,s.cy,s.db,!1,p,s.x1,s.y2,s.ac,s.aI,s.r,s.x,!0,s.bT,C.i) q.gav() q.gaF() q.dy=!1 o.sva(s.fr) o.svb(p) o.sDu(s.b4) o.sDv(s.P) n.sva(s.aE) n.svb(s.A) q.gdW().sA8(s.f) q.gdW().sM0(s.at) q.gdW().sM_(s.aN) q.gdW().sa7g(s.y) q.Kd(r) q.Kj(r) return q}, aP:function(a,b){var s,r,q=this b.sbs(0,q.d) b.gdW().sA8(q.f) b.sR3(q.r) b.sa9y(q.x) b.sQQ(q.z) b.saap(!0) b.sqC(0,q.ch) b.scn(q.cx) b.snp(0,q.cy) b.sacc(q.db) b.sAX(!1) b.siv(0,q.dy) s=b.ax s.sva(q.fr) b.snL(q.fx) b.slP(0,q.fy) b.sbt(0,q.go) r=L.Gt(a) b.slv(0,r) b.sre(q.e.b) b.sbV(0,q.x1) b.cD=q.x2 b.e2=!0 b.sqK(0,q.k3) b.snM(q.k4) b.sacl(q.k1) b.sack(q.k2) b.sa8K(q.y2) b.sa8J(q.ac) b.gdW().sM0(q.at) b.gdW().sM_(q.aN) s.sDu(q.b4) s.sDv(q.P) b.aK=q.aR b.suw(0,q.v) b.sad2(q.aI) s=b.aU s.sva(q.aE) r=q.bT if(r!==b.eg){b.eg=r b.aw() b.ao()}s.svb(q.A)}} D.A2.prototype={ aC:function(){this.b_() if(this.a.d.gcn())this.rT()}, e0:function(){var s=this.bA$ if(s!=null){s.aa() this.bA$=null}this.oh()}} D.Mp.prototype={} D.A3.prototype={ p:function(a){this.bh(0)}, aG:function(){var s,r=this.c r.toString s=!U.dm(r) r=this.by$ if(r!=null)for(r=P.cq(r,r.r,H.u(r).c);r.q();)r.d.sdE(0,s) this.cq()}} D.Mq.prototype={} O.li.prototype={ j:function(a){return this.b}} O.Xh.prototype={ ab:function(a){var s,r=this.a if(r.cx===this){if(!r.gi6()){s=r.f s=s!=null&&s.x===r}else s=!0 if(s)r.CJ(C.ij) s=r.f if(s!=null){if(s.f===r)s.f=null s.r.u(0,r)}s=r.z if(s!=null)s.a48(0,r) r.cx=null}}, qF:function(){var s,r,q=this.a if(q.cx===this){s=q.d s.toString r=L.ayN(s,!0);(r==null?q.d.f.f.e:r).z_(q)}}} O.Ko.prototype={ j:function(a){return this.b}} O.db.prototype={ sE_:function(a){var s,r=this if(a!=r.a){r.a=a s=r.f if(s!=null){s.yN() s.r.B(0,r)}}}, gd0:function(){var s,r,q,p if(!this.b)return!1 s=this.giP() if(s!=null&&!s.gd0())return!1 for(r=this.giF(),q=r.length,p=0;p"))}, giF:function(){var s,r,q=this.r if(q==null){s=H.b([],t.bp) r=this.z for(;r!=null;){s.push(r) r=r.z}this.r=s q=s}return q}, gcn:function(){if(!this.gi6()){var s=this.f if(s==null)s=null else{s=s.f if(s==null)s=null else{s=s.giF() s=(s&&C.b).C(s,this)}}s=s===!0}else s=!0 return s}, gi6:function(){var s=this.f return(s==null?null:s.f)===this}, gly:function(){return this.giP()}, giP:function(){var s,r,q,p for(s=this.giF(),r=s.length,q=0;q"))),o=null;l.q();o=n){n=l.gw(l) if(o==r){l=b?C.c1:C.c2 n.nI() s=n.d s.toString F.apy(s,1,l) return!0}}return!1}} U.Xm.prototype={ $1:function(a){var s,r,q,p,o,n,m,l,k=this for(s=a.c,r=s.length,q=k.c,p=k.a,o=k.b,n=0;n")) break case C.b9:s=new H.aO(q,new U.Vp(b),H.Y(q).h("aO<1>")) break case C.aL:case C.aW:s=null break default:throw H.a(H.j(u.I))}return s}, a5p:function(a,b,c){var s=P.an(c,!0,c.$ti.h("l.E")) S.p_(s,new U.Vq(),t.mx) switch(a){case C.aL:return new H.aO(s,new U.Vr(b),H.Y(s).h("aO<1>")) case C.aW:return new H.aO(s,new U.Vs(b),H.Y(s).h("aO<1>")) case C.aX:case C.b9:break default:throw H.a(H.j(u.I))}return null}, a3Y:function(a,b,c){var s,r,q=this,p=u.I,o=q.dK$,n=o.i(0,b),m=n!=null if(m){s=n.a s=s.length!==0&&C.b.gI(s).a!==a}else s=!1 if(s){s=n.a if(C.b.gL(s).b.z==null){q.m7(b) o.u(0,b) return!1}r=new U.Vm(q,n,b) switch(a){case C.aW:case C.aL:switch(C.b.gI(s).a){case C.aX:case C.b9:q.m7(b) o.u(0,b) break case C.aL:case C.aW:if(r.$1(a))return!0 break default:throw H.a(H.j(p))}break case C.aX:case C.b9:switch(C.b.gI(s).a){case C.aX:case C.b9:if(r.$1(a))return!0 break case C.aL:case C.aW:q.m7(b) o.u(0,b) break default:throw H.a(H.j(p))}break default:throw H.a(H.j(p))}}if(m&&n.a.length===0){q.m7(b) o.u(0,b)}return!1}, ab7:function(a,b){var s,r,q,p,o,n,m,l,k,j=this,i=u.I,h=a.gly(),g=h.dx,f=g.length!==0?C.b.gL(g):null if(f==null){s=j.aa7(a,b) if(s==null)s=a switch(b){case C.aL:case C.aX:U.mc(s,C.c2) break case C.b9:case C.aW:U.mc(s,C.c1) break default:throw H.a(H.j(i))}return!0}if(j.a3Y(b,h,f))return!0 g=f.d g.toString r=F.j1(g) switch(b){case C.aW:case C.aL:q=j.a5p(b,f.gb8(f),h.gCG()) if(r!=null&&!r.d.gL9()){q.toString p=new H.aO(q,new U.Vu(r),q.$ti.h("aO")) if(!p.gO(p))q=p}if(!q.gM(q).q()){o=null break}n=P.an(q,!0,H.u(q).h("l.E")) if(b===C.aL){g=H.Y(n).h("bI<1>") n=P.an(new H.bI(n,g),!0,g.h("av.E"))}m=new H.aO(n,new U.Vv(new P.x(f.gb8(f).a,-1/0,f.gb8(f).c,1/0)),H.Y(n).h("aO<1>")) if(!m.gO(m)){o=m.gI(m) break}S.p_(n,new U.Vw(f),t.mx) o=C.b.gI(n) break case C.b9:case C.aX:q=j.a5o(b,f.gb8(f),h) if(r!=null&&!r.d.gL9()){q.toString p=new H.aO(q,new U.Vx(r),q.$ti.h("aO")) if(!p.gO(p))q=p}if(!q.gM(q).q()){o=null break}n=P.an(q,!0,H.u(q).h("l.E")) if(b===C.aX){g=H.Y(n).h("bI<1>") n=P.an(new H.bI(n,g),!0,g.h("av.E"))}m=new H.aO(n,new U.Vy(new P.x(-1/0,f.gb8(f).b,1/0,f.gb8(f).d)),H.Y(n).h("aO<1>")) if(!m.gO(m)){o=m.gI(m) break}S.p_(n,new U.Vz(f),t.mx) o=C.b.gI(n) break default:throw H.a(H.j(i))}if(o!=null){g=j.dK$ l=g.i(0,h) k=new U.tf(b,f) if(l!=null)l.a.push(k) else g.n(0,h,new U.Mb(H.b([k],t.Kj))) switch(b){case C.aL:case C.aX:U.mc(o,C.c2) break case C.aW:case C.b9:U.mc(o,C.c1) break default:throw H.a(H.j(i))}return!0}return!1}} U.adn.prototype={ $1:function(a){return a.b===this.a}, $S:305} U.Vt.prototype={ $2:function(a,b){if(this.a)if(this.b)return J.dJ(a.gb8(a).b,b.gb8(b).b) else return J.dJ(b.gb8(b).d,a.gb8(a).d) else if(this.b)return J.dJ(a.gb8(a).a,b.gb8(b).a) else return J.dJ(b.gb8(b).c,a.gb8(a).c)}, $S:51} U.Vn.prototype={ $2:function(a,b){return J.dJ(a.gb8(a).gbn().a,b.gb8(b).gbn().a)}, $S:51} U.Vo.prototype={ $1:function(a){var s=this.a return!a.gb8(a).k(0,s)&&a.gb8(a).gbn().a<=s.a}, $S:18} U.Vp.prototype={ $1:function(a){var s=this.a return!a.gb8(a).k(0,s)&&a.gb8(a).gbn().a>=s.c}, $S:18} U.Vq.prototype={ $2:function(a,b){return J.dJ(a.gb8(a).gbn().b,b.gb8(b).gbn().b)}, $S:51} U.Vr.prototype={ $1:function(a){var s=this.a return!a.gb8(a).k(0,s)&&a.gb8(a).gbn().b<=s.b}, $S:18} U.Vs.prototype={ $1:function(a){var s=this.a return!a.gb8(a).k(0,s)&&a.gb8(a).gbn().b>=s.d}, $S:18} U.Vm.prototype={ $1:function(a){var s,r,q=this.b.a.pop().b,p=q.d p.toString p=F.j1(p) s=$.D.A$.f.f.d s.toString if(p!=F.j1(s)){p=this.a s=this.c p.m7(s) p.dK$.u(0,s) return!1}switch(a){case C.aL:case C.aX:r=C.c2 break case C.b9:case C.aW:r=C.c1 break default:throw H.a(H.j(u.I))}U.mc(q,r) return!0}, $S:307} U.Vu.prototype={ $1:function(a){var s=a.d s.toString return F.j1(s)===this.a}, $S:18} U.Vv.prototype={ $1:function(a){var s=a.gb8(a).f_(this.a) return!s.gO(s)}, $S:18} U.Vw.prototype={ $2:function(a,b){var s=this.a return C.d.bR(Math.abs(a.gb8(a).gbn().a-s.gb8(s).gbn().a),Math.abs(b.gb8(b).gbn().a-s.gb8(s).gbn().a))}, $S:51} U.Vx.prototype={ $1:function(a){var s=a.d s.toString return F.j1(s)===this.a}, $S:18} U.Vy.prototype={ $1:function(a){var s=a.gb8(a).f_(this.a) return!s.gO(s)}, $S:18} U.Vz.prototype={ $2:function(a,b){var s=this.a return C.d.bR(Math.abs(a.gb8(a).gbn().b-s.gb8(s).gbn().b),Math.abs(b.gb8(b).gbn().b-s.gb8(s).gbn().b))}, $S:51} U.d7.prototype={ gM8:function(){var s=this.d if(s==null){s=this.c.d s.toString s=this.d=new U.adl().$1(s)}s.toString return s}} U.adk.prototype={ $1:function(a){var s=a.gM8() s.toString return P.iM(s,H.Y(s).c)}, $S:308} U.adm.prototype={ $2:function(a,b){switch(this.a){case C.m:return J.dJ(a.b.a,b.b.a) case C.p:return J.dJ(b.b.c,a.b.c) default:throw H.a(H.j(u.I))}}, $S:137} U.adl.prototype={ $1:function(a){var s,r,q=H.b([],t.vl),p=t.I,o=a.kD(p) for(;o!=null;){q.push(p.a(o.gE())) s=U.arp(o,1) if(s==null)o=null else{s=s.y r=s==null?null:s.i(0,H.bO(p)) o=r}}return q}, $S:310} U.je.prototype={ gb8:function(a){var s,r,q,p=this if(p.b==null)for(s=p.a,r=H.Y(s).h("Z<1,x>"),s=new H.Z(s,new U.adi(),r),r=new H.bj(s,s.gl(s),r.h("bj"));r.q();){s=r.d q=p.b if(q==null){p.b=s q=s}p.b=q.ka(s)}s=p.b s.toString return s}} U.adi.prototype={ $1:function(a){return a.b}, $S:311} U.adj.prototype={ $2:function(a,b){switch(this.a){case C.m:return J.dJ(a.gb8(a).a,b.gb8(b).a) case C.p:return J.dJ(b.gb8(b).c,a.gb8(a).c) default:throw H.a(H.j(u.I))}}, $S:312} U.HZ.prototype={ YB:function(a){var s,r,q,p,o,n=C.b.gI(a).a,m=t.qi,l=H.b([],m),k=H.b([],t.jE) for(s=a.length,r=0;r") return P.an(new H.aO(b,new U.a21(new P.x(-1/0,s.b,1/0,s.d)),r),!0,r.h("l.E"))}, $S:313} U.a21.prototype={ $1:function(a){var s=a.b.f_(this.a) return!s.gO(s)}, $S:314} U.w_.prototype={ ah:function(){return new U.MX(C.k)}} U.MX.prototype={ aC:function(){this.b_() this.d=O.Xi(!1,"FocusTraversalGroup",!0,null,!0)}, p:function(a){var s=this.d if(s!=null)s.p(0) this.bh(0)}, H:function(a,b){var s=null,r=this.a,q=r.c,p=this.d p.toString return new U.ts(q,p,L.vX(!1,!1,r.e,s,!0,p,!1,s,s,s,!0),s)}} U.ts.prototype={ cZ:function(a){return!1}} U.IB.prototype={ bF:function(a){U.mc(a.gcd(a),C.lI)}} U.qo.prototype={} U.GT.prototype={ bF:function(a){var s=$.D.A$.f.f s.d.a0(t.ag).f.to(s,!0)}} U.qB.prototype={} U.HO.prototype={ bF:function(a){var s=$.D.A$.f.f s.d.a0(t.ag).f.to(s,!1)}} U.mJ.prototype={} U.EZ.prototype={ bF:function(a){var s a.toString s=$.D if(!(s.A$.f.f.d.gE() instanceof D.pH)){s=$.D.A$.f.f s.d.a0(t.ag).f.ab7(s,a.a)}}} U.MY.prototype={} U.ON.prototype={ Aa:function(a,b){var s this.RX(a,b) s=this.dK$.i(0,b) if(s!=null){s=s.a if(!!s.fixed$length)H.e(P.F("removeWhere")) C.b.mA(s,new U.adn(a),!0)}}} U.Rl.prototype={} U.Rm.prototype={} A.w1.prototype={ ah:function(){return new A.pR(P.aZ(t.gx),C.k)}} A.pR.prototype={ ZP:function(){var s=this s.a.toString s.e=s.f.hX(0,new A.XA()) s.GH()}, GH:function(){this.Y(new A.XB(this))}, H:function(a,b){var s,r=this switch(r.a.f){case C.iT:r.l8() break case C.iU:if(r.e)r.l8() break case C.dL:break default:throw H.a(H.j(u.I))}s=r.a return new F.zs(new A.Ae(r,r.d,s.c,null),null,null)}, jd:function(){this.e=!0 this.GH() return this.l8()}, l8:function(){var s,r for(s=this.f,s=P.cq(s,s.r,H.u(s).c),r=!1;s.q();)r=!s.d.jd()||r return!r}} A.XA.prototype={ $1:function(a){return a.f}, $S:315} A.XB.prototype={ $0:function(){++this.a.d}, $S:0} A.Ae.prototype={ cZ:function(a){return this.r!==a.r}} A.jG.prototype={ ah:function(){return new A.fo(C.k,H.u(this).h("fo"))}} A.fo.prototype={ jd:function(){this.Y(new A.Xz(this)) return this.e==null}, l8:function(){var s=this if(s.gE().d!=null)s.e=s.gE().d.$1(s.d)}, ux:function(a){var s this.Y(new A.Xy(this,a)) s=this.c s.toString s=A.ajE(s) if(s!=null)s.ZP()}, aC:function(){this.b_() this.d=this.gE().f}, e0:function(){var s=this.c s.toString s=A.ajE(s) if(s!=null)s.f.u(0,this) this.oh()}, H:function(a,b){var s,r=this r.gE().toString switch(r.gE().x){case C.iT:r.l8() break case C.iU:if(r.f)r.l8() break case C.dL:break default:throw H.a(H.j(u.I))}s=A.ajE(b) if(s!=null)s.f.B(0,r) return r.gE().e.$1(r)}} A.Xz.prototype={ $0:function(){this.a.l8()}, $S:0} A.Xy.prototype={ $0:function(){var s=this.a s.d=this.b s.f=!0}, $S:0} A.uM.prototype={ j:function(a){return this.b}} N.Kr.prototype={ j:function(a){return"[#"+Y.cf(this)+"]"}} N.f2.prototype={ gas:function(){var s,r=$.D.A$.Q.i(0,this) if(r instanceof N.eH){s=r.gb9(r) if(H.u(this).c.b(s))return s}return null}} N.aY.prototype={ j:function(a){var s=this,r=s.a,q=r!=null?" "+r:"" if(H.E(s)===C.Gm)return"[GlobalKey#"+Y.cf(s)+q+"]" return"["+("#"+Y.cf(s))+q+"]"}} N.lb.prototype={ k:function(a,b){if(b==null)return!1 if(J.N(b)!==H.E(this))return!1 return this.$ti.b(b)&&b.a==this.a}, gt:function(a){return H.CM(this.a)}, j:function(a){var s="GlobalObjectKey" return"["+(C.c.k8(s,">")?C.c.V(s,0,-8):s)+" "+("#"+Y.cf(this.a))+"]"}} N.h.prototype={ cp:function(){var s=this.a return s==null?"Widget":"Widget-"+s.j(0)}, k:function(a,b){if(b==null)return!1 return this.wK(0,b)}, gt:function(a){return P.z.prototype.gt.call(this,this)}} N.ay.prototype={ bK:function(a){return N.aBa(this)}} N.a0.prototype={ bK:function(a){return N.aB9(this)}} N.aey.prototype={ j:function(a){return this.b}} N.a2.prototype={ gE:function(){var s=this.a s.toString return s}, aC:function(){}, bd:function(a){}, Y:function(a){a.$0() this.c.f0()}, e0:function(){}, p:function(a){}, aG:function(){}} N.b2.prototype={} N.du.prototype={ bK:function(a){var s=($.b5+1)%16777215 $.b5=s return new N.nE(s,this,C.a1,P.be(t.t),H.u(this).h("nE"))}} N.bq.prototype={ bK:function(a){return N.az1(this)}} N.ar.prototype={ aP:function(a,b){}, pC:function(a){}} N.Gj.prototype={ bK:function(a){var s=($.b5+1)%16777215 $.b5=s return new N.Gi(s,this,C.a1,P.be(t.t))}} N.b9.prototype={ bK:function(a){return N.aAS(this)}} N.eD.prototype={ bK:function(a){return N.azA(this)}} N.to.prototype={ j:function(a){return this.b}} N.Nc.prototype={ K3:function(a){a.be(new N.ab7(this,a)) a.ja()}, a6i:function(){var s,r,q,p=this p.a=!0 r=p.b q=P.an(r,!0,H.u(r).h("cQ.E")) C.b.d5(q,N.ahK()) s=q r.az(0) try{r=s new H.bI(r,H.bv(r).h("bI<1>")).K(0,p.ga6h())}finally{p.a=!1}}, B:function(a,b){if(b.r===C.c7){b.e0() b.be(N.ahL())}this.b.B(0,b)}} N.ab7.prototype={ $1:function(a){this.a.K3(a)}, $S:13} N.Tx.prototype={ Dn:function(a){var s=this if(a.cx){s.e=!0 return}if(!s.d&&s.a!=null){s.d=!0 s.a.$0()}s.c.push(a) a.cx=!0}, NL:function(a){try{a.$0()}finally{}}, pf:function(a,b){var s,r,q,p,o,n,m,l,k=this,j={},i=b==null if(i&&k.c.length===0)return P.oq("Build",C.db,null) try{k.d=!0 if(!i){j.a=null k.e=!1 try{b.$0()}finally{}}i=k.c C.b.d5(i,N.ahK()) k.e=!1 j.b=i.length j.c=0 for(p=0;p=m){n=k.e n.toString}else n=!0 if(n){if(!!i.immutable$list)H.e(P.F("sort")) p=m-1 if(p-0<=32)H.JA(i,0,p,N.ahK()) else H.Jz(i,0,p,N.ahK()) p=k.e=!1 j.b=i.length while(!0){n=j.c if(!(n>0?i[n-1].ch:p))break j.c=n-1}p=n}}}finally{for(i=k.c,p=i.length,l=0;l"));r.q();)r.d.aY.u(0,s) s.y=null s.r=C.H9}, ja:function(){var s,r=this,q=r.e.a if(q instanceof N.f2){s=r.f.Q if(J.d(s.i(0,q),r))s.u(0,q)}r.r=C.Ha}, giu:function(a){var s,r=this.gD() if(r instanceof S.A){s=r.r2 s.toString return s}return null}, uv:function(a,b){var s=this.z;(s==null?this.z=P.be(t.IS):s).B(0,a) a.Pi(this,b) return a.gE()}, a0:function(a){var s=this.y,r=s==null?null:s.i(0,H.bO(a)) if(r!=null)return a.a(this.uv(r,null)) this.Q=!0 return null}, kD:function(a){var s=this.y return s==null?null:s.i(0,H.bO(a))}, zx:function(){var s=this.a this.y=s==null?null:s.y}, aa6:function(a){var s,r=this.a while(!0){s=r==null if(!(!s&&J.N(r.gE())!==H.bO(a)))break r=r.a}s=s?null:r.gE() return a.h("0?").a(s)}, pX:function(a){var s,r=this.a for(;s=r==null,!s;){if(r instanceof N.eH&&a.b(r.gb9(r)))break r=r.a}t.lE.a(r) s=s?null:r.gb9(r) return a.h("0?").a(s)}, ML:function(a){var s,r,q=this.a for(s=null;q!=null;){if(q instanceof N.eH&&a.b(q.gb9(q)))s=q q=q.a}r=s==null?null:s.gb9(s) return a.h("0?").a(r)}, uT:function(a){var s=this.a for(;s!=null;){if(s instanceof N.a_&&a.b(s.gD()))return a.a(s.gD()) s=s.a}return null}, ip:function(a){var s=this.a while(!0){if(!(s!=null&&a.$1(s)))break s=s.a}}, aG:function(){this.f0()}, a8P:function(a){var s=H.b([],t.s),r=this while(!0){if(!(s.length").a(N.k4.prototype.gE.call(this))}, F8:function(a){this.be(new N.a0Y(a))}, qj:function(a){this.F8(this.$ti.h("du<1>").a(N.k4.prototype.gE.call(this)))}} N.a0Y.prototype={ $1:function(a){if(a instanceof N.a_)this.a.p9(a.gD()) else a.be(this)}, $S:13} N.co.prototype={ gE:function(){return t.WB.a(N.k4.prototype.gE.call(this))}, zx:function(){var s,r=this,q=null,p=r.a,o=p==null?q:p.y p=t.n s=t.IS p=o!=null?r.y=P.ayW(o,p,s):r.y=P.fr(q,q,q,p,s) p.n(0,J.N(r.gE()),r)}, Pi:function(a,b){this.aY.n(0,a,null)}, O3:function(a,b){b.aG()}, qN:function(a){if(this.gE().cZ(a))this.Su(a)}, qj:function(a){var s for(s=this.aY,s=new P.kt(s,H.u(s).h("kt<1>")),s=s.gM(s);s.q();)this.O3(a,s.d)}} N.a_.prototype={ gE:function(){return t.F5.a(N.au.prototype.gE.call(this))}, gD:function(){var s=this.dx s.toString return s}, ZZ:function(){var s=this.a while(!0){if(!(s!=null&&!(s instanceof N.a_)))break s=s.a}return t.c_.a(s)}, ZY:function(){var s,r={},q=r.a=this.a r.b=null while(!0){if(!(q!=null&&!(q instanceof N.a_)))break if(q instanceof N.nE){r.b=q break}s=q.a r.a=s q=s}return r.b}, dQ:function(a,b){var s=this s.Ej(a,b) s.dx=s.gE().aM(s) s.u0(b) s.ch=!1}, b5:function(a,b){var s=this s.rq(0,b) s.gE().aP(s,s.gD()) s.ch=!1}, hD:function(){var s=this s.gE().aP(s,s.gD()) s.ch=!1}, Pg:function(a,a0,a1,a2){var s,r,q,p,o,n,m,l,k=this,j=null,i=new N.a2H(a1),h=new N.a2I(a2),g=a0.length-1,f=J.ag(a),e=f.gl(a)-1,d=f.gl(a),c=a0.length,b=d===c?a:P.b6(c,$.alU(),!1,t.t) d=J.bP(b) s=j r=0 q=0 while(!0){if(!(q<=e&&r<=g))break p=i.$1(f.i(a,q)) o=a0[r] if(p!=null){c=p.gE() c=!(J.N(c)===J.N(o)&&J.d(c.a,o.a))}else c=!0 if(c)break c=k.ds(p,o,h.$2(r,s)) c.toString d.n(b,r,c);++r;++q s=c}while(!0){n=q<=e if(!(n&&r<=g))break p=i.$1(f.i(a,e)) o=a0[g] if(p!=null){c=p.gE() c=!(J.N(c)===J.N(o)&&J.d(c.a,o.a))}else c=!0 if(c)break;--e;--g}if(n){m=P.y(t.D2,t.t) for(;q<=e;){p=i.$1(f.i(a,q)) if(p!=null)if(p.gE().a!=null){c=p.gE().a c.toString m.n(0,c,p)}else{p.a=null p.pw() c=k.f.b if(p.r===C.c7){p.e0() p.be(N.ahL())}c.b.B(0,p)}++q}n=!0}else m=j for(;r<=g;s=c){o=a0[r] if(n){l=o.a if(l!=null){p=m.i(0,l) if(p!=null){c=p.gE() if(J.N(c)===o.gcM(o)&&J.d(c.a,l))m.u(0,l) else p=j}}else p=j}else p=j c=k.ds(p,o,h.$2(r,s)) c.toString d.n(b,r,c);++r}g=a0.length-1 e=f.gl(a)-1 while(!0){if(!(q<=e&&r<=g))break c=k.ds(f.i(a,q),a0[r],h.$2(r,s)) c.toString d.n(b,r,c);++r;++q s=c}if(n&&m.gaV(m))for(f=m.gaZ(m),f=f.gM(f);f.q();){d=f.gw(f) if(!a1.C(0,d)){d.a=null d.pw() c=k.f.b if(d.r===C.c7){d.e0() d.be(N.ahL())}c.b.B(0,d)}}return b}, CN:function(a,b,c){return this.Pg(a,b,c,null)}, e0:function(){this.Eg()}, ja:function(){this.od() this.gE().pC(this.gD())}, zD:function(a){var s,r=this,q=r.c r.RT(a) s=r.fr s.toString s.iY(r.gD(),q,r.c)}, u0:function(a){var s,r,q=this q.c=a s=q.fr=q.ZZ() if(s!=null)s.iT(q.gD(),a) r=q.ZY() if(r!=null)r.$ti.h("du<1>").a(N.k4.prototype.gE.call(r)).p9(q.gD())}, pw:function(){var s=this,r=s.fr if(r!=null){r.j4(s.gD(),s.c) s.fr=null}s.c=null}, iT:function(a,b){}, iY:function(a,b,c){}, j4:function(a,b){}} N.a2H.prototype={ $1:function(a){var s=this.a.C(0,a) return s?null:a}, $S:316} N.a2I.prototype={ $2:function(a,b){var s=this.a return s!=null?s[a]:new N.q1(b,a,t.Bc)}, $S:317} N.y4.prototype={ dQ:function(a,b){this.m8(a,b)}} N.Gi.prototype={ hx:function(a){this.iw(a)}, iT:function(a,b){}, iY:function(a,b,c){}, j4:function(a,b){}} N.r7.prototype={ gE:function(){return t.Mp.a(N.a_.prototype.gE.call(this))}, be:function(a){var s=this.y2 if(s!=null)a.$1(s)}, hx:function(a){this.y2=null this.iw(a)}, dQ:function(a,b){var s=this s.m8(a,b) s.y2=s.ds(s.y2,s.gE().c,null)}, b5:function(a,b){var s=this s.jm(0,b) s.y2=s.ds(s.y2,s.gE().c,null)}, iT:function(a,b){var s=this.dx s.toString t.GM.a(s).sbc(a)}, iY:function(a,b,c){}, j4:function(a,b){var s=this.dx s.toString t.GM.a(s).sbc(null)}} N.nv.prototype={ gE:function(){return t.Lb.a(N.a_.prototype.gE.call(this))}, gD:function(){return t.pU.a(N.a_.prototype.gD.call(this))}, gFv:function(a){var s=this.y2 return s===$?H.e(H.t("_children")):s}, iT:function(a,b){var s=this.gD(),r=b.a s.BA(0,a,r==null?null:r.gD())}, iY:function(a,b,c){var s=this.gD(),r=c.a s.vo(a,r==null?null:r.gD())}, j4:function(a,b){this.gD().u(0,a)}, be:function(a){var s,r,q for(s=J.as(this.gFv(this)),r=this.ac;s.q();){q=s.gw(s) if(!r.C(0,q))a.$1(q)}}, hx:function(a){this.ac.B(0,a) this.iw(a)}, q3:function(a,b){return this.Ei(a,b)}, dQ:function(a,b){var s,r,q,p,o,n,m=this m.m8(a,b) s=m.gE().c.length r=P.b6(s,$.alU(),!1,t.t) for(q=t.Bc,p=null,o=0;o") q.toString k.d=new R.b3(t.m.a(q),new R.kq(new R.jy(new Z.iI(o,1,C.ah)),p,n),n.h("b3"))}}if(s){s=r.a s.toString if(isFinite(s)){s=r.b s.toString s=isFinite(s)}else s=!1 s=!s}else s=!0 k.x=s}, R0:function(a,b){var s,r,q,p=this p.f=b switch(p.gce().a){case C.bg:s=p.gfK() r=p.gce() s.sa9(0,new S.i1(r.gcs(r),new R.by(H.b([],t.e),t.l),0)) q=!1 break case C.bf:s=p.gfK() r=p.gce() s.sa9(0,r.gcs(r)) q=!0 break default:throw H.a(H.j(u.I))}p.b=p.gce().pp(p.gce().gMV(),p.gce().gvO()) p.gce().f.ww(q) p.gce().r.wv() s=p.gce().b r=X.xj(p.gY3(),!1) p.r=r s.Ni(0,r) r=p.gfK() r.dm() r=r.bq$ r.b=!0 r.a.push(p.gOd())}, j:function(a){var s=this,r=s.gce().d.b,q=s.gce().e.b return"HeroFlight(for: "+s.gce().f.a.c.j(0)+", from: "+r.j(0)+", to: "+q.j(0)+" "+H.c(s.gfK().c)+")"}} T.aaS.prototype={ $2:function(a,b){var s,r=null,q=this.a,p=q.gv7(),o=q.gfK() p.toString o=p.b1(0,o.gm(o)) o.toString p=q.gce().c s=p.a p=p.b q=q.d return T.a1u(p-o.d,new T.hP(!0,r,new T.he(T.a0E(!1,b,q.gm(q)),r),r),r,r,o.a,s-o.c,o.b,r)}, $C:"$2", $R:2, $S:332} T.aaT.prototype={ $0:function(){var s,r=this.a r.y=!1 this.b.dy.T(0,this) s=r.gfK() r.Im(s.gbg(s))}, $C:"$0", $R:0, $S:0} T.w8.prototype={ uD:function(){var s,r,q,p if(this.a.dy.a)return s=this.c s=s.gaZ(s) r=H.u(s).h("aO") q=P.an(new H.aO(s,new T.Yh(),r),!1,r.h("l.E")) for(s=q.length,p=0;p"),a0=t.k2;r.q();){a1=r.gw(r) a2=a1.gdN(a1) a3=a1.gm(a1) a4=l.i(0,a2) a5=i.i(0,a2) if(a4==null)a6=null else{a1=p.r2 a1.toString a4.a.toString a3.a.toString a6=new T.aaR(b7,q,a1,b4,b5,a3,a4,j,k,b8,a5!=null)}if(a6!=null&&a6.ghB()){l.u(0,a2) if(a5!=null){a1=a5.f if((a1===$?H.e(H.t(b1)):a1).a===C.bf&&a6.a===C.bg){a1=a5.e if(a1===$)a1=H.e(H.t(b2)) a1.sa9(0,new S.i1(a6.gcs(a6),new R.by(H.b([],g),f),0)) a1=a5.b if(a1===$)a1=H.e(H.t(b3)) a5.b=new R.y3(a1,a1.b,a1.a,a0)}else if(a1.a===C.bg&&a6.a===C.bf){a1=a5.e if(a1===$)a1=H.e(H.t(b2)) a7=a6.gcs(a6) a8=a5.f if(a8===$)a8=H.e(H.t(b1)) a8=a8.gcs(a8) a8=a8.gm(a8) a1.sa9(0,new R.b3(b.a(a7),new R.aM(a8,1,c),a)) a1=a5.f a7=(a1===$?H.e(H.t(b1)):a1).f a8=a6.r if(a7!==a8){a1.f.n2(!0) a8.wv() a1=a5.f if(a1===$)a1=H.e(H.t(b1)) a7=a5.b a5.b=a1.pp((a7===$?H.e(H.t(b3)):a7).b,a6.gvO())}else{a7=a5.b a8=(a7===$?H.e(H.t(b3)):a7).b a5.b=a1.pp(a8,a7.a)}}else{a7=a5.b if(a7===$)a7=H.e(H.t(b3)) a8=a5.e if(a8===$)a8=H.e(H.t(b2)) a7.toString a5.b=a1.pp(a7.b1(0,a8.gm(a8)),a6.gvO()) a5.c=null a1=a6.a a7=a5.e if(a1===C.bg){if(a7===$)a7=H.e(H.t(b2)) a7.sa9(0,new S.i1(a6.gcs(a6),new R.by(H.b([],g),f),0))}else{if(a7===$)a7=H.e(H.t(b2)) a7.sa9(0,a6.gcs(a6))}a7=a5.f;(a7===$?H.e(H.t(b1)):a7).f.n2(!0) a7=a5.f;(a7===$?H.e(H.t(b1)):a7).r.n2(!0) a6.f.ww(a1===C.bf) a6.r.wv() a1=a5.r.f.gas() if(a1!=null)a1.HS()}a5.f=a6}else{a1=new T.ku(h,C.jk) a7=H.b([],g) a8=new R.by(a7,f) a9=new S.xC(a8,new R.by(H.b([],e),d),0) a9.a=C.N a9.b=0 a9.dm() a8.b=!0 a7.push(a1.ga_S()) a1.e=a9 a1.R0(0,a6) i.n(0,a2,a1)}}else if(a5!=null)a5.x=!0}for(r=l.gaZ(l),r=r.gM(r);r.q();)r.gw(r).Ml()}, a0u:function(a){this.c.u(0,a.gce().f.a.c)}, Z5:function(a,b,c,d,e){return t.rA.a(e.gE()).e}} T.Yh.prototype={ $1:function(a){var s if(a.gce().z)if(a.gce().a===C.bg){s=a.gfK() s=s.gbg(s)===C.N}else s=!1 else s=!1 return s}, $S:335} T.Yg.prototype={ $1:function(a){var s=this s.a.Jy(s.b,s.c,s.d,s.e,s.f)}, $S:2} L.lc.prototype={ H:function(a,b){var s,r,q,p,o,n,m,l,k,j=null,i=b.a0(t.I) i.toString s=i.f r=Y.aoi(b).ak(b) i=r.a q=i==null if(!q&&r.ge6(r)!=null&&r.c!=null)p=r else{o=r.c if(o==null)o=24 if(q)i=C.t q=r.ge6(r) p=r.um(i,q==null?C.fU.ge6(C.fU):q,o)}n=this.d if(n==null)n=p.c m=p.ge6(p) if(m==null)m=1 l=this.e if(l==null){i=p.a i.toString l=i}if(m!==1)l=P.aI(C.d.aO(255*((l.gm(l)>>>24&255)/255*m)),l.gm(l)>>>16&255,l.gm(l)>>>8&255,l.gm(l)&255) i=this.c q=H.bH(i.a) k=T.apr(j,j,C.mf,!0,j,Q.lN(j,A.hj(j,j,l,j,j,j,j,j,"MaterialIcons",j,j,n,j,j,j,j,!1,j,j,j,j,j,j,j),q),C.ag,s,j,1,C.av) if(i.d)switch(s){case C.p:i=new E.b8(new Float64Array(16)) i.du() i.is(0,-1,1,1) k=T.Kh(C.ar,k,i,!1) break case C.m:break default:throw H.a(H.j(u.I))}return T.cu(j,new T.mT(!0,T.r9(T.kZ(k,j,j),n,n),j),!1,j,j,!1,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j,j)}} X.ch.prototype={ k:function(a,b){var s if(b==null)return!1 if(J.N(b)!==H.E(this))return!1 if(b instanceof X.ch)if(b.a===this.a)s=b.d===this.d else s=!1 else s=!1 return s}, gt:function(a){return P.a5(this.a,"MaterialIcons",null,this.d,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}, j:function(a){return"IconData(U+"+C.c.qp(C.f.j9(this.a,16).toUpperCase(),5,"0")+")"}} Y.na.prototype={ cZ:function(a){return!this.x.k(0,a.x)}, CV:function(a,b,c){return Y.FX(c,this.x,null)}} Y.Z_.prototype={ $1:function(a){return Y.FX(this.c,Y.aoi(a).bU(this.b),this.a)}, $S:336} T.eu.prototype={ um:function(a,b,c){var s=this,r=a==null?s.a:a,q=b==null?s.ge6(s):b return new T.eu(r,q,c==null?s.c:c)}, bU:function(a){return this.um(a.a,a.ge6(a),a.c)}, ak:function(a){return this}, ge6:function(a){var s=this.b return s==null?null:C.d.a6(s,0,1)}, k:function(a,b){var s=this if(b==null)return!1 if(J.N(b)!==H.E(s))return!1 return b instanceof T.eu&&J.d(b.a,s.a)&&b.ge6(b)==s.ge6(s)&&b.c==s.c}, gt:function(a){var s=this return P.a5(s.a,s.ge6(s),s.c,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}} T.N9.prototype={} U.pW.prototype={ ah:function(){return new U.An(C.k)}} U.An.prototype={ gJ4:function(){var s=this.Q return s===$?H.e(H.t("_scrollAwareContext")):s}, aC:function(){var s=this s.b_() $.D.aE$.push(s) s.Q=new K.F0(s,t.uZ)}, p:function(a){var s,r=this C.b.u($.D.aE$,r) r.a5y() s=r.cy if(s!=null)s.p(0) r.gJ4().a=null r.z0(null) r.bh(0)}, aG:function(){var s,r=this r.a6p() r.IQ() s=r.c s.toString if(U.dm(s))r.a2M() else r.JE(!0) r.cq()}, bd:function(a){var s=this s.bG(a) if(s.r){s.a.toString a.toString}if(!s.a.c.k(0,a.c))s.IQ()}, a6p:function(){var s=this.c s.toString s=F.fv(s) s=s==null?null:s.Q if(s==null){$.J1.gET().toString s=!1}this.x=s}, IQ:function(){var s=this,r=s.gJ4(),q=s.a.c,p=s.c p.toString s.a6y(new Y.yd(r,q,t.JE).ak(U.CG(p,null)))}, a_C:function(a){var s=this,r=s.db if(r==null||a){s.cx=s.ch=null s.a.toString r=s.db=new L.h7(s.ga0M(),null,null)}r.toString return r}, t0:function(){return this.a_C(!1)}, a0N:function(a,b){this.Y(new U.ab4(this,a,b))}, z0:function(a){var s=this.e if(s!=null)s.a.p(0) this.e=a}, a6y:function(a){var s,r,q=this,p=q.d if(p==null)s=null else{s=p.a if(s==null)s=p}r=a.a if(s===(r==null?a:r))return if(q.r){p.toString p.T(0,q.t0())}q.a.toString q.Y(new U.ab5(q)) q.Y(new U.ab6(q)) q.d=a if(q.r)a.aQ(0,q.t0())}, a2M:function(){var s,r=this if(r.r)return s=r.d s.toString s.aQ(0,r.t0()) s=r.cy if(s!=null)s.p(0) r.cy=null r.r=!0}, JE:function(a){var s,r,q=this if(!q.r)return if(a)if(q.cy==null){s=q.d s=(s==null?null:s.a)!=null}else s=!1 else s=!1 if(s){s=q.d.a if(s.r)H.e(P.a4(u.E)) r=new L.pZ(s) r.rw(s) q.cy=r}s=q.d s.toString s.T(0,q.t0()) q.r=!1}, a5y:function(){return this.JE(!1)}, H:function(a,b){var s,r,q,p,o,n,m=this,l=null if(m.ch!=null)m.a.toString s=m.e r=s==null q=r?l:s.a p=r?l:s.c o=m.a.x s=r?l:s.b if(s==null)s=1 r=m.x if(r===$)r=H.e(H.t("_invertColors")) n=T.cu(l,new T.HV(q,p,l,o,s,l,C.jP,l,l,C.ar,C.bV,l,!1,r,!1,l),!1,l,l,!1,l,l,l,!0,"",l,l,l,l,l,l,l,l,l,l,l,l,l,l,l,l) return n}} U.ab4.prototype={ $0:function(){var s,r=this.a r.z0(this.b) r.cx=r.ch=r.f=null s=r.y r.y=s==null?0:s+1 r.z=C.d3.r7(r.z,this.c)}, $S:0} U.ab5.prototype={ $0:function(){this.a.z0(null)}, $S:0} U.ab6.prototype={ $0:function(){var s=this.a s.y=s.f=null s.z=!1}, $S:0} U.Rc.prototype={} G.EK.prototype={ ej:function(a){var s=Z.Va(this.a,this.b,a) s.toString return s}} G.mx.prototype={ ej:function(a){var s=K.Dt(this.a,this.b,a) s.toString return s}} G.om.prototype={ ej:function(a){var s=A.bu(this.a,this.b,a) s.toString return s}} G.FZ.prototype={} G.q_.prototype={ gl_:function(){var s=this,r=s.d if(r===$){r=s.a.d r=G.cl(null,r,0,null,1,null,s) if(s.d===$)s.d=r else r=H.e(H.bS("_controller"))}return r}, ghN:function(){var s=this,r=s.e if(r===$){r=s.gl_() r=s.e=S.cy(s.a.c,r,null)}return r}, aC:function(){var s=this s.b_() s.gl_().dh(new G.Zi(s)) s.FS() s.AM()}, bd:function(a){var s,r=this r.bG(a) if(r.a.c!==a.c){s=r.gl_() r.e=S.cy(r.a.c,s,null)}r.gl_().e=r.a.d if(r.FS()){r.na(new G.Zh(r)) s=r.gl_() s.sm(0,0) s.cm(0) r.AM()}}, p:function(a){this.gl_().p(0) this.TE(0)}, a6z:function(a,b){var s if(a==null)return s=this.ghN() a.sA3(a.b1(0,s.gm(s))) a.saX(0,b)}, FS:function(){var s={} s.a=!1 this.na(new G.Zg(s,this)) return s.a}, AM:function(){}} G.Zi.prototype={ $1:function(a){switch(a){case C.a7:this.a.a.toString break case C.N:case C.aC:case C.as:break default:throw H.a(H.j(u.I))}}, $S:9} G.Zh.prototype={ $3:function(a,b,c){this.a.a6z(a,b) return a}, $S:108} G.Zg.prototype={ $3:function(a,b,c){var s if(b!=null){if(a==null)a=c.$1(b) s=a.b if(!J.d(b,s==null?a.a:s))this.a.a=!0}else a=null return a}, $S:108} G.p9.prototype={ aC:function(){this.S3() var s=this.gl_() s.dm() s=s.bq$ s.b=!0 s.a.push(this.ga_Q())}, a_R:function(){this.Y(new G.SI())}} G.SI.prototype={ $0:function(){}, $S:0} G.uw.prototype={ ah:function(){return new G.KY(null,C.k)}} G.KY.prototype={ na:function(a){this.z=t.ir.a(a.$3(this.z,this.a.x,new G.a8n()))}, AM:function(){var s=this.ghN(),r=this.z r.toString s.toString this.Q=new R.b3(t.m.a(s),r,H.u(r).h("b3"))}, H:function(a,b){var s,r,q=this.Q if(q===$)q=H.e(H.t("_opacityAnimation")) s=this.a r=s.r return K.pM(s.y,r,q)}} G.a8n.prototype={ $1:function(a){return new R.aM(H.Cu(a),null,t.H7)}, $S:101} G.uv.prototype={ ah:function(){return new G.KX(null,C.k)}} G.KX.prototype={ na:function(a){this.dx=t.Dh.a(a.$3(this.dx,this.a.x,new G.a8m()))}, H:function(a,b){var s,r=null,q=this.dx q.toString s=this.ghN() s=q.b1(0,s.gm(s)) return L.mH(this.a.r,r,r,C.bL,!0,s,r,r,C.av)}} G.a8m.prototype={ $1:function(a){return new G.om(t.em.a(a),null)}, $S:338} G.ux.prototype={ ah:function(){return new G.KZ(null,C.k)}} G.KZ.prototype={ na:function(a){var s,r=this r.dx=t.eJ.a(a.$3(r.dx,r.a.z,new G.a8o())) r.dy=t.ir.a(a.$3(r.dy,r.a.Q,new G.a8p())) s=t.YJ r.fr=s.a(a.$3(r.fr,r.a.ch,new G.a8q())) r.fx=s.a(a.$3(r.fx,r.a.cy,new G.a8r()))}, H:function(a,b){var s,r,q,p,o,n=this,m=n.a,l=m.r,k=m.x m=m.y s=n.dx s.toString r=n.ghN() r=s.b1(0,r.gm(r)) s=n.dy s.toString q=n.ghN() q=s.b1(0,q.gm(q)) s=n.a.ch p=n.fx p.toString o=n.ghN() o=p.b1(0,o.gm(o)) o.toString p=o return new T.HB(k,m,r,q,s,p,l,null)}} G.a8o.prototype={ $1:function(a){return new G.mx(t.m_.a(a),null)}, $S:339} G.a8p.prototype={ $1:function(a){return new R.aM(H.Cu(a),null,t.H7)}, $S:101} G.a8q.prototype={ $1:function(a){return new R.hE(t.n8.a(a),null)}, $S:100} G.a8r.prototype={ $1:function(a){return new R.hE(t.n8.a(a),null)}, $S:100} G.tC.prototype={ p:function(a){this.bh(0)}, aG:function(){var s,r=this.cc$ if(r!=null){s=this.c s.toString r.sdE(0,!U.dm(s))}this.cq()}} S.fs.prototype={ cZ:function(a){return a.f!=this.f}, bK:function(a){var s=t.t,r=P.fr(null,null,null,s,t.O),q=($.b5+1)%16777215 $.b5=q s=new S.tD(r,q,this,C.a1,P.be(s),H.u(this).h("tD")) q=this.f if(q!=null){r=q.P$ r.bQ(r.c,new B.bn(s.gtc()),!1)}return s}} S.tD.prototype={ gE:function(){return this.$ti.h("fs<1>").a(N.co.prototype.gE.call(this))}, b5:function(a,b){var s,r=this,q=r.$ti.h("fs<1>").a(N.co.prototype.gE.call(r)).f,p=b.f if(q!=p){if(q!=null)q.T(0,r.gtc()) if(p!=null){s=p.P$ s.bQ(s.c,new B.bn(r.gtc()),!1)}}r.Ex(0,b)}, bm:function(a){var s=this if(s.c_){s.El(s.$ti.h("fs<1>").a(N.co.prototype.gE.call(s))) s.c_=!1}return s.Ew(0)}, a2b:function(){this.c_=!0 this.f0()}, qj:function(a){this.El(a) this.c_=!1}, ja:function(){var s=this,r=s.$ti.h("fs<1>").a(N.co.prototype.gE.call(s)).f if(r!=null)r.T(0,s.gtc()) s.od()}} M.ev.prototype={} M.Zm.prototype={ $1:function(a){return this.a.a=a}, $S:122} M.Zn.prototype={ $1:function(a){var s,r,q if(a.k(0,this.a))return!1 if(a instanceof N.co&&a.gE() instanceof M.ev){s=t.og.a(a.gE()) r=J.N(s) q=this.c if(!q.C(0,r)){q.B(0,r) this.d.push(s)}}return!0}, $S:25} M.DH.prototype={} M.Ls.prototype={ H:function(a,b){var s,r,q,p=this.d for(s=this.c,r=s.length,q=0;q"))}} A.tF.prototype={ gE:function(){return this.$ti.h("hG<1>").a(N.a_.prototype.gE.call(this))}, gD:function(){return this.$ti.h("fE<1,r>").a(N.a_.prototype.gD.call(this))}, be:function(a){var s=this.y2 if(s!=null)a.$1(s)}, hx:function(a){this.y2=null this.iw(a)}, dQ:function(a,b){var s=this s.m8(a,b) s.$ti.h("fE<1,r>").a(N.a_.prototype.gD.call(s)).CM(s.gHI())}, b5:function(a,b){var s,r=this r.jm(0,b) s=r.$ti.h("fE<1,r>") s.a(N.a_.prototype.gD.call(r)).CM(r.gHI()) s=s.a(N.a_.prototype.gD.call(r)) s.uP$=!0 s.a1()}, hD:function(){var s=this.$ti.h("fE<1,r>").a(N.a_.prototype.gD.call(this)) s.uP$=!0 s.a1() this.wQ()}, ja:function(){this.$ti.h("fE<1,r>").a(N.a_.prototype.gD.call(this)).CM(null) this.SH()}, a2I:function(a){this.f.pf(this,new A.abo(this,a))}, iT:function(a,b){this.$ti.h("fE<1,r>").a(N.a_.prototype.gD.call(this)).sbc(a)}, iY:function(a,b,c){}, j4:function(a,b){this.$ti.h("fE<1,r>").a(N.a_.prototype.gD.call(this)).sbc(null)}} A.abo.prototype={ $0:function(){var s,r,q,p,o,n,m,l,k,j=this,i=null try{o=j.a n=o.$ti.h("hG<1>") m=n.a(N.a_.prototype.gE.call(o)) m.toString i=m.c.$2(o,j.b) n.a(N.a_.prototype.gE.call(o))}catch(l){s=H.U(l) r=H.aB(l) o=j.a k=N.Fj(A.are(U.bE("building "+H.c(o.$ti.h("hG<1>").a(N.a_.prototype.gE.call(o)))),s,r,new A.abm(o))) i=k}try{o=j.a o.y2=o.ds(o.y2,i,null)}catch(l){q=H.U(l) p=H.aB(l) o=j.a k=N.Fj(A.are(U.bE("building "+H.c(o.$ti.h("hG<1>").a(N.a_.prototype.gE.call(o)))),q,p,new A.abn(o))) i=k o.y2=o.ds(null,i,o.c)}}, $S:0} A.abm.prototype={ $0:function(){var s=this return P.d9(function(){var r=0,q=1,p return function $async$$0(a,b){if(a===1){p=b r=q}while(true)switch(r){case 0:r=2 return K.EW(new N.l5(s.a)) case 2:return P.d5() case 1:return P.d6(p)}}},t.EX)}, $S:20} A.abn.prototype={ $0:function(){var s=this return P.d9(function(){var r=0,q=1,p return function $async$$0(a,b){if(a===1){p=b r=q}while(true)switch(r){case 0:r=2 return K.EW(new N.l5(s.a)) case 2:return P.d5() case 1:return P.d6(p)}}},t.EX)}, $S:20} A.fE.prototype={ CM:function(a){if(J.d(a,this.B2$))return this.B2$=a this.a1()}} A.Gh.prototype={ aM:function(a){var s=new A.OZ(null,!0,null,null) s.gav() s.gaF() s.dy=!1 return s}} A.OZ.prototype={ cB:function(a){return C.r}, bM:function(){var s=this,r=t.k,q=r.a(K.r.prototype.gX.call(s)) if(s.uP$||!J.d(r.a(K.r.prototype.gX.call(s)),s.Mx$)){s.Mx$=r.a(K.r.prototype.gX.call(s)) s.uP$=!1 r=s.B2$ r.toString s.BC(r,H.u(s).h("fE.0"))}r=s.v$ if(r!=null){r.cJ(0,q,!0) r=s.v$.r2 r.toString s.r2=q.bH(r)}else s.r2=new P.Q(C.f.a6(1/0,q.a,q.b),C.f.a6(1/0,q.c,q.d))}, dA:function(a){var s=this.v$ if(s!=null)return s.jg(a) return this.wN(a)}, cR:function(a,b){var s=this.v$ s=s==null?null:s.c3(a,b) return s===!0}, aD:function(a,b){var s=this.v$ if(s!=null)a.dq(s,b)}} A.Rn.prototype={ ag:function(a){var s this.dU(a) s=this.v$ if(s!=null)s.ag(a)}, ab:function(a){var s this.dw(0) s=this.v$ if(s!=null)s.ab(0)}} A.Ro.prototype={} L.tU.prototype={} L.agZ.prototype={ $1:function(a){return this.a.a=a}, $S:41} L.ah_.prototype={ $1:function(a){return a.b}, $S:340} L.ah0.prototype={ $1:function(a){var s,r,q,p for(s=J.ag(a),r=this.a,q=this.b,p=0;pf)g=f-h else if(g")) s=r.ls(r,new K.a3w(),new K.a3x()) if(s==null)return!1 return s.a===this}, gNx:function(){var s,r=this.a if(r==null)return!1 r=r.e r=new H.cm(r,H.Y(r).h("cm<1,dp?>")) s=r.n9(r,new K.a3y(),new K.a3z()) if(s==null)return!1 return s.a===this}, gN6:function(){var s,r,q,p,o=this.a if(o==null)return!1 for(o=o.e,s=o.length,r=0;r=1)return!0}return!1}, gNt:function(){var s=this.a if(s==null)return!1 s=s.e s=new H.cm(s,H.Y(s).h("cm<1,dp?>")) s=s.n9(s,new K.a3u(this),new K.a3v()) return(s==null?null:s.gkk())===!0}} K.a3t.prototype={ $1:function(a){var s=this.a.a if(s!=null)s.y.nI()}, $S:24} K.a3s.prototype={ $1:function(a){var s=this.a.a if(s!=null)s.y.nI()}, $S:24} K.a3w.prototype={ $1:function(a){return a!=null&&a.gkk()}, $S:31} K.a3x.prototype={ $0:function(){return null}, $S:1} K.a3y.prototype={ $1:function(a){return a!=null&&a.gkk()}, $S:31} K.a3z.prototype={ $0:function(){return null}, $S:1} K.a3u.prototype={ $1:function(a){return a!=null&&K.akO(this.a).$1(a)}, $S:31} K.a3v.prototype={ $0:function(){return null}, $S:1} K.dU.prototype={ j:function(a){return'RouteSettings("'+H.c(this.a)+'", '+H.c(this.b)+")"}, gar:function(a){return this.a}} K.lr.prototype={} K.n7.prototype={ cZ:function(a){return a.f!=this.f}} K.a3p.prototype={} K.Kk.prototype={} K.ES.prototype={} K.x9.prototype={ ah:function(){var s=null,r=t.V,q=t.Tp return new K.iO(H.b([],t.uD),new K.N6(new P.a7(r)),P.jQ(s,q),P.jQ(s,q),O.Xk(!0,"Navigator Scope",!1),new U.y0(0,new P.a7(r),t.dZ),new B.cZ(!1,new P.a7(r),t.uh),P.aZ(t.S),s,P.y(t.yb,t.M),s,!0,s,s,C.k)}, acz:function(a,b){return this.Q.$2(a,b)}} K.a0l.prototype={ $1:function(a){return a==null}, $S:345} K.ek.prototype={ j:function(a){return this.b}} K.O2.prototype={} K.dp.prototype={ gf4:function(){this.a.toString var s=this.b if(s!=null)return"r+"+H.c(s.gOV()) return null}, aaP:function(a,b,c,d){var s,r,q,p=this,o=p.c,n=p.a n.a=b n.kh() s=p.c if(s===C.iG||s===C.iH){r=n.pA() p.c=C.iI r.Pp(new K.adO(p,b))}else{n.AJ(c) p.c=C.dJ}if(a)n.py(null) s=o===C.mM||o===C.iH q=b.r if(s)q.dV(0,new K.B0(n,d)) else q.dV(0,new K.tP(n,d))}, vz:function(a,b){var s=this s.r=!0 if(s.a.lg(b)&&s.r)s.c=C.f6 s.r=!1}, qu:function(a,b){return this.vz(a,b,t.z)}, c4:function(a){if(this.c.a>=9)return this.x=!0 this.c=C.mN}, p:function(a){var s,r,q,p,o,n,m={} this.c=C.mK s=this.a r=s.gvu() q=new K.adM() p=H.Y(r) o=new H.aO(r,q,p.h("aO<1>")) if(!o.gM(o).q())s.p(0) else{m.a=o.gl(o) for(s=C.b.gM(r),p=new H.hn(s,q,p.h("hn<1>"));p.q();){r={} q=s.gw(s) r.a=$ n=new K.adK(r) new K.adL(r).$1(new K.adN(m,this,q,n)) n=n.$0() q=q.P$ q.bQ(q.c,new B.bn(n),!1)}}}, gkk:function(){var s=this.c.a return s<=9&&s>=1}} K.adO.prototype={ $0:function(){var s=this.a if(s.c===C.iI){s.c=C.dJ this.b.y3()}}, $S:0} K.adM.prototype={ $1:function(a){return a.d}, $S:346} K.adL.prototype={ $1:function(a){return this.a.a=a}, $S:136} K.adK.prototype={ $0:function(){var s=this.a.a return s===$?H.e(H.c1("listener")):s}, $S:130} K.adN.prototype={ $0:function(){var s=this,r=s.a;--r.a s.c.T(0,s.d.$0()) if(r.a===0)s.b.a.p(0)}, $C:"$0", $R:0, $S:0} K.adP.prototype={ $1:function(a){return a.a===this.a}, $S:61} K.m1.prototype={} K.tP.prototype={ lz:function(a){a.tn(this.b,this.a,C.bf,!1)}} K.AZ.prototype={ lz:function(a){if(!a.a.dy.a)a.tn(this.a,this.b,C.bg,!1)}} K.B_.prototype={ lz:function(a){a.toString}} K.B0.prototype={ lz:function(a){var s=this.a a.toString if((s==null?null:s.giV())===!0)a.tn(this.b,s,C.bf,!1)}} K.iO.prototype={ goR:function(){var s=this.d return s===$?H.e(H.t("_overlayKey")):s}, grQ:function(){var s=this.ch return s===$?H.e(H.t("_effectiveObservers")):s}, aC:function(){var s,r,q=this q.b_() for(s=q.a.y,s.length,r=0;!1;++r)s[r].a=q q.ch=q.a.y s=q.c.kD(t.mS) s=s==null?null:s.gE() t._I.a(s) q.zw(s==null?null:s.f)}, j6:function(a,b){var s,r,q,p,o,n,m,l=this l.lH(l.cx,"id") s=l.f l.lH(s,"history") for(;r=l.e,r.length!==0;)J.Sl(r.pop()) l.d=new N.aY(null,t.ku) C.b.J(r,s.OW(null,l)) l.a.toString q=0 for(;!1;++q){p=C.tl[q] r=l.c r.toString r=p.As(r) o=$.aiD() n=new K.dp(r,null,C.f5,o,o,o) l.e.push(n) C.b.J(l.e,s.OW(n,l))}if(s.e==null){s=l.a m=s.f r=l.e C.b.J(r,J.mn(s.acz(l,m),new K.a0j(l),t.Ez))}l.y3()}, AL:function(a){var s,r=this r.SQ(a) s=r.f if(r.ae$!=null)s.b5(0,r.e) else s.az(0)}, gf4:function(){return this.a.z}, aG:function(){var s,r,q,p,o=this o.TI() s=o.c.a0(t.mS) o.zw(s==null?null:s.f) for(r=o.e,q=r.length,p=0;p0?d[c-1]:e,a0=H.b([],t.uD) for(d=f.x,s=f.r,r=e,q=r,p=!1,o=!1;c>=0;){switch(b.c){case C.f5:n=f.kY(c-1,K.alD()) m=n>=0?f.e[n]:e m=m==null?e:m.a l=b.a l.a=f l.kh() b.c=C.mL s.dV(0,new K.tP(l,m)) continue case C.mL:if(p||q==null){m=b.a m.px() b.c=C.dJ if(q==null)m.py(e) continue}break case C.iG:case C.iH:case C.mM:m=a==null?e:a.a n=f.kY(c-1,K.alD()) l=n>=0?f.e[n]:e l=l==null?e:l.a b.aaP(q==null,f,m,l) if(b.c===C.dJ)continue break case C.iI:if(!o&&r!=null){b.a.n0(r) b.e=r}o=!0 break case C.dJ:if(!o&&r!=null){b.a.n0(r) b.e=r}p=!0 o=!0 break case C.f6:if(!o){if(r!=null){b.a.n0(r) b.e=r}r=b.a}n=f.kY(c,K.aic()) m=n>=0?f.e[n]:e m=m==null?e:m.a b.c=C.mI d.dV(0,new K.AZ(b.a,m)) p=!0 break case C.mI:break case C.mN:if(!o){if(r!=null)b.a.n0(r) r=e}n=f.kY(c,K.aic()) m=n>=0?f.e[n]:e m=m==null?e:m.a b.c=C.mJ if(b.x)d.dV(0,new K.B_(b.a,m)) continue case C.mJ:if(!p&&q!=null)break b.c=C.iF continue case C.iF:a0.push(C.b.eH(f.e,c)) b=q break case C.mK:case C.HF:break default:throw H.a(H.j(u.I))}--c k=c>0?f.e[c-1]:e q=b b=a a=k}f.a_7() f.a_9() f.a.toString d=f.e d=new H.cm(d,H.Y(d).h("cm<1,dp?>")) j=d.ls(d,new K.a0b(),new K.a0c()) i=j==null?e:j.a.b.a d=f.cy if(i!=d){C.lg.cF("routeUpdated",P.aj(["previousRouteName",d,"routeName",i],t.N,t.z),t.H) f.cy=i}for(d=a0.length,h=0;h=0;){s=m.e[k] r=s.c.a if(!(r<=11&&r>=3)){--k continue}q=m.a_G(k+1,K.asq()) r=q==null p=r?l:q.a o=s.f if(p!=o){if((r?l:q.a)==null){p=s.e p=p!=null&&p===o}else p=!1 if(!p){p=s.a p.py(r?l:q.a)}s.f=r?l:q.a}--k n=m.kY(k,K.asq()) r=n>=0?m.e[n]:l p=r==null o=p?l:r.a if(o!=s.d){o=s.a o.pz(p?l:r.a) s.d=p?l:r.a}}}, a_H:function(a,b){a=this.kY(a,b) return a>=0?this.e[a]:null}, kY:function(a,b){while(!0){if(!(a>=0&&!b.$1(this.e[a])))break;--a}return a}, a_G:function(a,b){var s while(!0){s=this.e if(!(a?") q=r.a(this.a.r.$1(s)) return q==null&&!b?r.a(this.a.x.$1(s)):q}, IW:function(a,b,c){return this.oZ(a,!1,b,c)}, ada:function(a){var s=K.aqy(a,C.iG,null) this.e.push(s) this.y3() this.x5(s.a) return a.d.a}, qx:function(a){return this.ada(a,t.O)}, x5:function(a){this.Yf()}, qe:function(a){var s=0,r=P.af(t.y),q,p=this,o,n,m var $async$qe=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)$async$outer:switch(s){case 0:m=p.e m=new H.cm(m,H.Y(m).h("cm<1,dp?>")) o=m.ls(m,new K.a0d(),new K.a0e()) if(o==null){q=!1 s=1 break}s=3 return P.ak(o.a.h8(),$async$qe) case 3:n=c if(p.c==null){q=!0 s=1 break}m=p.e m=new H.cm(m,H.Y(m).h("cm<1,dp?>")) if(o!==m.ls(m,new K.a0f(),new K.a0g())){q=!0 s=1 break}switch(n){case C.lA:q=!1 s=1 break $async$outer case C.hG:p.qu(0,a) q=!0 s=1 break $async$outer case C.lz:q=!0 s=1 break $async$outer default:throw H.a(H.j(u.I))}case 1:return P.ad(q,r)}}) return P.ae($async$qe,r)}, NQ:function(){return this.qe(null,t.O)}, ac9:function(a){return this.qe(a,t.O)}, vz:function(a,b){var s=C.b.abJ(this.e,K.alD()),r=s.a r.toString s.qu(0,b) if(s.c===C.f6)this.oD(!1) this.x5(r)}, dr:function(a){return this.vz(a,null,t.O)}, qu:function(a,b){return this.vz(a,b,t.O)}, adE:function(a){var s,r=this,q=a.giV() C.b.B8(r.e,K.akO(a)).c4(0) r.oD(!1) if(q){s=r.e s=new H.cm(s,H.Y(s).h("cm<1,dp?>")) s=s.ls(s,new K.a0h(),new K.a0i()) r.x5(s==null?null:s.a)}}, MJ:function(a){var s=C.b.B8(this.e,K.akO(a)) if(s.r){s.c=C.f6 this.oD(!1)}s.c=C.iF this.oD(!1)}, sKC:function(a){this.dx=a this.dy.sm(0,a>0)}, a96:function(){var s,r,q,p,o=this o.sKC(o.dx+1) if(o.dx===1){s=o.kY(o.e.length-1,K.aic()) r=o.e[s].a q=!r.gPq()&&s>0?o.a_H(s-1,K.aic()).a:null for(p=J.as(o.grQ());p.q();)p.gw(p).tn(r,q,C.bg,!0)}}, uD:function(){var s,r=this r.sKC(r.dx-1) if(r.dx===0)for(s=J.as(r.grQ());s.q();)s.gw(s).uD()}, a1o:function(a){this.fr.B(0,a.gco())}, a1u:function(a){this.fr.u(0,a.gco())}, Yf:function(){if($.bT.db$===C.c0){var s=this.goR() s.toString s=$.D.A$.Q.i(0,s) this.Y(new K.a0a(s==null?null:s.uT(t.MY)))}s=this.fr C.b.K(P.an(s,!0,H.u(s).h("cQ.E")),$.D.ga7H())}, H:function(a,b){var s,r=this,q=null,p=r.ga1t(),o=r.ae$,n=r.goR() if(r.goR().gas()==null){s=r.gx7() s=P.an(s,!1,s.$ti.h("l.E"))}else s=C.kn return new K.n7(q,T.a_j(C.d2,new T.D0(!1,L.ao7(!0,K.a7A(o,new X.xi(s,n)),q,r.y),q),p,r.ga1n(),q,p),q)}} K.a0j.prototype={ $1:function(a){var s,r,q=a.b.a if(q!=null){s=this.a.cx r=s.e s.SP(0,r+1) q=new K.NY(r,q,null,C.f7)}else q=null return K.aqy(a,C.f5,q)}, $S:349} K.a0b.prototype={ $1:function(a){return a!=null&&a.gkk()}, $S:31} K.a0c.prototype={ $0:function(){return null}, $S:1} K.a0d.prototype={ $1:function(a){return a!=null&&a.gkk()}, $S:31} K.a0e.prototype={ $0:function(){return null}, $S:1} K.a0f.prototype={ $1:function(a){return a!=null&&a.gkk()}, $S:31} K.a0g.prototype={ $0:function(){return null}, $S:1} K.a0h.prototype={ $1:function(a){return a!=null&&a.gkk()}, $S:31} K.a0i.prototype={ $0:function(){return null}, $S:1} K.a0a.prototype={ $0:function(){var s=this.a if(s!=null)s.sKO(!0)}, $S:0} K.Bj.prototype={ j:function(a){return this.b}} K.Pb.prototype={ gNE:function(){return!0}, uj:function(){return H.b([this.a.a],t.jl)}} K.NY.prototype={ uj:function(){var s=this,r=s.U1(),q=H.b([s.c,s.d],t.jl),p=s.e if(p!=null)q.push(p) C.b.J(r,q) return r}, As:function(a){var s=a.oZ(this.d,!1,this.e,t.z) s.toString return s}, gOV:function(){return this.c}, gar:function(a){return this.d}} K.akC.prototype={ gNE:function(){return!1}, uj:function(){P.azO(this.d)}, As:function(a){var s=a.c s.toString return this.d.$2(s,this.e)}, gOV:function(){return this.c}} K.N6.prototype={ b5:function(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e=this,d=null,c=e.e==null if(c)e.e=P.y(t.N,t.UX) s=H.b([],t.jl) r=e.e r.toString q=J.aS(r,null) if(q==null)q=C.bk p=P.y(t.ob,t.UX) r=e.e r.toString o=J.and(J.St(r)) for(r=b.length,n=d,m=c,l=!0,k=0;k7){i=j.a i.c.sm(0,d) continue}i=j.a i.toString if(l){h=j.b l=(h==null?d:h.gNE())===!0}else l=!1 h=l?j.gf4():d i.c.sm(0,h) if(l){i=j.b g=i.b if(g==null)g=i.b=i.uj() if(!m){i=J.ag(q) h=i.gl(q) f=s.length m=h<=f||!J.d(i.i(q,f),g)}else m=!0 s.push(g)}}m=m||s.length!==J.bQ(q) e.ZV(s,n,p,o) if(m||o.gaV(o)){e.e=p e.aa()}}, ZV:function(a,b,c,d){var s,r=a.length if(r!==0){s=b==null?null:b.gf4() c.n(0,s,a) d.u(0,s)}}, az:function(a){if(this.e==null)return this.e=null this.aa()}, OW:function(a,b){var s,r,q,p,o,n=H.b([],t.uD) if(this.e!=null)s=a!=null&&a.gf4()==null else s=!0 if(s)return n s=this.e s.toString r=J.aS(s,a==null?null:a.gf4()) if(r==null)return n for(s=J.as(r);s.q();){q=K.aCl(s.gw(s)) p=q.As(b) o=$.aiD() n.push(new K.dp(p,q,C.f5,o,o,o))}return n}, ur:function(){return null}, nb:function(a){a.toString return J.awJ(t.f.a(a),new K.aaX(),t.ob,t.UX)}, q4:function(a){this.e=a}, nN:function(){return this.e}, gk7:function(a){return this.e!=null}} K.aaX.prototype={ $2:function(a,b){return new P.bm(H.ud(a),P.bk(t.j.a(b),!0,t.K),t.qE)}, $S:350} K.acV.prototype={ $2:function(a,b){if(!a.a)a.T(0,b)}, $S:46} K.B1.prototype={ p:function(a){this.bh(0)}, aG:function(){var s,r=this.c r.toString s=!U.dm(r) r=this.by$ if(r!=null)for(r=P.cq(r,r.r,H.u(r).c);r.q();)r.d.sdE(0,s) this.cq()}} K.B2.prototype={ bd:function(a){this.bG(a) this.pD()}, aG:function(){var s,r,q,p,o=this o.TG() s=o.ae$ r=o.glK() q=o.c q.toString q=K.qS(q) o.aS$=q p=o.mK(q,r) if(r){o.j6(s,o.bx$) o.bx$=!1}if(p)if(s!=null)s.p(0)}, p:function(a){var s,r=this r.bf$.K(0,new K.acV()) s=r.ae$ if(s!=null)s.p(0) r.ae$=null r.TH(0)}} U.xd.prototype={ nS:function(a){var s if(a instanceof N.dV){s=a.gE() if(s instanceof U.fz)if(s.a37(this,a))return!1}return!0}, fk:function(a){if(a!=null)a.ip(this.gCS())}, j:function(a){var s=H.b([],t.s) this.dl(s) return"Notification("+C.b.bI(s,", ")+")"}, dl:function(a){}} U.fz.prototype={ a37:function(a,b){if(this.$ti.c.b(a))return this.d.$1(a)===!0 return!1}, H:function(a,b){return this.c}} U.h8.prototype={} X.jX.prototype={ skr:function(a){var s if(this.b===a)return this.b=a s=this.e if(s!=null)s.Ga()}, skm:function(a){if(this.c)return this.c=!0 this.e.Ga()}, Kh:function(a){if(a===this.d)return this.d=a this.aa()}, c4:function(a){var s,r=this.e r.toString this.e=null if(r.c==null)return C.b.u(r.d,this) s=$.bT if(s.db$===C.dm)s.ch$.push(new X.a0J(r)) else r.HQ()}, f0:function(){var s=this.f.gas() if(s!=null)s.HS()}, j:function(a){return"#"+Y.cf(this)+"(opaque: "+this.b+"; maintainState: "+this.c+")"}} X.a0J.prototype={ $1:function(a){this.a.HQ()}, $S:2} X.tR.prototype={ ah:function(){return new X.B3(C.k)}} X.B3.prototype={ aC:function(){this.b_() this.a.c.Kh(!0)}, p:function(a){this.a.c.Kh(!1) this.bh(0)}, H:function(a,b){var s=this.a return new U.z9(s.d,s.c.a.$1(b),null)}, HS:function(){this.Y(new X.ad_())}} X.ad_.prototype={ $0:function(){}, $S:0} X.xi.prototype={ ah:function(){return new X.qt(H.b([],t.fy),null,C.k)}} X.qt.prototype={ aC:function(){this.b_() this.Nj(0,this.a.c)}, yD:function(a,b){return this.d.length}, Ni:function(a,b){b.e=this this.Y(new X.a0N(this,null,null,b))}, Nj:function(a,b){var s,r=b.length if(r===0)return for(s=0;s=0;--r){o=s[r] if(q){++p m.push(new X.tR(o,!0,o.f)) q=!o.b||!1}else if(o.c)m.push(new X.tR(o,!1,o.f))}s=m.length n=t.H8 n=P.an(new H.bI(m,n),!1,n.h("av.E")) this.a.toString return new X.BQ(s-p,C.ak,n,null)}} X.a0N.prototype={ $0:function(){var s=this,r=s.a C.b.lq(r.d,r.yD(s.b,s.c),s.d)}, $S:0} X.a0M.prototype={ $0:function(){var s=this,r=s.a C.b.q5(r.d,r.yD(s.b,s.c),s.d)}, $S:0} X.a0O.prototype={ $0:function(){var s,r,q=this,p=q.a,o=p.d C.b.sl(o,0) s=q.b C.b.J(o,s) r=q.c r.adB(s) C.b.q5(o,p.yD(q.d,q.e),r)}, $S:0} X.a0L.prototype={ $0:function(){}, $S:0} X.a0K.prototype={ $0:function(){}, $S:0} X.BQ.prototype={ bK:function(a){var s=t.t,r=P.be(s),q=($.b5+1)%16777215 $.b5=q return new X.Qq(r,q,this,C.a1,P.be(s))}, aM:function(a){var s=a.a0(t.I) s.toString s=new X.u_(s.f,this.e,this.f,0,null,null) s.gav() s.gaF() s.dy=!1 s.J(0,null) return s}, aP:function(a,b){var s=this.e if(b.au!==s){b.au=s b.a1()}s=a.a0(t.I) s.toString b.sbt(0,s.f) s=this.f if(s!==b.aB){b.aB=s b.aw() b.ao()}}} X.Qq.prototype={ gE:function(){return t.sG.a(N.nv.prototype.gE.call(this))}, gD:function(){return t._2.a(N.nv.prototype.gD.call(this))}} X.u_.prototype={ ep:function(a){if(!(a.d instanceof K.dl))a.d=new K.dl(null,null,C.i)}, a3n:function(){if(this.N!=null)return this.N=C.ca.ak(this.S)}, sbt:function(a,b){var s=this if(s.S===b)return s.S=b s.N=null s.a1()}, grW:function(){var s,r,q,p,o=this if(o.au===K.aD.prototype.gLl.call(o))return null s=K.aD.prototype.gaa8.call(o,o) for(r=o.au,q=t.B;r>0;--r){p=s.d p.toString s=q.a(p).an$}return s}, dA:function(a){var s,r,q,p,o=this.grW() for(s=t.B,r=null;o!=null;){q=o.d q.toString s.a(q) p=o.jg(a) if(p!=null){p+=q.a.b r=r!=null?Math.min(r,p):p}o=q.an$}return r}, gjk:function(){return!0}, cB:function(a){return new P.Q(C.f.a6(1/0,a.a,a.b),C.f.a6(1/0,a.c,a.d))}, bM:function(){var s,r,q,p,o,n,m,l,k=this k.F=!1 if(k.cI$-k.au===0)return k.a3n() s=t.k.a(K.r.prototype.gX.call(k)) r=S.uX(new P.Q(C.f.a6(1/0,s.a,s.b),C.f.a6(1/0,s.c,s.d))) q=k.grW() for(s=t.B,p=t.EP;q!=null;){o=q.d o.toString s.a(o) if(!o.gBJ()){q.cJ(0,r,!0) n=k.N n.toString m=k.r2 m.toString l=q.r2 l.toString o.a=n.mQ(p.a(m.a5(0,l)))}else{n=k.r2 n.toString m=k.N m.toString k.F=K.apo(q,o,n,m)||k.F}q=o.an$}}, cR:function(a,b){var s,r,q,p=this,o={},n=o.a=p.au===K.aD.prototype.gLl.call(p)?null:p.d9$ for(s=t.B,r=0;r0)n=p else n=null m=n===s if(j.r!==C.Gw){s=j.c s.toString new L.a0P(m,0).fk(s) s=j.x s.n(0,m,!0) s.i(0,m).toString n.d=0}j.x.i(0,m).toString s=a.f if(s!==0){r=n.c if(r!=null)r.aH(0) n.c=null l=C.d.a6(Math.abs(s),100,1e4) s=n.f if(n.a===C.dH)r=0.3 else{r=n.gmp() r=r.gm(r)}s.a=r r.toString s.b=C.d.a6(l*0.00006,r,0.5) r=n.x s=n.goH() r.a=s.gm(s) r.b=Math.min(0.025+75e-8*l*l,1) n.giB().e=P.cJ(0,C.d.aO(0.15+l*0.02)) n.giB().uX(0,0) n.cx=0.5 n.a=C.mE}else{s=a.d if(s!=null){p=a.b.gD() p.toString t.x.a(p) o=p.r2 o.toString k=p.ir(s.d) switch(G.bW(r.e)){case C.o:n.toString s=o.b n.Or(0,Math.abs(q),o.a,J.aW(k.b,0,s),s) break case C.n:n.toString s=o.a n.Or(0,Math.abs(q),o.b,J.aW(k.a,0,s),s) break default:throw H.a(H.j(u.I))}}}}else if(a instanceof G.nT||a instanceof G.j0)if(a.gMe()!=null){s=j.d if(s.a===C.dI)s.tx(C.d_) s=j.e if(s.a===C.dI)s.tx(C.d_)}j.r=H.E(a) return!1}, p:function(a){this.d.p(0) this.e.p(0) this.UE(0)}, H:function(a,b){var s=this,r=null,q=s.a,p=s.d,o=s.e,n=q.e,m=s.f return new U.fz(new T.he(T.l3(new T.he(q.x,r),new L.N4(p,o,n,m),r,r,C.r),r),s.ga3o(),r,t.WA)}} L.tx.prototype={ j:function(a){return this.b}} L.Ah.prototype={ giB:function(){var s=this.b return s===$?H.e(H.t("_glowController")):s}, gmp:function(){var s=this.r return s===$?H.e(H.t("_glowOpacity")):s}, goH:function(){var s=this.y return s===$?H.e(H.t("_glowSize")):s}, gox:function(){var s=this.z return s===$?H.e(H.t("_displacementTicker")):s}, sap:function(a,b){if(J.d(this.db,b))return this.db=b this.aa()}, sLc:function(a){if(this.dx===a)return this.dx=a this.aa()}, p:function(a){var s,r=this r.giB().p(0) r.gox().p(0) s=r.c if(s!=null)s.aH(0) r.hb(0)}, Or:function(a,b,c,d,e){var s,r,q,p=this,o=p.c if(o!=null)o.aH(0) p.cy=p.cy+b/200 o=p.f s=p.gmp() o.a=s.gm(s) s=p.gmp() o.b=Math.min(s.gm(s)+b/c*0.8,0.5) r=Math.min(c,e*0.20096189432249995) s=p.x o=p.goH() s.a=o.gm(o) o=Math.sqrt(p.cy*r) q=p.goH() s.b=Math.max(1-1/(0.7*o),H.B(q.gm(q))) q=d/e p.ch=q if(q!==p.cx){if(!p.gox().gabB())p.gox().rn(0)}else{p.gox().fB(0) p.Q=null}p.giB().e=C.jL if(p.a!==C.dI){p.giB().uX(0,0) p.a=C.dI}else{o=p.giB().r if(!(o!=null&&o.a!=null))p.aa()}p.c=P.ci(C.jL,new L.aaN(p))}, Yi:function(a){var s=this if(a!==C.a7)return switch(s.a){case C.mE:s.tx(C.d_) break case C.iD:s.a=C.dH s.cy=0 break case C.dI:case C.dH:break default:throw H.a(H.j(u.I))}}, tx:function(a){var s,r=this,q=r.a if(q===C.iD||q===C.dH)return q=r.c if(q!=null)q.aH(0) r.c=null q=r.f s=r.gmp() q.a=s.gm(s) q.b=0 q=r.x s=r.goH() q.a=s.gm(s) q.b=0 r.giB().e=a r.giB().uX(0,0) r.a=C.iD}, a66:function(a){var s,r=this,q=r.Q if(q!=null){q=q.a s=r.ch r.cx=s-(s-r.cx)*Math.pow(2,-(a.a-q)/$.atG().a) r.aa()}if(B.CL(r.ch,r.cx,0.001)){r.gox().fB(0) r.Q=null}else r.Q=a}, aD:function(a,b){var s,r,q,p,o,n,m,l,k=this,j=k.gmp() if(J.d(j.gm(j),0))return j=b.a s=b.b r=j>s?s/j:1 q=j*3/2 p=Math.min(s,j*0.20096189432249995) s=k.goH() s=s.gm(s) o=k.cx n=H.aF() m=n?H.b_():new H.aR(new H.aT()) n=k.db l=k.gmp() l=l.gm(l) n.toString m.sap(0,P.aI(C.d.aO(255*l),n.gm(n)>>>16&255,n.gm(n)>>>8&255,n.gm(n)&255)) a.bu(0) a.af(0,0,k.d+k.e) a.d_(0,1,s*r) a.jV(0,new P.x(0,0,0+j,0+p)) a.eB(0,new P.m(j/2*(0.5+o),p-q),q,m) a.bj(0)}} L.aaN.prototype={ $0:function(){return this.a.tx(C.jM)}, $C:"$0", $R:0, $S:0} L.N4.prototype={ Ic:function(a,b,c,d,e){var s if(c==null)return switch(G.kH(d,e)){case C.A:c.aD(a,b) break case C.y:a.bu(0) a.af(0,0,b.b) a.d_(0,1,-1) c.aD(a,b) a.bj(0) break case C.L:a.bu(0) a.h5(0,1.5707963267948966) a.d_(0,1,-1) c.aD(a,new P.Q(b.b,b.a)) a.bj(0) break case C.P:a.bu(0) s=b.a a.af(0,s,0) a.h5(0,1.5707963267948966) c.aD(a,new P.Q(b.b,s)) a.bj(0) break default:throw H.a(H.j(u.I))}}, aD:function(a,b){var s=this,r=s.d s.Ic(a,b,s.b,r,C.d1) s.Ic(a,b,s.c,r,C.bU)}, eq:function(a){return a.b!=this.b||a.c!=this.c}} L.a0P.prototype={ dl:function(a){this.TL(a) a.push("side: "+(this.a?"leading edge":"trailing edge"))}} L.tS.prototype={ nS:function(a){if(a instanceof N.a_&&t.NW.b(a.gD()))++this.cb$ return this.Eo(a)}, dl:function(a){var s this.En(a) s="depth: "+this.cb$+" (" a.push(s+(this.cb$===0?"local":"remote")+")")}} L.Cg.prototype={ p:function(a){this.bh(0)}, aG:function(){var s,r=this.c r.toString s=!U.dm(r) r=this.by$ if(r!=null)for(r=P.cq(r,r.r,H.u(r).c);r.q();)r.d.sdE(0,s) this.cq()}} S.BC.prototype={ k:function(a,b){if(b==null)return!1 if(J.N(b)!==H.E(this))return!1 return b instanceof S.BC&&S.cx(b.a,this.a)}, gt:function(a){return P.em(this.a)}, j:function(a){return"StorageEntryIdentifier("+C.b.bI(this.a,":")+")"}} S.qv.prototype={ F3:function(a){var s=H.b([],t.g8) if(S.aoT(a,s))a.ip(new S.a0Q(s)) return s}, adr:function(a){var s if(this.a==null)return null s=this.F3(a) return s.length!==0?this.a.i(0,new S.BC(s)):null}} S.a0Q.prototype={ $1:function(a){return S.aoT(a,this.a)}, $S:25} S.qu.prototype={ H:function(a,b){return this.c}} V.fA.prototype={ gkr:function(){return!0}, gpb:function(){return!1}, uc:function(a){return a instanceof V.fA}, Lk:function(a){return a instanceof V.fA}} V.xk.prototype={ u8:function(a,b,c){return this.c_.$3(a,b,c)}, ua:function(a,b,c,d){return this.cl.$4(a,b,c,d)}, gqL:function(a){return this.aK}, gOY:function(){return this.cw}, gkr:function(){return!0}, gpb:function(){return!1}, gu1:function(){return null}, gu2:function(){return null}, gkm:function(){return this.aq}} L.Hv.prototype={ aM:function(a){var s=new L.Io(this.d,0,!1,!1) s.gav() s.gaF() s.dy=!0 return s}, aP:function(a,b){b.sacX(this.d) b.sadj(0)}} Q.HN.prototype={ H:function(a,b){return this.c}, gvB:function(){return this.d}} E.qD.prototype={ cZ:function(a){return this.f!=a.f}} K.lB.prototype={ ah:function(){return new K.Pc(null,P.y(t.yb,t.M),null,!0,null,C.k)}} K.Pc.prototype={ gf4:function(){return this.a.d}, j6:function(a,b){}, H:function(a,b){return K.a7A(this.ae$,this.a.c)}} K.zm.prototype={ cZ:function(a){return a.f!=this.f}} K.y5.prototype={ ah:function(){return new K.Bi(C.k)}} K.Bi.prototype={ aG:function(){var s,r=this r.cq() s=r.c s.toString r.r=K.qS(s) r.yJ() if(r.d==null){r.a.toString r.d=!1}}, bd:function(a){this.bG(a) this.yJ()}, gHF:function(){this.a.toString return!1}, yJ:function(){var s=this if(s.gHF()&&!s.x){s.x=!0;++$.lA.aI$ $.lC.goY().gadW().bN(0,new K.adF(s),t.P)}}, a4q:function(){var s=this s.e=!1 s.f=null $.lC.goY().T(0,s.gz1()) s.yJ()}, p:function(a){if(this.e)$.lC.goY().T(0,this.gz1()) this.bh(0)}, H:function(a,b){var s,r,q=this,p=q.d p.toString if(p&&q.gHF())return C.dv p=q.r if(p==null)p=q.f s=q.a r=s.d return K.a7A(p,new K.lB(s.c,r,null))}} K.adF.prototype={ $1:function(a){var s,r=this.a r.x=!1 if(r.c!=null){s=$.lC.goY().P$ s.bQ(s.c,new B.bn(r.gz1()),!1) r.Y(new K.adE(r,a))}$.lA.L3()}, $S:352} K.adE.prototype={ $0:function(){var s=this.a s.f=this.b s.e=!0 s.d=!1}, $S:0} K.cW.prototype={ gk7:function(a){return!0}, p:function(a){var s=this,r=s.c if(r!=null)r.K4(s) s.hb(0) s.a=!0}, gb9:function(a){var s=this.c s.toString return s}} K.iZ.prototype={ AL:function(a){}, lH:function(a,b){var s,r=this,q=r.ae$,p=(q==null?null:J.fW(q.gjA(),b))===!0,o=p?a.nb(J.aS(r.ae$.gjA(),b)):a.ur() if(a.b==null){a.b=b a.c=r q=new K.a3m(r,a) s=a.P$ s.bQ(s.c,new B.bn(q),!1) r.bf$.n(0,a,q)}a.q4(o) if(!p&&a.gk7(a)&&r.ae$!=null)r.zA(a)}, pD:function(){var s,r,q=this if(q.aS$!=null){s=q.ae$ s=s==null?null:s.e s=s==q.gf4()||q.glK()}else s=!0 if(s)return r=q.ae$ if(q.mK(q.aS$,!1))if(r!=null)r.p(0)}, glK:function(){var s,r,q=this if(q.bx$)return!0 if(q.gf4()==null)return!1 s=q.c s.toString r=K.qS(s) if(r!=q.aS$){if(r==null)s=null else{s=r.c s=s==null?null:s.d s=s===!0}s=s===!0}else s=!1 return s}, mK:function(a,b){var s,r,q=this if(q.gf4()==null||a==null)return q.Jf(null,b) if(b||q.ae$==null){s=q.gf4() s.toString return q.Jf(a.a7R(s,q),b)}s=q.ae$ s.toString r=q.gf4() r.toString s.adH(r) r=q.ae$ r.toString a.ff(r) return!1}, Jf:function(a,b){var s,r=this,q=r.ae$ if(a==q)return!1 r.ae$=a if(!b){if(a!=null){s=r.bf$ s.gaj(s).K(0,r.ga6s())}r.AL(q)}return!0}, zA:function(a){var s,r=a.gk7(a),q=this.ae$ if(r){if(q!=null){r=a.b r.toString s=a.nN() if(!J.d(J.aS(q.gjA(),r),s)||!J.fW(q.gjA(),r)){J.it(q.gjA(),r,s) q.mu()}}}else if(q!=null){r=a.b r.toString q.OG(0,r,t.K)}}, K4:function(a){var s=this.bf$.u(0,a) s.toString a.T(0,s) a.c=a.b=null}} K.a3m.prototype={ $0:function(){var s=this.a if(s.ae$==null)return s.zA(this.b)}, $C:"$0", $R:0, $S:0} K.agc.prototype={ $2:function(a,b){if(!a.a)a.T(0,b)}, $S:46} K.Rq.prototype={ bd:function(a){this.bG(a) this.pD()}, aG:function(){var s,r,q,p,o=this o.cq() s=o.ae$ r=o.glK() q=o.c q.toString q=K.qS(q) o.aS$=q p=o.mK(q,r) if(r){o.j6(s,o.bx$) o.bx$=!1}if(p)if(s!=null)s.p(0)}, p:function(a){var s,r=this r.bf$.K(0,new K.agc()) s=r.ae$ if(s!=null)s.p(0) r.ae$=null r.bh(0)}} U.qR.prototype={ sm:function(a,b){var s=this.e if(b==null?s!=null:b!==s){this.e=b this.M7(s)}}, q4:function(a){this.e=a}} U.il.prototype={ ur:function(){return this.z}, M7:function(a){this.aa()}, nb:function(a){return H.u(this).h("il.T").a(a)}, nN:function(){return this.e}} U.Bh.prototype={ nb:function(a){return this.U_(a)}, nN:function(){var s=this.U0() s.toString return s}} U.y0.prototype={} U.y_.prototype={} U.nP.prototype={ q4:function(a){var s=this,r=s.e if(r!=null)r.T(0,s.gcL()) s.e=a a.toString J.auM(a,s.gcL())}, p:function(a){var s this.SO(0) s=this.e if(s!=null)s.T(0,this.gcL())}} U.qQ.prototype={ q4:function(a){this.rO() this.SN(a)}, p:function(a){this.rO() this.wR(0)}, rO:function(){var s=this.e if(s!=null)P.eV(s.gdJ(s))}} U.y1.prototype={ ur:function(){return D.apM(this.db)}, nb:function(a){a.toString H.cr(a) return new D.aL(new N.bb(a,C.O,C.v),new P.a7(t.V))}, nN:function(){return this.e.a.a}} Z.a3o.prototype={ gb9:function(a){return this.b}} T.qs.prototype={ gvu:function(){return this.e}, kh:function(){C.b.J(this.e,this.LU()) this.T0()}, lg:function(a){var s=this s.SW(a) if(s.ch.gmF()===C.N)s.a.MJ(s) return!0}, p:function(a){C.b.sl(this.e,0) this.T_(0)}} T.d4.prototype={ gOY:function(){return this.gqL(this)}, gcs:function(a){return this.Q}, gDr:function(){return this.cx}, a1V:function(a){var s,r=this switch(a){case C.a7:s=r.e if(s.length!==0)C.b.gI(s).skr(r.gkr()) break case C.aC:case C.as:s=r.e if(s.length!==0)C.b.gI(s).skr(!1) break case C.N:if(!r.gNt())r.a.MJ(r) break default:throw H.a(H.j(u.I))}}, kh:function(){var s=this,r=s.gqL(s),q=s.gOY(),p=s.gpr(),o=s.a o.toString o=s.ch=G.cl(p,r,0,q,1,null,o) o.dh(s.ga1U()) s.Q=o s.So() p=s.Q if(p.gbg(p)===C.a7&&s.e.length!==0)C.b.gI(s.e).skr(s.gkr())}, pA:function(){this.SY() return this.ch.cm(0)}, px:function(){this.ST() var s=this.ch s.sm(0,s.b)}, AJ:function(a){var s if(a instanceof T.d4){s=this.ch s.toString s.sm(0,a.ch.gbz())}this.SZ(a)}, lg:function(a){this.cy=a this.ch.cT(0) this.Sm(a) return!0}, n0:function(a){this.Ks(a) this.SX(a)}, py:function(a){this.Ks(a) this.SU(a)}, Ks:function(a){var s,r,q,p,o,n,m=this,l={},k=m.db m.db=null if(a instanceof T.d4&&m.uc(a)&&a.Lk(m)){s=m.cx.c if(s!=null){r=s instanceof S.or?s.a:s r.toString q=a.Q q.toString p=J.d(r.gm(r),q.gbz())||q.gmF()===C.a7||q.gmF()===C.N o=a.z.a if(p)m.mE(q,o) else{l.a=null p=new T.a7t(m,q,a) m.db=new T.a7u(l,q,p) q.dh(p) n=S.akz(r,q,new T.a7v(l,m,a)) l.a=n m.mE(n,o)}}else m.mE(a.Q,a.z.a)}else m.a55(C.by) if(k!=null)k.$0()}, mE:function(a,b){this.cx.sa9(0,a) if(b!=null)b.bN(0,new T.a7s(this,a),t.P)}, a55:function(a){return this.mE(a,null)}, uc:function(a){return!0}, Lk:function(a){return!0}, p:function(a){var s=this,r=s.ch if(r!=null)r.p(0) s.z.ci(0,s.cy) s.Sn(0)}, gpr:function(){return"TransitionRoute"}, j:function(a){return"TransitionRoute(animation: "+H.c(this.ch)+")"}} T.a7t.prototype={ $1:function(a){var s,r switch(a){case C.a7:case C.N:s=this.a s.mE(this.b,this.c.z.a) r=s.db if(r!=null){r.$0() s.db=null}break case C.aC:case C.as:break default:throw H.a(H.j(u.I))}}, $S:9} T.a7u.prototype={ $0:function(){this.b.eI(this.c) var s=this.a.a if(s!=null)s.p(0)}, $S:0} T.a7v.prototype={ $0:function(){var s,r=this.b r.mE(this.a.a.a,this.c.z.a) s=r.db if(s!=null){s.$0() r.db=null}}, $S:0} T.a7s.prototype={ $1:function(a){var s=this.a.cx,r=this.b if(s.c==r){s.sa9(0,C.by) if(r instanceof S.or)r.p(0)}}, $S:5} T.Gs.prototype={ gPq:function(){var s=this.eg$ return s!=null&&s.length!==0}} T.Mc.prototype={ nj:function(a,b){return T.wZ(this.c,t.z).gpb()}, bF:function(a){return K.qn(this.c,!1).NQ()}} T.AS.prototype={ cZ:function(a){return this.f!==a.f||this.r!==a.r||this.x!==a.x}} T.tO.prototype={ ah:function(){return new T.kv(O.Xk(!0,C.GJ.j(0)+" Focus Scope",!1),F.IV(0),C.k,this.$ti.h("kv<1>"))}} T.kv.prototype={ aC:function(){var s,r,q=this q.b_() s=H.b([],t.Eo) r=q.a.c.k1 if(r!=null)s.push(r) r=q.a.c.k2 if(r!=null)s.push(r) q.e=new B.oH(s) if(q.a.c.giV())q.a.c.a.y.o1(q.f)}, bd:function(a){var s=this s.bG(a) if(s.a.c.giV())s.a.c.a.y.o1(s.f)}, aG:function(){this.cq() this.d=null}, a_g:function(){this.Y(new T.acH(this))}, p:function(a){this.f.p(0) this.bh(0)}, gJm:function(){var s=this.a.c.k1 if((s==null?null:s.gbg(s))!==C.as){s=this.a.c.a s=s==null?null:s.dy.a s=s===!0}else s=!0 return s}, H:function(a,b){var s,r=this,q=null,p=r.a.c,o=p.giV(),n=r.a.c if(!n.gN6()){n=n.eg$ n=n!=null&&n.length!==0}else n=!0 s=r.a.c return K.p8(p.c,new T.acL(r),new T.AS(o,n,p,new T.qr(s.id,new S.qu(new T.kT(new T.acM(r),q),s.r2,q),q),q))}} T.acH.prototype={ $0:function(){this.a.d=null}, $S:0} T.acL.prototype={ $2:function(a,b){var s=this.a.a.c.c.a b.toString return new K.lB(b,s,null)}, $C:"$2", $R:2, $S:354} T.acM.prototype={ $1:function(a){var s,r=null,q=P.aj([C.G9,new T.Mc(a,new R.by(H.b([],t.ot),t.wS))],t.n,t.od),p=this.a,o=p.e if(o===$)o=H.e(H.t("_listenable")) s=p.d if(s==null)s=p.d=new T.he(new T.kT(new T.acJ(p),r),p.a.c.r1) return new U.fZ(q,E.ap8(L.ao7(!1,new T.he(K.p8(o,new T.acK(p),s),r),r,p.f),p.r),r)}, $S:355} T.acK.prototype={ $2:function(a,b){var s,r,q=this.a,p=q.a.c,o=p.k1 o.toString s=p.k2 s.toString r=p.a r=r==null?null:r.dy if(r==null)r=new B.cZ(!1,new P.a7(t.V),t.uh) return p.ua(a,o,s,K.p8(r,new T.acI(q),b))}, $C:"$2", $R:2, $S:157} T.acI.prototype={ $2:function(a,b){var s=this.a,r=s.gJm() s.f.sd0(!r) return new T.hP(r,null,b,null)}, $C:"$2", $R:2, $S:356} T.acJ.prototype={ $1:function(a){var s,r=this.a.a.c,q=r.k1 q.toString s=r.k2 s.toString return r.u8(a,q,s)}, $S:30} T.dE.prototype={ Y:function(a){var s=this.k4 if(s.gas()!=null){s=s.gas() if(s.a.c.giV()&&!s.gJm())s.a.c.a.y.o1(s.f) s.Y(a)}else a.$0()}, ua:function(a,b,c,d){return d}, kh:function(){var s=this s.Tp() s.k1=S.xD(T.d4.prototype.gcs.call(s,s)) s.k2=S.xD(T.d4.prototype.gDr.call(s))}, pA:function(){var s=this.k4 if(s.gas()!=null)this.a.y.o1(s.gas().f) return this.To()}, px:function(){var s=this.k4 if(s.gas()!=null)this.a.y.o1(s.gas().f) this.Tm()}, svt:function(a){var s,r=this if(r.id===a)return r.Y(new T.a_T(r,a)) s=r.k1 s.toString s.sa9(0,r.id?C.jk:T.d4.prototype.gcs.call(r,r)) s=r.k2 s.toString s.sa9(0,r.id?C.by:T.d4.prototype.gDr.call(r)) r.pg()}, h8:function(){var s=0,r=P.af(t.oj),q,p=this,o,n,m,l var $async$h8=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:p.k4.gas() o=P.bk(p.k3,!0,t.Ev),n=o.length,m=0 case 3:if(!(m")),!1,r,r,!1,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,C.xG,r,r,r):q}, LU:function(){var s=this return P.d9(function(){var r=0,q=1,p,o return function $async$LU(a,b){if(a===1){p=b r=q}while(true)switch(r){case 0:o=X.xj(s.gY_(),!1) s.rx=o r=2 return o case 2:s.gkm() o=X.xj(s.gY1(),!0) s.x1=o r=3 return o case 3:return P.d5() case 1:return P.d6(p)}}},t.Ms)}, j:function(a){return"ModalRoute("+this.b.j(0)+", animation: "+H.c(this.Q)+")"}} T.a_T.prototype={ $0:function(){this.a.id=this.b}, $S:0} T.a_S.prototype={ $0:function(){}, $S:0} T.xA.prototype={ gkr:function(){return!1}, gkm:function(){return!0}} T.tN.prototype={ h8:function(){var s=0,r=P.af(t.oj),q,p=this,o var $async$h8=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:o=p.eg$ if(o!=null&&o.length!==0){q=C.hG s=1 break}q=p.T1() s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$h8,r)}, lg:function(a){var s,r=this,q=r.eg$ if(q!=null&&q.length!==0){s=q.pop() s.b=null s.aeD() if(r.eg$.length===0)r.pg() return!1}r.Tn(a) return!0}} Q.IO.prototype={ H:function(a,b){var s,r,q,p,o,n=b.a0(t.w).f.f,m=n.d m===0 s=Math.max(H.B(n.a),0) r=this.d q=Math.max(H.B(r?n.b:0),0) p=Math.max(H.B(n.c),0) o=this.f return new T.ee(new V.X(s,q,p,Math.max(H.B(o?m:0),0)),F.aoJ(this.y,b,o,!0,!0,r),null)}} M.IT.prototype={ OT:function(){}, Ma:function(a,b){new G.yh(null,a,b,0).fk(b)}, Mb:function(a,b,c){new G.j0(null,c,a,b,0).fk(b)}, uG:function(a,b,c){new G.iR(null,c,0,a,b,0).fk(b)}, M9:function(a,b){new G.nT(null,a,b,0).fk(b)}, p8:function(){}, p:function(a){}, j:function(a){return"#"+Y.cf(this)}} M.le.prototype={ p8:function(){this.a.hI(0)}, gjj:function(){return!1}, ghA:function(){return!1}, geJ:function(){return 0}} M.YJ.prototype={ gjj:function(){return!1}, ghA:function(){return!1}, geJ:function(){return 0}, p:function(a){this.b.$0() this.ru(0)}} M.a42.prototype={ XL:function(a,b){var s,r,q=this if(b==null)return a if(a===0){if(q.d!=null)if(q.r==null){s=q.e s=b.a-s.a>5e4}else s=!1 else s=!1 if(s)q.r=0 return 0}else{s=q.r if(s==null)return a else{s+=a q.r=s r=q.d r.toString if(Math.abs(s)>r){q.r=null s=Math.abs(a) if(s>24)return a else return Math.min(r/3,s)*J.eo(a)}else return 0}}}, b5:function(a,b){var s,r,q,p,o=this o.x=b s=b.c s.toString r=s===0 if(!r)o.e=b.a q=b.a if(o.f)if(r)if(q!=null){r=o.e r=q.a-r.a>2e4}else r=!0 else r=!1 else r=!1 if(r)o.f=!1 p=o.XL(s,q) if(p===0)return s=o.a if(G.alq(s.c.a.c))p=-p s.CP(p>0?C.eF:C.eG) r=s.y r.toString s.wS(r-s.b.zZ(s,p))}, a9v:function(a,b){var s,r,q=this,p=b.b p.toString s=-p if(G.alq(q.a.c.a.c))s=-s q.x=b if(q.f){p=q.c r=Math.abs(s)>Math.abs(p)*0.5 if(J.eo(s)===J.eo(p)&&r)s+=p}q.a.hI(s)}, p:function(a){this.x=null this.b.$0()}, j:function(a){return"#"+Y.cf(this)}} M.VU.prototype={ Ma:function(a,b){new G.yh(t.uL.a(this.b.x),a,b,0).fk(b)}, Mb:function(a,b,c){new G.j0(t.zk.a(this.b.x),c,a,b,0).fk(b)}, uG:function(a,b,c){new G.iR(t.zk.a(this.b.x),c,0,a,b,0).fk(b)}, M9:function(a,b){var s=this.b.x new G.nT(s instanceof O.hK?s:null,a,b,0).fk(b)}, gjj:function(){return!0}, ghA:function(){return!0}, geJ:function(){return 0}, p:function(a){this.b=null this.ru(0)}, j:function(a){return"#"+Y.cf(this)+"("+H.c(this.b)+")"}} M.Dn.prototype={ geO:function(){var s=this.b return s===$?H.e(H.t("_controller")):s}, OT:function(){this.a.hI(this.geO().geJ())}, p8:function(){this.a.hI(this.geO().geJ())}, z8:function(){var s=this.geO().gbz() if(this.a.wS(s)!==0){s=this.a s.fR(new M.le(s))}}, z6:function(){this.a.hI(0)}, uG:function(a,b,c){new G.iR(null,c,this.geO().geJ(),a,b,0).fk(b)}, gjj:function(){return!0}, ghA:function(){return!0}, geJ:function(){return this.geO().geJ()}, p:function(a){this.geO().p(0) this.ru(0)}, j:function(a){return"#"+Y.cf(this)+"("+H.c(this.geO())+")"}} M.F6.prototype={ gFK:function(){var s=this.b return s===$?H.e(H.t("_completer")):s}, geO:function(){var s=this.c return s===$?H.e(H.t("_controller")):s}, z8:function(){if(this.a.wS(this.geO().gbz())!==0){var s=this.a s.fR(new M.le(s))}}, z6:function(){this.a.hI(this.geO().geJ())}, uG:function(a,b,c){new G.iR(null,c,this.geO().geJ(),a,b,0).fk(b)}, gjj:function(){return!0}, ghA:function(){return!0}, geJ:function(){return this.geO().geJ()}, p:function(a){this.gFK().ez(0) this.geO().p(0) this.ru(0)}, j:function(a){return"#"+Y.cf(this)+"("+H.c(this.geO())+")"}} Y.yd.prototype={ qH:function(a,b,c,d){var s,r=this if(b.a==null){s=$.iS.kb$ s=s.a.i(0,c)!=null||s.b.i(0,c)!=null}else s=!0 if(s){r.b.qH(a,b,c,d) return}s=r.a if(s.gaL(s)==null)return s=s.gaL(s) s.toString if(F.aAI(s)){$.bT.Do(new Y.a4_(r,a,b,c,d)) return}r.b.qH(a,b,c,d)}, BR:function(a,b,c){return this.b.BR(0,b,c)}, C5:function(a){return this.b.C5(a)}} Y.a4_.prototype={ $1:function(a){var s=this P.eV(new Y.a3Z(s.a,s.b,s.c,s.d,s.e))}, $S:2} Y.a3Z.prototype={ $0:function(){var s=this return s.a.qH(s.b,s.c,s.d,s.e)}, $C:"$0", $R:0, $S:0} K.IU.prototype={ pn:function(a,b,c,d){return new K.R2(this,d,a,b,c)}, LJ:function(a){return this.pn(!0,null,null,a)}, LR:function(a,b,c){return this.pn(a,b,c,!0)}, nY:function(a){return U.e4()}, a7A:function(a,b,c){switch(this.nY(a)){case C.z:case C.D:case C.C:case C.E:return b case C.I:case C.M:return L.aod(c,b,C.j) default:throw H.a(H.j(u.I))}}, u9:function(a,b,c){var s=null switch(this.nY(a)){case C.D:case C.C:case C.E:return E.aAi(b,c.b,C.aE,s,s,s,G.aij(),C.G,s,s,C.d_) case C.I:case C.M:case C.z:return b default:throw H.a(H.j(u.I))}}, u7:function(a,b,c){return this.a7A(a,b,c.a)}, vW:function(a){switch(this.nY(a)){case C.z:case C.C:return new K.a40() case C.I:case C.M:case C.D:case C.E:return new K.a41() default:throw H.a(H.j(u.I))}}, lV:function(a){switch(this.nY(a)){case C.z:case C.C:return C.na case C.I:case C.M:case C.D:case C.E:return C.oL default:throw H.a(H.j(u.I))}}, DX:function(a){return!1}, j:function(a){return"ScrollBehavior"}} K.a40.prototype={ $1:function(a){var s=a.gda(a),r=t.av return new R.pV(P.b6(20,null,!1,r),s,P.b6(20,null,!1,r))}, $S:357} K.a41.prototype={ $1:function(a){return new R.j8(a.gda(a),P.b6(20,null,!1,t.av))}, $S:112} K.R2.prototype={ u7:function(a,b,c){if(this.c)return this.a.u7(a,b,c) return b}, u9:function(a,b,c){if(this.b)return this.a.u9(a,b,c) return b}, pn:function(a,b,c,d){return new K.R2(this.a,d,a,b,c)}, LJ:function(a){return this.pn(!0,null,null,a)}, LR:function(a,b,c){return this.pn(a,b,c,!0)}, lV:function(a){var s=this.d return s==null?this.a.lV(a):s}, DX:function(a){var s=this return H.E(a.a)!==H.E(s.a)||a.b!==s.b||a.c!==s.c||a.d!=s.d||a.e!=s.e||!1}, vW:function(a){return this.a.vW(a)}, j:function(a){return"_WrappedScrollBehavior"}} K.ye.prototype={ cZ:function(a){var s=this.f,r=H.E(s),q=a.f if(r===H.E(q))s=s!==q&&s.DX(q) else s=!0 return s}} F.qX.prototype={ hq:function(a,b,c){return this.a7b(a,b,c)}, a7b:function(a,b,c){var s=0,r=P.af(t.H),q=this,p,o,n var $async$hq=P.a9(function(d,e){if(d===1)return P.ac(e,r) while(true)switch(s){case 0:n=H.b([],t.mo) for(p=q.d,o=0;o#"+Y.cf(this)+"("+C.b.bI(r,", ")+")"}} M.IX.prototype={ k_:function(){var s=this,r=null,q=s.gBm()?s.gkp():r,p=s.gBm()?s.gko():r,o=s.gN8()?s.gf2():r,n=s.gNa()?s.gqQ():r,m=s.glb() return new M.X0(q,p,o,n,m)}, gCc:function(){var s=this return s.gf2()s.gko()}, gL9:function(){var s=this return s.gf2()==s.gkp()||s.gf2()==s.gko()}, gAY:function(){var s=this return s.gqQ()-C.d.a6(s.gkp()-s.gf2(),0,s.gqQ())-C.d.a6(s.gf2()-s.gko(),0,s.gqQ())}} M.X0.prototype={ gkp:function(){var s=this.a s.toString return s}, gko:function(){var s=this.b s.toString return s}, gBm:function(){return this.a!=null&&this.b!=null}, gf2:function(){var s=this.c s.toString return s}, gN8:function(){return this.c!=null}, gqQ:function(){var s=this.d s.toString return s}, gNa:function(){return this.d!=null}, j:function(a){var s=this return"FixedScrollMetrics("+C.d.ba(Math.max(s.gf2()-s.gkp(),0),1)+"..["+C.d.ba(s.gAY(),1)+"].."+C.d.ba(Math.max(s.gko()-s.gf2(),0),1)+")"}, glb:function(){return this.e}} M.MN.prototype={} G.KD.prototype={} G.fH.prototype={ dl:function(a){this.Uj(a) a.push(this.a.j(0))}} G.yh.prototype={ dl:function(a){var s this.og(a) s=this.d if(s!=null)a.push(s.j(0))}} G.j0.prototype={ dl:function(a){var s this.og(a) a.push("scrollDelta: "+H.c(this.e)) s=this.d if(s!=null)a.push(s.j(0))}, gMe:function(){return this.d}} G.iR.prototype={ dl:function(a){var s,r=this r.og(a) a.push("overscroll: "+C.d.ba(r.e,1)) a.push("velocity: "+C.d.ba(r.f,1)) s=r.d if(s!=null)a.push(s.j(0))}} G.nT.prototype={ dl:function(a){var s this.og(a) s=this.d if(s!=null)a.push(s.j(0))}, gMe:function(){return this.d}} G.Kw.prototype={ dl:function(a){this.og(a) a.push("direction: "+this.d.j(0))}} G.u0.prototype={ nS:function(a){if(a instanceof N.a_&&t.NW.b(a.gD()))++this.cb$ return this.Eo(a)}, dl:function(a){var s this.En(a) s="depth: "+this.cb$+" (" a.push(s+(this.cb$===0?"local":"remote")+")")}} L.IY.prototype={ pe:function(a){var s=this.a s=s==null?null:s.pa(a) return s==null?a:s}, zZ:function(a,b){var s=this.a if(s==null)return b return s.zZ(a,b)}, o4:function(a){var s,r=this.a if(r==null){r=a.y r.toString if(r===0){r=a.f r.toString s=a.r s.toString s=r!==s r=s}else r=!0 return r}return r.o4(a)}, OC:function(a,b,c){var s=this.a if(s==null){$.D.toString s=$.b4().gij() return Math.abs(a)>Math.max(Math.abs(s.a),Math.abs(s.b))}return s.OC(a,b,c)}, p7:function(a,b){var s=this.a if(s==null)return 0 return s.p7(a,b)}, tX:function(a,b,c,d){var s=this.a if(s==null){s=b.c s.toString return s}return s.tX(a,b,c,d)}, uq:function(a,b){var s=this.a if(s==null)return null return s.uq(a,b)}, gwu:function(){var s=this.a s=s==null?null:s.gwu() return s==null?$.at9():s}, gvS:function(){var s=this.a s=s==null?null:s.gvS() return s==null?$.ata():s}, gBY:function(){var s=this.a s=s==null?null:s.gBY() return s==null?18:s}, gvn:function(){var s=this.a s=s==null?null:s.gvn() return s==null?50:s}, gBW:function(){var s=this.a s=s==null?null:s.gBW() return s==null?8000:s}, A9:function(a){var s=this.a if(s==null)return 0 return s.A9(a)}, gAR:function(){var s=this.a return s==null?null:s.gAR()}, j:function(a){var s=this.a if(s==null)return"ScrollPhsyics" return"ScrollPhysics -> "+s.j(0)}} L.HU.prototype={ pa:function(a){return new L.HU(this.pe(a))}, tX:function(a,b,c,d){var s,r,q,p,o,n,m,l if(d!==0){s=!1 r=!1}else{s=!0 r=!0}q=c.a q.toString p=b.a p.toString if(q===p){o=c.b o.toString n=b.b n.toString n=o===n o=n}else o=!1 if(o)s=!1 o=c.c o.toString n=b.c n.toString if(o!==n){if(isFinite(q)){n=c.b n.toString if(isFinite(n))if(isFinite(p)){n=b.b n.toString n=isFinite(n)}else n=!1 else n=!1}else n=!1 if(n)r=!1 s=!1}n=om}else m=!0 if(m)r=!1 if(s){if(n)return p-(q-o) q=c.b q.toString if(o>q){p=b.b p.toString return p+(o-q)}}l=this.T3(a,b,c,d) if(r){q=b.b q.toString l=J.aW(l,p,q)}return l}} L.Dv.prototype={ pa:function(a){return new L.Dv(this.pe(a))}, zZ:function(a,b){var s,r,q,p,o,n,m if(!a.gCc())return b s=a.f s.toString r=a.y r.toString q=Math.max(s-r,0) s=a.r s.toString p=Math.max(r-s,0) o=Math.max(q,p) if(!(q>0&&b<0))n=p>0&&b>0 else n=!0 s=a.z if(n){s.toString m=0.52*Math.pow(1-(o-Math.abs(b))/s,2)}else{s.toString m=0.52*Math.pow(1-o/s,2)}return J.eo(b)*L.axE(o,Math.abs(b),m)}, p7:function(a,b){return 0}, uq:function(a,b){var s,r,q,p,o,n,m,l=this.gvS() if(Math.abs(b)>=l.c||a.gCc()){s=this.gwu() r=a.y r.toString q=a.f q.toString p=a.r p.toString o=new Y.Tk(q,p,s,l) if(rp){o.f=new M.nU(p,M.PN(s,r-p,b),C.cI) o.r=-1/0}else{o.e=new D.XF(0.135,Math.log(0.135),r,b,C.cI) n=o.gml().gB7() if(b>0&&n>p){o.r=o.gml().P4(p) r=o.gml() q=o.gp_() m=r.e r=r.b H.B(q) o.f=new M.nU(p,M.PN(s,p-p,Math.min(m*Math.pow(r,q),5000)),C.cI)}else if(b<0&&nr)q=r else q=o r=a.f r.toString if(s0){s=a.y s.toString r=a.r r.toString r=s>=r s=r}else s=!1 if(s)return o if(b<0){s=a.y s.toString r=a.f r.toString r=s<=r s=r}else s=!1 if(s)return o s=a.y s.toString s=new Y.Uc(s,b,n) p=s.Jw(b) r=$.asR() s.e=C.d.aO(1000*Math.exp(p/(r-1))) s.f=778.3530259679998*Math.exp(r/(r-1)*s.Jw(b)) return s}} L.uu.prototype={ pa:function(a){return new L.uu(this.pe(a))}, o4:function(a){return!0}} A.yg.prototype={ j:function(a){return this.b}} A.j_.prototype={ EN:function(a,b,c,d,e){var s,r,q,p=this if(d!=null)p.p2(d) if(p.y==null){s=p.c r=s.c r.toString r=S.aoV(r) if(r==null)q=null else{s=s.c s.toString q=r.adr(s)}if(q!=null)p.y=q}}, gkp:function(){var s=this.f s.toString return s}, gko:function(){var s=this.r s.toString return s}, gBm:function(){return this.f!=null&&this.r!=null}, gf2:function(){var s=this.y s.toString return s}, gN8:function(){return this.y!=null}, gqQ:function(){var s=this.z s.toString return s}, gNa:function(){return this.z!=null}, p2:function(a){var s=this,r=a.f if(r!=null&&a.r!=null){r.toString s.f=r r=a.r r.toString s.r=r}r=a.y if(r!=null)s.y=r r=a.z if(r!=null)s.z=r s.dy=a.dy a.dy=null if(H.E(a)!==H.E(s))s.dy.OT() s.c.DI(s.dy.gjj()) s.dx.sm(0,s.dy.ghA())}, QB:function(a){var s,r,q,p=this,o=p.y o.toString if(a!==o){s=p.b.p7(p,a) o=p.y o.toString r=a-s p.y=r if(r!==o){p.zC() p.Ea() r=p.y r.toString p.uF(r-o)}if(s!==0){o=p.dy o.toString r=p.k_() q=$.D.A$.Q.i(0,p.c.z) q.toString o.uG(r,q,s) return s}}return 0}, a8z:function(a){var s=this.y s.toString this.y=s+a this.ch=!0}, MR:function(a){var s=this,r=s.y r.toString s.x=a-r s.y=a s.zC() s.Ea() $.bT.ch$.push(new A.a43(s))}, u_:function(a){if(this.z!=a){this.z=a this.ch=!0}return!0}, mR:function(a,b){var s,r,q=this if(!B.CL(q.f,a,0.001)||!B.CL(q.r,b,0.001)||q.ch){q.f=a q.r=b s=q.Q?q.k_():null q.ch=!1 q.cx=!0 if(q.Q){r=q.cy r.toString s.toString r=!q.a8A(r,s)}else r=!1 if(r)return!1 q.Q=!0}if(q.cx){q.T6() q.c.Qr(q.b.o4(q)) q.cx=!1}q.cy=q.k_() return!0}, a8A:function(a,b){var s=this,r=s.b.tX(s.dy.ghA(),b,a,s.dy.geJ()),q=s.y q.toString if(r!==q){s.y=r return!1}return!0}, p8:function(){this.dy.p8() this.zC()}, zC:function(){var s,r,q,p,o,n=this,m=n.c switch(m.a.c){case C.A:s=C.ds r=C.dr break case C.P:s=C.dt r=C.du break case C.y:s=C.dr r=C.ds break case C.L:s=C.du r=C.dt break default:throw H.a(H.j(u.I))}q=P.aZ(t._S) p=n.y p.toString o=n.f o.toString if(p>o)q.B(0,r) p=n.y p.toString o=n.r o.toString if(pn)p=n break default:throw H.a(H.j(u.I))}n=o.y n.toString if(p===n)return P.dD(null,t.H) if(e.a===0){o.iX(p) return P.dD(null,t.H)}return o.hq(p,d,e)}, qg:function(a,b,c,d){var s,r=this.f r.toString s=this.r s.toString b=J.aW(b,r,s) return this.Tr(0,b,c,d)}, fR:function(a){var s,r,q=this,p=q.dy if(p!=null){s=p.gjj() r=q.dy.ghA() if(r&&!a.ghA())q.AF() q.dy.p(0)}else{r=!1 s=!1}q.dy=a if(s!==a.gjj())q.c.DI(q.dy.gjj()) q.dx.sm(0,q.dy.ghA()) if(!r&&q.dy.ghA())q.AK()}, AK:function(){var s=this.dy s.toString s.Ma(this.k_(),$.D.A$.Q.i(0,this.c.z))}, uF:function(a){var s,r,q=this.dy q.toString s=this.k_() r=$.D.A$.Q.i(0,this.c.z) r.toString q.Mb(s,r,a)}, AF:function(){var s,r,q,p=this,o=p.dy o.toString s=p.k_() r=p.c q=$.D.A$.Q.i(0,r.z) q.toString o.M9(s,q) q=p.y q.toString r.e.sm(0,q) $.lC.goY().aae() o=r.c o.toString o=S.aoV(o) if(o!=null){s=r.c s.toString r=p.y r.toString if(o.a==null)o.a=P.y(t.K,t.z) s=o.F3(s) if(s.length!==0)o.a.n(0,new S.BC(s),r)}}, p:function(a){var s=this.dy if(s!=null)s.p(0) this.dy=null this.hb(0)}, dl:function(a){var s,r,q=this q.Tq(a) s=q.f s="range: "+H.c(s==null?null:C.d.ba(s,1))+".." r=q.r a.push(s+H.c(r==null?null:C.d.ba(r,1))) s=q.z a.push("viewport: "+H.c(s==null?null:C.d.ba(s,1)))}} A.a43.prototype={ $1:function(a){this.a.x=0}, $S:2} A.Pn.prototype={} R.qY.prototype={ EO:function(a,b,c,d,e,f){var s=this if(s.y==null&&c!=null)s.y=c if(s.dy==null)s.fR(new M.le(s))}, glb:function(){return this.c.a.c}, p2:function(a){var s,r=this r.T4(a) r.dy.a=r r.fy=a.fy s=a.go if(s!=null){r.go=s s.a=r a.go=null}}, fR:function(a){var s,r=this r.fx=0 r.T7(a) s=r.go if(s!=null)s.p(0) r.go=null if(!r.dy.ghA())r.CP(C.dn)}, hI:function(a){var s,r,q,p=this,o=p.b.uq(p,a) if(o!=null){s=new M.Dn(p) r=G.aj0(null,0,p.c) r.dm() q=r.bq$ q.b=!0 q.a.push(s.gz7()) r.fB(0) r.Q=C.aw r.JA(o).a.a.f9(s.gz5()) s.b=r p.fR(s)}else p.fR(new M.le(p))}, CP:function(a){var s,r,q,p=this if(p.fy===a)return p.fy=a s=p.k_() r=p.c.z q=$.D.A$.Q.i(0,r) q.toString new G.Kw(a,s,q,0).fk($.D.A$.Q.i(0,r))}, hq:function(a,b,c){var s,r,q=this,p=q.y p.toString if(B.CL(a,p,q.b.gvS().a)){q.iX(a) return P.dD(null,t.H)}p=q.y p.toString s=new M.F6(q) s.b=new P.aH(new P.a1($.R,t.U),t.gR) p=G.aj0("DrivenScrollActivity",p,q.c) p.dm() r=p.bq$ r.b=!0 r.a.push(s.gz7()) p.Q=C.aw p.jp(a,b,c).a.a.f9(s.gz5()) if(s.c===$)s.c=p else H.e(H.lj("_controller")) q.fR(s) return s.gFK().gMW()}, iX:function(a){var s,r,q=this q.fR(new M.le(q)) s=q.y s.toString if(s!==a){q.MR(a) q.AK() r=q.y r.toString q.uF(r-s) q.AF()}q.hI(0)}, p:function(a){var s=this.go if(s!=null)s.p(0) this.go=null this.T9(0)}} Y.Tk.prototype={ gml:function(){var s=this.e return s===$?H.e(H.t("_frictionSimulation")):s}, gp_:function(){var s=this.r return s===$?H.e(H.t("_springTime")):s}, zf:function(a){var s,r,q=this if(a>q.gp_()){s=q.gp_() s.toString q.x=isFinite(s)?q.gp_():0 r=q.f if(r===$)r=H.e(H.t("_springSimulation"))}else{q.x=0 r=q.gml()}r.a=q.a return r}, en:function(a,b){return this.zf(b).en(0,b-this.x)}, hu:function(a,b){return this.zf(b).hu(0,b-this.x)}, lr:function(a){return this.zf(a).lr(a-this.x)}, j:function(a){return"BouncingScrollSimulation(leadingExtent: "+H.c(this.b)+", trailingExtent: "+H.c(this.c)+")"}} Y.Uc.prototype={ grP:function(){var s=this.e return s===$?H.e(H.t("_duration")):s}, gGe:function(){var s=this.f return s===$?H.e(H.t("_distance")):s}, Jw:function(a){return Math.log(0.35*Math.abs(a)/778.3530259679998)}, en:function(a,b){var s,r=this if(b===0)return r.b s=Y.aqp(b,r.grP()).b if(s===$)s=H.e(H.t("_distanceCoef")) return r.b+s*r.gGe()*J.eo(r.c)}, hu:function(a,b){var s=this if(b===0)return s.c return Y.aqp(b,s.grP()).gKE()*s.gGe()/s.grP()*J.eo(s.c)*1000}, lr:function(a){return a*1000>=this.grP()}} Y.acT.prototype={ gKE:function(){var s=this.a return s===$?H.e(H.t("_velocityCoef")):s}} B.J_.prototype={ j:function(a){return this.b}} B.IZ.prototype={ a7z:function(a,b,c,d){return new Q.Ja(c,b,this.dy,d,null)}, H:function(a,b){var s=this,r=s.a7u(b),q=H.b([new T.Jt(s.fx,r,null)],t.J),p=T.ase(b,s.c,!1),o=s.f,n=o?E.k3(b):s.e,m=F.akm(p,n,s.cy,!1,s.r,s.dx,null,s.cx,new B.a44(s,p,q)),l=o&&n!=null?E.ap9(m):m if(s.db===C.BE)return new U.fz(l,new B.a45(b),null,t.kj) else return l}} B.a44.prototype={ $2:function(a,b){return this.a.a7z(a,b,this.b,this.c)}, $C:"$2", $R:2, $S:359} B.a45.prototype={ $1:function(a){var s=L.ajC(this.a) if(a.d!=null&&s.gcn())s.Pd() return!1}, $S:360} B.Dy.prototype={} B.Gq.prototype={ a7u:function(a){return new G.Js(this.aN,null)}} F.adZ.prototype={ $2:function(a,b){if(!a.a)a.T(0,b)}, $S:46} F.yi.prototype={ ah:function(){var s=null,r=t.A return new F.yj(new F.Pa(new P.a7(t.V)),new N.aY(s,r),new N.aY(s,t.hA),new N.aY(s,r),C.kY,s,P.y(t.yb,t.M),s,!0,s,s,C.k)}, aes:function(a,b){return this.f.$2(a,b)}} F.u1.prototype={ cZ:function(a){return this.r!=a.r}} F.yj.prototype={ gov:function(){var s=this.f return s===$?H.e(H.t("_configuration")):s}, goB:function(){var s=this.a.d if(s==null){s=this.x s.toString}return s}, Km:function(){var s,r,q,p=this,o=p.a.ch if(o==null){o=p.c o.toString o=K.akl(o)}p.f=o o=p.gov() s=p.c s.toString s=o.lV(s) p.r=s o=p.a r=o.e if(r!=null)p.r=new L.uu(r.pe(s)) else{o=o.ch if(o!=null){s=p.c s.toString p.r=o.lV(s).pa(p.r)}}q=p.d if(q!=null){p.goB().pv(0,q) P.eV(q.gdJ(q))}o=p.goB() s=p.r s.toString p.d=o.LV(s,p,q) s=p.goB() o=p.d o.toString s.ag(o)}, j6:function(a,b){var s,r=this.e this.lH(r,"offset") r=r.e if(r!=null){s=this.d s.toString if(b)s.y=r else s.iX(r)}}, aC:function(){if(this.a.d==null)this.x=F.IV(0) this.b_()}, aG:function(){this.Km() this.Um()}, a5b:function(a){var s,r,q,p=this,o=null,n=p.a,m=n.e if(m==null){n=n.ch if(n==null)m=o else{s=p.c s.toString s=n.lV(s) m=s}}r=a.e if(r==null){n=a.ch if(n==null)r=o else{s=p.c s.toString s=n.lV(s) r=s}}do{n=m==null s=n?o:H.E(m) q=r==null if(s!=(q?o:H.E(r)))return!0 m=n?o:m.a r=q?o:r.a}while(m!=null||r!=null) n=p.a.d n=n==null?o:H.E(n) s=a.d return n!=(s==null?o:H.E(s))}, bd:function(a){var s,r,q=this q.Un(a) s=q.a.d r=a.d if(s!=r){if(r==null){s=q.x s.toString r=q.d r.toString s.pv(0,r) q.x.p(0) q.x=null}else{s=q.d s.toString r.pv(0,s) if(q.a.d==null)q.x=F.IV(0)}s=q.goB() r=q.d r.toString s.ag(r)}if(q.a5b(a))q.Km()}, p:function(a){var s,r=this,q=r.a.d if(q!=null){s=r.d s.toString q.pv(0,s)}else{q=r.x if(q!=null){s=r.d s.toString q.pv(0,s)}q=r.x if(q!=null)q.p(0)}r.d.p(0) r.e.p(0) r.Uo(0)}, Qr:function(a){var s,r,q=this if(a===q.cy)s=!a||G.bW(q.a.c)===q.db else s=!1 if(s)return if(!a){q.ch=C.kY q.J6()}else{switch(G.bW(q.a.c)){case C.n:q.ch=P.aj([C.ii,new D.cn(new F.a47(),new F.a48(q),t.ok)],t.n,t.xR) break case C.o:q.ch=P.aj([C.eM,new D.cn(new F.a49(),new F.a4a(q),t.Uv)],t.n,t.xR) break default:throw H.a(H.j(u.I))}a=!0}q.cy=a q.db=G.bW(q.a.c) s=q.z if(s.gas()!=null){s=s.gas() s.zj(q.ch) if(!s.a.f){r=s.c.gD() r.toString t.Wx.a(r) s.e.A0(r)}}}, DI:function(a){var s,r=this if(r.cx===a)return r.cx=a s=r.Q if($.D.A$.Q.i(0,s)!=null){s=$.D.A$.Q.i(0,s).gD() s.toString t.f1.a(s).sNf(r.cx)}}, a0g:function(a){var s=this.d,r=s.dy.geJ(),q=new M.YJ(this.gZh(),s) s.fR(q) s.fx=r this.dy=q}, a4U:function(a){var s,r,q=this.d,p=q.b,o=p.A9(q.fx) p=p.gAR() s=p==null?null:0 r=new M.a42(q,this.gZf(),o,p,a.a,o!==0,s,a) q.fR(new M.VU(r,q)) this.dx=q.go=r}, a4V:function(a){var s=this.dx if(s!=null)s.b5(0,a)}, a4T:function(a){var s=this.dx if(s!=null)s.a9v(0,a)}, J6:function(){var s=this.dy if(s!=null)s.a.hI(0) s=this.dx if(s!=null)s.a.hI(0)}, Zi:function(){this.dy=null}, Zg:function(){this.dx=null}, JM:function(a){var s,r=this.d,q=r.y q.toString s=r.f s.toString s=Math.max(q+a,s) r=r.r r.toString return Math.min(s,r)}, Io:function(a){var s=G.bW(this.a.c)===C.o?a.gwc().a:a.gwc().b return G.alq(this.a.c)?s*-1:s}, a44:function(a){var s,r,q,p,o=this if(t.Mj.b(a)&&o.d!=null){s=o.r if(s!=null){r=o.d r.toString r=!s.o4(r) s=r}else s=!1 if(s)return q=o.Io(a) p=o.JM(q) if(q!==0){s=o.d.y s.toString s=p!==s}else s=!1 if(s)$.f1.r2$.nH(0,a,o.ga1r())}}, a1s:function(a){var s,r,q,p,o,n=this,m=n.Io(a),l=n.JM(m) if(m!==0){s=n.d.y s.toString s=l!==s}else s=!1 if(s){s=n.d r=s.y r.toString q=s.f q.toString q=Math.max(r+m,q) p=s.r p.toString o=Math.min(q,p) if(o!==r){s.fR(new M.le(s)) s.CP(-m>0?C.eF:C.eG) r=s.y r.toString s.MR(o) s.AK() q=s.y q.toString s.uF(q-r) s.AF() s.hI(0)}}}, H:function(a,b){var s,r,q,p,o,n=this,m=null,l=n.d l.toString s=n.ch r=n.a q=r.x p=new F.u1(n,l,T.a_j(C.d2,new D.k5(T.cu(m,new T.hP(n.cx,!1,r.aes(b,l),n.Q),!1,m,m,!q,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m,m),s,C.bh,q,m,n.z),m,m,n.ga43(),m),m) l=n.a if(!l.x){s=n.d s.toString n.r.toString p=new F.Po(s,!0,l.y,p,n.y)}o=new F.a46(l.c,n.goB()) return n.gov().u9(b,n.gov().u7(b,p,o),o)}, gf4:function(){return this.a.Q}} F.a47.prototype={ $0:function(){return O.aq2(null)}, $C:"$0", $R:0, $S:120} F.a48.prototype={ $1:function(a){var s,r,q=this.a a.Q=q.gHd() a.ch=q.gJ8() a.cx=q.gJ9() a.cy=q.gJ7() a.db=q.gJ5() s=q.r a.dx=s==null?null:s.gBY() s=q.r a.dy=s==null?null:s.gvn() s=q.r a.fr=s==null?null:s.gBW() s=q.gov() r=q.c r.toString a.fx=s.vW(r) a.z=q.a.z}, $S:115} F.a49.prototype={ $0:function(){return O.FS(null,null)}, $C:"$0", $R:0, $S:86} F.a4a.prototype={ $1:function(a){var s,r,q=this.a a.Q=q.gHd() a.ch=q.gJ8() a.cx=q.gJ9() a.cy=q.gJ7() a.db=q.gJ5() s=q.r a.dx=s==null?null:s.gBY() s=q.r a.dy=s==null?null:s.gvn() s=q.r a.fr=s==null?null:s.gBW() s=q.gov() r=q.c r.toString a.fx=s.vW(r) a.z=q.a.z}, $S:85} F.a46.prototype={} F.Po.prototype={ aM:function(a){var s=this.e,r=new F.P3(s,!0,this.r,null) r.gav() r.gaF() r.dy=!1 r.sbc(null) s=s.P$ s.bQ(s.c,new B.bn(r.gNN()),!1) return r}, aP:function(a,b){b.sa77(!0) b.sbB(0,this.e) b.sQm(this.r)}} F.P3.prototype={ sbB:function(a,b){var s,r=this,q=r.G if(b==q)return s=r.gNN() q.T(0,s) r.G=b q=b.P$ q.bQ(q.c,new B.bn(s),!1) r.ao()}, sa77:function(a){return}, sQm:function(a){if(a==this.aJ)return this.aJ=a this.ao()}, eA:function(a){var s,r,q=this q.fC(a) a.a=!0 if(q.G.Q){a.b6(C.BX,!0) s=q.G r=s.y r.toString a.aA=r a.d=!0 r=s.r r.toString a.bi=r s=s.f s.toString a.cv=s a.sQh(q.aJ)}}, mS:function(a,b,c){var s,r,q,p,o,n,m,l=this if(c.length!==0){s=C.b.gI(c).id s=!(s!=null&&s.C(0,C.m_))}else s=!0 if(s){l.EE(a,b,c) return}s=l.br if(s==null)s=l.br=A.J4(null,l.go5()) s.sNA(a.cy||a.cx) s.sb8(0,a.x) s=l.br s.toString r=t.QF q=H.b([s],r) p=H.b([],r) for(s=c.length,o=null,n=0;n>>24&255)/255*r.gm(r))),s.gm(s)>>>16&255,s.gm(s)>>>8&255,s.gm(s)&255)) return q}, Ie:function(a){var s,r,q,p=this if(a){s=H.aF() s=s?H.b_():new H.aR(new H.aT()) r=p.c q=p.f s.sap(0,P.aI(C.d.aO(255*((r.gm(r)>>>24&255)/255*q.gm(q))),r.gm(r)>>>16&255,r.gm(r)>>>8&255,r.gm(r)&255)) s.sdf(0,C.ab) s.shL(1) return s}s=H.aF() s=s?H.b_():new H.aR(new H.aT()) r=p.b q=p.f s.sap(0,P.aI(C.d.aO(255*((r.gm(r)>>>24&255)/255*q.gm(q))),r.gm(r)>>>16&255,r.gm(r)>>>8&255,r.gm(r)&255)) return s}, a3y:function(){return this.Ie(!1)}, JU:function(){var s,r,q,p,o,n,m,l,k,j=this,i=j.cx.gAY(),h=j.cy h=h===C.y||h===C.A s=j.z h=h?s.gcA(s)+s.gcH(s):s.gi8() s=j.cx r=s.b r.toString q=s.a q.toString s=s.d s.toString p=j.cy p=p===C.y||p===C.A o=j.z p=p?o.gcA(o)+o.gcH(o):o.gi8() n=C.d.a6((i-h)/(r-q+s-p),0,1) m=Math.max(Math.min(j.gfO(),j.ch),j.gfO()*n) p=j.cx.gAY() s=j.cx.d s.toString l=Math.min(j.Q,j.gfO()) i=j.cy i=i===C.A||i===C.L h=j.cx if((i?Math.max(h.gko()-h.gf2(),0):Math.max(h.gf2()-h.gkp(),0))>0){i=j.cy i=i===C.A||i===C.L h=j.cx h=(i?Math.max(h.gf2()-h.gkp(),0):Math.max(h.gko()-h.gf2(),0))>0 i=h}else i=!1 k=i?l:l*(1-C.d.a6(1-p/s,0,0.2)/0.2) return C.d.a6(m,k,j.gfO())}, p:function(a){this.f.T(0,this.gcL()) this.hb(0)}, gfO:function(){var s,r,q,p=this,o=p.cx.d o.toString s=p.r r=p.cy r=r===C.y||r===C.A q=p.z r=r?q.gcA(q)+q.gcH(q):q.gi8() return o-2*s-r}, aD:function(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g=this,f=null if(g.cy!=null)if(g.cx!=null){s=g.f s=J.d(s.gm(s),0)}else s=!0 else s=!0 if(s)return s=g.cx.d s.toString r=g.cy r=r===C.y||r===C.A q=g.z if(s<=(r?q.gcA(q)+q.gcH(q):q.gi8())||g.gfO()<=0)return s=g.cy s=s===C.y||s===C.A r=g.z p=s?r.b:r.a o=g.JU() s=g.cx r=s.b r.toString q=s.a q.toString n=r-q if(n>0){s=s.c s.toString m=C.d.a6((s-q)/n,0,1)}else m=0 s=g.cy s=s===C.A||s===C.L?1-m:m g.dy=s*(g.gfO()-o)+g.r+p s=g.cx.b s.toString if(s==1/0||s==-1/0)return s=g.cy s.toString switch(s){case C.y:s=g.e l=new P.Q(s,o) k=new P.Q(s+2*g.x,g.gfO()) s=g.d r=g.x q=g.z j=s===C.p?r+q.a:b.a-g.e-r-q.c i=g.gjE() h=new P.m(j-g.x,0) break case C.A:s=g.e l=new P.Q(s,o) k=new P.Q(s+2*g.x,g.gfO()) s=g.d r=g.x q=g.z j=s===C.p?r+q.a:b.a-g.e-r-q.c i=g.gjE() h=new P.m(j-g.x,0) break case C.L:l=new P.Q(o,g.e) j=g.gjE() i=b.b-g.e-g.x-g.z.d s=g.gfO() r=g.e q=g.x k=new P.Q(s,r+2*q) h=new P.m(0,i-q) break case C.P:l=new P.Q(o,g.e) k=new P.Q(g.gfO(),g.e+2*g.x) j=g.gjE() s=b.b r=g.e q=g.x i=s-r-q-g.z.d h=new P.m(0,i-q) break default:H.e(H.j(u.I)) h=f k=h l=k i=l j=i}s=h.a r=h.b q=new P.x(s,r,s+k.a,r+k.b) g.dx=q a.ck(0,q,g.a3y()) a.hs(0,h,new P.m(s,r+g.gfO()),g.Ie(!0)) r=g.db=new P.x(j,i,j+l.a,i+l.b) s=g.y if(s==null)a.ck(0,r,g.gId()) else a.ct(0,P.xE(r,s),g.gId()) return f}, Nd:function(a,b){var s,r,q=this if(q.db==null)return!1 s=q.f if(J.d(s.gm(s),0))return!1 r=q.dx if(r==null){s=q.db s.toString r=s}switch(b){case C.an:return r.ka(P.k6(q.db.gbn(),24)).C(0,a) case C.ap:case C.aJ:case C.bq:case C.aU:return r.C(0,a) default:throw H.a(H.j(u.I))}}, Ne:function(a,b){var s,r=this if(r.db==null)return!1 s=r.f if(J.d(s.gm(s),0))return!1 switch(b){case C.an:s=r.db return s.ka(P.k6(s.gbn(),24)).C(0,a) case C.ap:case C.aJ:case C.bq:case C.aU:return r.db.C(0,a) default:throw H.a(H.j(u.I))}}, ne:function(a){var s if(this.db==null)return null s=this.f if(J.d(s.gm(s),0))return!1 s=this.db s.toString a.toString return s.C(0,a)}, eq:function(a){var s=this return!J.d(s.a,a.a)||!J.d(s.b,a.b)||!J.d(s.c,a.c)||s.d!=a.d||s.e!=a.e||s.f!=a.f||s.r!==a.r||s.x!==a.x||!J.d(s.y,a.y)||s.Q!==a.Q||!s.z.k(0,a.z)||s.ch!==a.ch}, wn:function(a){return!1}, grf:function(){return null}} E.qJ.prototype={ ah:function(){return E.aAj(t.mz)}, C4:function(a){return this.ch.$1(a)}} E.iY.prototype={ gju:function(){var s=this.r return s===$?H.e(H.t("_fadeoutAnimationController")):s}, gfz:function(){var s=this.Q return s===$?H.e(H.t("scrollbarPainter")):s}, gwp:function(){var s=this.a.e return s===!0}, guK:function(){this.a.toString return!0}, aC:function(){var s,r,q=this,p=null q.b_() q.r=G.cl(p,q.a.y,0,p,1,p,q) s=q.x=S.cy(C.al,q.gju(),p) r=q.a r=r.r if(r==null)r=6 if(s===$)s=H.e(H.t("_fadeoutOpacityAnimation")) r=new E.r_(C.fz,C.aP,C.aP,r,s,C.aF,18,new P.a7(t.V)) s.aQ(0,r.gcL()) if(q.Q===$)q.Q=r else H.e(H.lj("scrollbarPainter"))}, aG:function(){this.TM() this.HY()}, HY:function(){$.D.ch$.push(new E.a1X(this))}, qM:function(){var s,r=this,q=r.gfz() r.a.toString q.sap(0,C.fz) s=r.c.a0(t.I) s.toString q.sbt(0,s.f) s=r.a.r q.sCv(s==null?6:s) q.sqB(r.a.f) q.sek(0,r.c.a0(t.w).f.f)}, bd:function(a){var s,r=this r.bG(a) s=r.a.e if(s!=a.e)if(s===!0){r.HY() s=r.gju() s.Q=C.aw s.jp(1,C.ah,null)}else r.gju().cT(0)}, Kr:function(a){var s,r,q,p=C.b.gc5(this.e.d),o=this.gfz(),n=o.cx,m=n.b m.toString n=n.a n.toString s=o.gfO() o=o.JU() r=p.y r.toString q=(m-n)*a/(s-o)+r if(q!==r)p.iX(q-p.b.p7(p,q))}, tm:function(){var s,r=this if(!r.gwp()){s=r.f if(s!=null)s.aH(0) r.f=P.ci(r.a.z,new E.a1W(r))}}, kF:function(){var s=this.e.d if(s.length!==0)return G.bW(C.b.gc5(s).glb()) return null}, v3:function(){if(this.kF()==null)return var s=this.f if(s!=null)s.aH(0)}, v5:function(a){var s,r=this,q=r.a.d if(q==null){q=r.c q.toString q=E.k3(q)}r.e=q s=r.kF() if(s==null)return q=r.f if(q!=null)q.aH(0) r.gju().cm(0) switch(s){case C.n:r.d=a.b break case C.o:r.d=a.a break default:throw H.a(H.j(u.I))}}, aaT:function(a){var s,r,q=this,p=q.kF() if(p==null)return switch(p){case C.n:s=a.b r=q.d r.toString q.Kr(s-r) q.d=s break case C.o:s=a.a r=q.d r.toString q.Kr(s-r) q.d=s break default:throw H.a(H.j(u.I))}}, v4:function(a,b){var s=this if(s.kF()==null)return s.tm() s.e=s.d=null}, a2a:function(a){var s,r,q=this,p=q.a.d if(p==null){p=q.c p.toString p=E.k3(p)}q.e=p p=C.b.gc5(p.d).c p=$.D.A$.Q.i(0,p.z) p.toString p=F.j1(p) if(p!=null)p.a.toString p=q.e p=C.b.gc5(p.d).z p.toString s=0.8*p switch(C.b.gc5(q.e.d).c.a.c){case C.A:if(a.c.b>q.gfz().gjE())s=-s break case C.y:if(a.c.bq.gfz().gjE())s=-s break default:throw H.a(H.j(u.I))}p=C.b.gc5(q.e.d) r=C.b.gc5(q.e.d).y r.toString p.qg(0,r+s,C.fI,C.at)}, a1C:function(a){var s,r,q,p=this if(!p.a.C4(a))return!1 s=a.a r=s.b r.toString q=s.a q.toString if(r<=q)return!1 if(a instanceof G.j0||a instanceof G.iR){if(p.gju().gmF()!==C.aC)p.gju().cm(0) r=p.f if(r!=null)r.aH(0) r=p.gfz() r.cx=s r.cy=s.e r.aa()}else if(a instanceof G.nT)if(p.d==null)p.tm() return!1}, ga_m:function(){var s,r=this,q=P.y(t.n,t.xR),p=r.a.d if(p==null){s=r.c s.toString p=E.k3(s)}if(p==null||!r.guK())return q q.n(0,C.GK,new D.cn(new E.a1S(r),new E.a1T(r),t.ff)) q.n(0,C.GL,new D.cn(new E.a1U(r),new E.a1V(r),t.Bk)) return q}, NC:function(a,b){var s,r=this.y if($.D.A$.Q.i(0,r)==null)return!1 s=E.ala(r,a) return this.gfz().Nd(s,b)}, Bg:function(a){var s,r=this if(r.NC(a.gbB(a),a.gda(a))){r.z=!0 s=r.f if(s!=null)s.aH(0)}else if(r.z){r.z=!1 r.tm()}}, Bh:function(a){this.z=!1 this.tm()}, p:function(a){var s,r=this r.gju().p(0) s=r.f if(s!=null)s.aH(0) s=r.gfz() s.f.T(0,s.gcL()) s.hb(0) r.TN(0)}, H:function(a,b){var s,r,q=this,p=null q.qM() s=q.ga_m() r=q.gfz() return new U.fz(new T.he(new D.k5(new T.hY(p,new E.a1Y(q),new E.a1Z(q),C.cT,!0,T.l3(new T.he(q.a.c,p),r,q.y,p,C.r),p),s,p,!1,p,p),p),q.ga1B(),p,t.WA)}} E.a1X.prototype={ $1:function(a){var s,r,q=this.a if(q.gwp()){s=q.f if(s!=null)s.aH(0) r=q.a.d if(r==null){s=q.c s.toString r=E.k3(s)}q.a.toString C.b.gc5(r.d).uF(0)}}, $S:2} E.a1W.prototype={ $0:function(){var s=this.a s.gju().cT(0) s.f=null}, $C:"$0", $R:0, $S:0} E.a1S.prototype={ $0:function(){var s=this.a,r=s.a.Q,q=t.S return new E.ji(s.y,r,null,C.b1,P.y(q,t.o),P.be(q),s,null,P.y(q,t.r))}, $C:"$0", $R:0, $S:363} E.a1T.prototype={ $1:function(a){var s=this.a a.r1=s.gN3() a.r2=new E.a1P(s) a.rx=new E.a1Q(s) a.x1=new E.a1R(s)}, $S:364} E.a1P.prototype={ $1:function(a){return this.a.v5(a.b)}, $S:96} E.a1Q.prototype={ $1:function(a){return this.a.aaT(a.b)}, $S:97} E.a1R.prototype={ $1:function(a){return this.a.v4(a.b,a.c)}, $S:83} E.a1U.prototype={ $0:function(){var s=this.a,r=t.S return new E.jj(s.y,C.at,18,C.b1,P.y(r,t.o),P.be(r),s,null,P.y(r,t.r))}, $C:"$0", $R:0, $S:366} E.a1V.prototype={ $1:function(a){a.aR=this.a.ga29()}, $S:367} E.a1Z.prototype={ $1:function(a){var s switch(a.gda(a)){case C.ap:s=this.a if(s.guK())s.Bh(a) break case C.aJ:case C.bq:case C.aU:case C.an:break default:throw H.a(H.j(u.I))}}, $S:37} E.a1Y.prototype={ $1:function(a){var s switch(a.gda(a)){case C.ap:s=this.a if(s.guK())s.Bg(a) break case C.aJ:case C.bq:case C.aU:case C.an:break default:throw H.a(H.j(u.I))}}, $S:368} E.ji.prototype={ h1:function(a){if(!this.yy(this.ax,a.gbB(a),a.gda(a)))return!1 return this.Sh(a)}, yy:function(a,b,c){var s if($.D.A$.Q.i(0,a)==null)return!1 s=t.ip.a($.D.A$.Q.i(0,a).gE()).f s.toString return t.sm.a(s).Ne(E.ala(a,b),c)}} E.jj.prototype={ h1:function(a){if(!this.yy(this.cw,a.gbB(a),a.gda(a)))return!1 return this.Tj(a)}, yy:function(a,b,c){var s,r if($.D.A$.Q.i(0,a)==null)return!1 s=t.ip.a($.D.A$.Q.i(0,a).gE()).f s.toString t.sm.a(s) r=E.ala(a,b) return s.Nd(r,c)&&!s.Ne(r,c)}} E.tW.prototype={ p:function(a){this.bh(0)}, aG:function(){var s,r=this.c r.toString s=!U.dm(r) r=this.by$ if(r!=null)for(r=P.cq(r,r.r,H.u(r).c);r.q();)r.d.sdE(0,s) this.cq()}} X.nj.prototype={ VO:function(a,b,c,d,e,f){e.a=1 if(b!=null)this.a.B(0,b) if(c!=null)this.a.B(0,c)}, k:function(a,b){if(b==null)return!1 if(J.N(b)!==H.E(this))return!1 return H.u(this).h("nj").b(b)&&S.aim(b.a,this.a)}, gt:function(a){var s=this,r=s.b if(r===$){r=X.azf(s.a) if(s.b===$)s.b=r else r=H.e(H.bS("hashCode"))}return r}} X.hU.prototype={} X.r6.prototype={ sDW:function(a){if(!S.S2(this.b,a)){this.b=a this.aa()}}, ZX:function(a){var s,r,q,p,o,n,m=$.p1(),l=m.c l=l.gaZ(l) l=P.Gp(l,H.u(l).h("l.E")).a===0 if(l)return null m=m.c m=m.gaZ(m) a=new X.hU(P.aof(P.Gp(m,H.u(m).h("l.E")),t.bd)) s=this.b.i(0,a) if(s==null){m=t.bd r=P.aZ(m) for(l=a.a.h7(0),l=l.gM(l);l.q();){q=l.gw(l) if(q instanceof G.n){p=$.azo.i(0,q) o=p==null?P.aZ(m):P.dd([p],m) if(o.a!==0){n=o.e if(n==null)H.e(P.a4("No elements")) r.B(0,n.a)}else r.B(0,q)}}s=this.b.i(0,new X.hU(P.aof(r,m)))}return s}, aaC:function(a,b){var s,r,q,p if(!(b instanceof B.qI))return C.e5 s=this.ZX(null) if(s!=null){r=$.D.A$.f.f.d r.toString q=U.ani(r,s,t.vz) if(q!=null&&q.nj(0,s)){r.a0(t.KU) p=U.axq(r) p.abm(q,s,r) return q.Ah(s)?C.k7:C.k8}}return C.e5}} X.lD.prototype={ ah:function(){return new X.Bs(C.k)}} X.Bs.prototype={ gvk:function(){this.a.toString var s=this.d s.toString return s}, p:function(a){var s=this.d if(s!=null)s.P$=null this.bh(0)}, aC:function(){var s=this s.b_() s.a.toString s.d=X.aAR() s.gvk().sDW(s.a.d)}, bd:function(a){var s=this s.bG(a) s.a.toString a.toString s.gvk().sDW(s.a.d)}, a1g:function(a,b){var s,r if(a.d==null)return C.e5 s=this.gvk() r=a.d r.toString return s.aaC(r,b)}, H:function(a,b){var s=null,r=C.GC.j(0) return L.vX(!1,!1,new X.Pz(this.gvk(),this.a.e,s),r,!0,s,!0,s,s,this.ga1f(),s)}} X.Pz.prototype={} X.Nw.prototype={} X.Py.prototype={} E.Jb.prototype={ H:function(a,b){var s,r,q,p=this,o={},n=T.ase(b,p.c,!1) o.a=p.y s=p.r r=s?E.k3(b):p.f q=F.akm(n,r,p.z,!1,p.x,null,null,null,new E.a4R(o,p,n)) return s&&r!=null?E.ap9(q):q}} E.a4R.prototype={ $2:function(a,b){return new E.u2(this.c,b,C.ak,this.a.a,null)}, $C:"$2", $R:2, $S:370} E.u2.prototype={ aM:function(a){var s=new E.Bf(this.e,this.f,this.r,null) s.gav() s.dy=!0 s.sbc(null) return s}, aP:function(a,b){var s b.slb(this.e) b.sbV(0,this.f) s=this.r if(s!==b.au){b.au=s b.aw() b.ao()}}} E.Bf.prototype={ slb:function(a){if(a===this.F)return this.F=a this.a1()}, sbV:function(a,b){var s=this,r=s.N if(b==r)return if(s.b!=null)r.T(0,s.gte()) s.N=b if(s.b!=null){r=b.P$ r.bQ(r.c,new B.bn(s.gte()),!1)}s.a1()}, a2f:function(){this.aw() this.ao()}, ep:function(a){if(!(a.d instanceof K.iV))a.d=new K.iV()}, ag:function(a){var s this.UN(a) s=this.N.P$ s.bQ(s.c,new B.bn(this.gte()),!1)}, ab:function(a){this.N.T(0,this.gte()) this.UO(0)}, gav:function(){return!0}, ga5j:function(){switch(G.bW(this.F)){case C.o:return this.r2.a case C.n:return this.r2.b default:throw H.a(H.j(u.I))}}, ga5i:function(){var s=this,r=s.v$ if(r==null)return 0 switch(G.bW(s.F)){case C.o:return Math.max(0,r.r2.a-s.r2.a) case C.n:return Math.max(0,r.r2.b-s.r2.b) default:throw H.a(H.j(u.I))}}, GT:function(a){switch(G.bW(this.F)){case C.o:return new S.aN(0,1/0,a.c,a.d) case C.n:return new S.aN(a.a,a.b,0,1/0) default:throw H.a(H.j(u.I))}}, cB:function(a){var s=this.v$ if(s==null)return new P.Q(C.f.a6(0,a.a,a.b),C.f.a6(0,a.c,a.d)) return a.bH(s.iq(this.GT(a)))}, bM:function(){var s=this,r=t.k.a(K.r.prototype.gX.call(s)),q=s.v$ if(q==null)s.r2=new P.Q(C.f.a6(0,r.a,r.b),C.f.a6(0,r.c,r.d)) else{q.cJ(0,s.GT(r),!0) q=s.v$.r2 q.toString s.r2=r.bH(q)}s.N.u_(s.ga5j()) s.N.mR(0,s.ga5i())}, oS:function(a){var s=this switch(s.F){case C.A:return new P.m(0,a-s.v$.r2.b+s.r2.b) case C.y:return new P.m(0,-a) case C.L:return new P.m(a-s.v$.r2.a+s.r2.a,0) case C.P:return new P.m(-a,0) default:throw H.a(H.j(u.I))}}, Jl:function(a){var s,r,q,p,o=a.a if(!(o<0)){s=a.b if(!(s<0)){r=this.v$.r2 q=r.a p=this.r2 o=o+q>p.a||s+r.b>p.b}else o=!0}else o=!0 return o}, aD:function(a,b){var s,r,q,p,o=this if(o.v$!=null){s=o.N.y s.toString r=o.oS(s) s=new E.adz(o,r) if(o.Jl(r)&&o.au!==C.V){q=o.geT() p=o.r2 o.aB=a.lF(q,b,new P.x(0,0,0+p.a,0+p.b),s,o.au,o.aB)}else{o.aB=null s.$2(a,b)}}}, di:function(a,b){var s,r=this.N.y r.toString s=this.oS(r) b.af(0,s.a,s.b)}, iM:function(a){var s,r=this if(a!=null){s=r.N.y s.toString s=r.Jl(r.oS(s))}else s=!1 if(s){s=r.r2 return new P.x(0,0,0+s.a,0+s.b)}return null}, cR:function(a,b){var s,r=this if(r.v$!=null){s=r.N.y s.toString return a.jN(new E.ady(r,b),r.oS(s),b)}return!1}, lU:function(a,b,c){var s,r,q,p,o,n,m,l=this if(c==null)c=a.gii() if(!(a instanceof S.A)){s=l.N.y s.toString return new Q.nQ(s,c)}r=T.ns(a.de(0,l.v$),c) s=l.v$.r2 s.toString switch(l.F){case C.A:q=l.r2.b p=r.d o=s.b-p n=p-r.b break case C.P:q=l.r2.a o=r.a n=r.c-o break case C.y:q=l.r2.b o=r.b n=r.d-o break case C.L:q=l.r2.a p=r.c o=s.a-p n=p-r.a break default:throw H.a(H.j(u.I))}m=o-(q-n)*b return new Q.nQ(m,r.bJ(l.oS(m)))}, eb:function(a,b,c,d){var s=this.N s.b.toString this.EF(a,null,c,Q.app(a,b,c,s,d,this))}, o6:function(){return this.eb(C.ax,null,C.G,null)}, m5:function(a){return this.eb(C.ax,null,C.G,a)}, m6:function(a,b,c){return this.eb(a,null,b,c)}, AC:function(a){var s switch(G.bW(this.F)){case C.n:s=this.r2 return new P.x(0,-250,0+s.a,0+s.b+250) case C.o:s=this.r2 return new P.x(-250,0,0+s.a+250,0+s.b) default:throw H.a(H.j(u.I))}}, $iI1:1} E.adz.prototype={ $2:function(a,b){var s=this.a.v$ s.toString a.dq(s,b.U(0,this.b))}, $S:12} E.ady.prototype={ $2:function(a,b){var s=this.a.v$ s.toString b.toString return s.c3(a,b)}, $S:14} E.Cn.prototype={ ag:function(a){var s this.dU(a) s=this.v$ if(s!=null)s.ag(a)}, ab:function(a){var s this.dw(0) s=this.v$ if(s!=null)s.ab(0)}} G.a5Y.prototype={ j:function(a){var s=H.b([],t.s) this.dl(s) return"#"+Y.cf(this)+"("+C.b.bI(s,", ")+")"}, dl:function(a){var s,r,q try{s=this.f.length if(s!=null)a.push("estimated child count: "+H.c(s))}catch(q){r=H.U(q) a.push("estimated child count: EXCEPTION ("+J.N(r).j(0)+")")}}} G.Bk.prototype={} G.a5Z.prototype={ a_1:function(a){var s,r,q,p=null,o=this.r if(!o.am(0,a)){s=o.i(0,p) s.toString for(r=this.f,q=s;q=this.f.length)return o s=this.f[c] r=s.a q=r!=null?new G.Bk(r):o s=new T.he(s,o) p=G.art(s,c) if(p!=null)s=new T.G0(p,s,o) return new T.q8(new L.uL(s,o),q)}} G.Ju.prototype={} G.ru.prototype={ bK:function(a){return G.apE(this,!1)}} G.Js.prototype={ bK:function(a){return G.apE(this,!0)}, aM:function(a){var s=new U.Iy(t.Gt.a(a),P.y(t.S,t.x),0,null,null) s.gav() s.gaF() s.dy=!1 return s}} G.rt.prototype={ gE:function(){return t.M0.a(N.a_.prototype.gE.call(this))}, gD:function(){return t.Ss.a(N.a_.prototype.gD.call(this))}, b5:function(a,b){var s,r,q,p=t.M0.a(N.a_.prototype.gE.call(this)) this.jm(0,b) s=b.d r=p.d if(s!==r)q=H.E(s)!==H.E(r)||s.f!==r.f else q=!1 if(q)this.hD()}, hD:function(){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1=this,a2=null,a3={} a1.wQ() a1.at=null a3.a=!1 try{j=t.S s=P.akn(j,t.Dv) r=P.fr(a2,a2,a2,j,t.d) q=new G.a62(a3,a1,s,r) for(j=a1.ac,i=j.$ti,i=i.h("@<1>").a3(i.h("e1<1,2>")).h("ky<1,2>"),i=P.an(new P.ky(j,i),!0,i.h("l.E")),h=i.length,g=t.MR,f=t.M0,e=a1.y2,d=0;d").a3(h.h("e1<1,2>")).h("ky<1,2>")).K(0,q) if(!a3.a&&a1.aI){a0=j.NK() l=a0==null?-1:a0 k=l+1 J.it(s,k,j.i(0,k)) q.$1(k)}}finally{a1.aN=null t.Ss.a(N.a_.prototype.gD.call(a1)).toString}}, a8C:function(a,b){this.f.pf(this,new G.a6_(this,b,a))}, ds:function(a,b,c){var s,r,q,p,o=null if(a==null)s=o else{s=a.gD() s=s==null?o:s.d}r=t.MR r.a(s) q=this.RU(a,b,c) if(q==null)p=o else{p=q.gD() p=p==null?o:p.d}r.a(p) if(s!=p&&s!=null&&p!=null)p.a=s.a return q}, hx:function(a){this.ac.u(0,a.c) this.iw(a)}, OI:function(a){var s,r=this t.Ss.a(N.a_.prototype.gD.call(r)).toString s=a.d s.toString s=t.D.a(s).b s.toString r.f.pf(r,new G.a63(r,s))}, a9I:function(a,b,c,d,e){var s=t.M0,r=s.a(N.a_.prototype.gE.call(this)).d.f.length s=s.a(N.a_.prototype.gE.call(this)) b.toString c.toString d.toString s.toString s=G.aB1(b,c,d,e,r) return s}, AH:function(){var s=this.ac s.aa9() s.NK() t.M0.a(N.a_.prototype.gE.call(this)).toString}, iT:function(a,b){var s,r=t.Ss.a(N.a_.prototype.gD.call(this)) t.x.a(a) s=this.at r.toString r.wE(0,a,s)}, iY:function(a,b,c){t.Ss.a(N.a_.prototype.gD.call(this)).vo(t.x.a(a),this.at)}, j4:function(a,b){t.Ss.a(N.a_.prototype.gD.call(this)).u(0,t.x.a(a))}, be:function(a){var s=this.ac,r=s.$ti r=r.h("@<1>").a3(r.Q[1]).h("oN<1,2>") r=H.kY(new P.oN(s,r),r.h("l.E"),t.t) C.b.K(P.an(r,!0,H.u(r).h("l.E")),a)}} G.a62.prototype={ $1:function(a){var s,r,q,p,o=this,n=o.b n.aN=a q=n.ac if(q.i(0,a)!=null&&!J.d(q.i(0,a),o.c.i(0,a))){q.n(0,a,n.ds(q.i(0,a),null,a)) o.a.a=!0}s=n.ds(o.c.i(0,a),t.M0.a(N.a_.prototype.gE.call(n)).d.Lh(0,n,a),a) if(s!=null){p=o.a p.a=p.a||!J.d(q.i(0,a),s) q.n(0,a,s) q=s.gD().d q.toString r=t.D.a(q) if(a===0)r.a=0 else{q=o.d if(q.am(0,a))r.a=q.i(0,a)}if(!r.c)n.at=t.Qv.a(s.gD())}else{o.a.a=!0 q.u(0,a)}}, $S:104} G.a60.prototype={ $0:function(){return null}, $S:1} G.a61.prototype={ $0:function(){return this.a.ac.i(0,this.b)}, $S:372} G.a6_.prototype={ $0:function(){var s,r,q=this,p=q.a p.at=q.b==null?null:t.Qv.a(p.ac.i(0,q.c-1).gD()) s=null try{r=p.aN=q.c s=p.ds(p.ac.i(0,r),t.M0.a(N.a_.prototype.gE.call(p)).d.Lh(0,p,r),r)}finally{p.aN=null}r=q.c p=p.ac if(s!=null)p.n(0,r,s) else p.u(0,r)}, $S:0} G.a63.prototype={ $0:function(){var s,r,q,p=this try{r=p.a q=r.aN=p.b s=r.ds(r.ac.i(0,q),null,q)}finally{p.a.aN=null}p.a.ac.u(0,p.b)}, $S:0} G.wr.prototype={ p9:function(a){var s,r,q=a.d q.toString t.Cl.a(q) s=this.f if(q.pR$!==s){q.pR$=s r=a.ga9(a) if(r instanceof K.r&&!s)r.a1()}}} R.JG.prototype={ H:function(a,b){return T.WL(C.dv,1)}} S.i8.prototype={ j:function(a){var s=this.c s=s.length===0?"TableRow(no children":"TableRow("+H.c(s) s+=")" return s.charCodeAt(0)==0?s:s}} S.eT.prototype={} S.yS.prototype={ bK:function(a){var s=t.t,r=P.be(s),q=($.b5+1)%16777215 $.b5=q return new S.Qd(C.to,r,q,this,C.a1,P.be(s))}, aM:function(a){var s,r,q,p=this,o=p.c,n=o.length o=n!==0?o[0].c.length:0 s=a.a0(t.I) s.toString s=s.f r=U.CG(a,null) q=H.b([],t.up) o=new S.xX(C.tn,o,n,p.d,C.jg,s,p.r,r,C.dw,null,q) o.gav() o.gaF() o.dy=!1 n=H.b([],t.iG) C.b.sl(n,o.N*o.S) o.F=n o.sP0(p.z) return o}, aP:function(a,b){var s b.sa86(this.d) b.sa8U(C.jg) s=a.a0(t.I) s.toString s=s.f b.sbt(0,s) b.sa7q(0,this.r) b.sP0(this.z) b.slf(U.CG(a,null)) b.sa8X(C.dw) b.svM(0,null)}} S.a6O.prototype={ $1:function(a){a.toString return!1}, $S:373} S.a6P.prototype={ $1:function(a){a.toString return null}, $S:374} S.Qd.prototype={ gE:function(){return t.On.a(N.a_.prototype.gE.call(this))}, gD:function(){return t.Jc.a(N.a_.prototype.gD.call(this))}, dQ:function(a,b){var s,r,q=this,p={} q.ac=!0 q.m8(a,b) p.a=-1 s=t.On.a(N.a_.prototype.gE.call(q)).c r=H.Y(s).h("Z<1,eT>") q.y2=P.an(new H.Z(s,new S.aeP(p,q),r),!1,r.h("av.E")) q.Ko() q.ac=!1}, iT:function(a,b){var s=t.Jc s.a(N.a_.prototype.gD.call(this)).toString if(!(a.d instanceof S.lL))a.d=new S.lL(C.i) if(!this.ac)s.a(N.a_.prototype.gD.call(this)).DC(b.a,b.b,a)}, iY:function(a,b,c){}, j4:function(a,b){var s,r,q=a.d q.toString t.o3.a(q) s=t.Jc.a(N.a_.prototype.gD.call(this)) r=q.c r.toString q=q.d q.toString s.DC(r,q,null)}, b5:function(a,b){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c=this c.ac=!0 s=t.pN r=P.y(t.f0,s) for(q=c.y2,p=q.length,o=0;o")) m=H.b([],t.lD) for(q=b.c,l=c.at,k=t.PN,j=0;j"));q.q();)c.CN(p.gw(p),C.kj,l) c.y2=m c.Ko() l.az(0) c.jm(0,b) c.ac=!1}, Ko:function(){var s,r,q=t.Jc.a(N.a_.prototype.gD.call(this)),p=this.y2 p=p.length!==0?J.bQ(p[0].b):0 s=this.y2 r=H.Y(s).h("fn<1,A>") q.Qy(p,P.an(new H.fn(s,new S.aeN(),r),!0,r.h("l.E")))}, be:function(a){var s,r,q for(s=this.y2,r=H.Y(s),r=new H.iE(C.b.gM(s),new S.aeS(),C.cd,r.h("@<1>").a3(r.h("au")).h("iE<1,2>")),s=this.at;r.q();){q=r.d if(!s.C(0,q))a.$1(q)}}, hx:function(a){this.at.B(0,a) this.iw(a) return!0}} S.aeP.prototype={ $1:function(a){var s,r,q,p={} p.a=0 s=this.a;++s.a r=a.c q=H.Y(r).h("Z<1,au>") return new S.eT(null,P.an(new H.Z(r,new S.aeO(p,s,this.b),q),!1,q.h("av.E")))}, $S:375} S.aeO.prototype={ $1:function(a){return this.c.q3(a,new S.u5(this.a.a++,this.b.a))}, $S:376} S.aeQ.prototype={ $1:function(a){a.toString return!0}, $S:377} S.aeR.prototype={ $1:function(a){return!this.a.C(0,a)}, $S:378} S.aeN.prototype={ $1:function(a){return J.mn(a.b,new S.aeM(),t.x)}, $S:379} S.aeM.prototype={ $1:function(a){var s=a.gD() s.toString return t.x.a(s)}, $S:380} S.aeS.prototype={ $1:function(a){return a.b}, $S:381} S.u5.prototype={ k:function(a,b){if(b==null)return!1 if(J.N(b)!==H.E(this))return!1 return b instanceof S.u5&&this.a===b.a&&this.b===b.b}, gt:function(a){return P.a5(this.a,this.b,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)}} S.Rv.prototype={} L.pB.prototype={ cZ:function(a){var s,r=this if(J.d(r.x,a.x))if(r.z===a.z)if(r.Q===a.Q)s=r.cx!==a.cx||!1 else s=!0 else s=!0 else s=!0 return s}, CV:function(a,b,c){var s=this return L.mH(c,null,s.ch,s.Q,s.z,s.x,s.y,s.cy,s.cx)}} L.O6.prototype={ H:function(a,b){throw H.a(U.mW("A DefaultTextStyle constructed with DefaultTextStyle.fallback cannot be incorporated into the widget tree, it is meant only to provide a fallback value returned by DefaultTextStyle.of() when no enclosing default text style is present in a BuildContext."))}} L.K2.prototype={ H:function(a,b){var s,r,q,p,o,n,m,l,k,j=this,i=null,h=b.a0(t.yS) if(h==null)h=C.pZ s=j.e if(s==null||s.a)s=h.x.bU(s) r=F.fv(b) r=r==null?i:r.cy if(r===!0)s=s.bU(C.E5) r=j.r if(r==null)r=h.y if(r==null)r=C.ag q=j.x p=j.z if(p==null)p=h.z o=j.Q if(o==null)o=h.Q n=F.ajX(b) m=j.cx if(m==null)m=h.ch l=L.anP(b) k=T.apr(i,m,o,p,i,Q.lN(i,s,j.c),r,q,l,n,h.cx) h=j.cy return h!=null?T.cu(i,new T.mT(!0,k,i),!1,i,i,!1,i,i,i,i,h,i,i,i,i,i,i,i,i,i,i,i,i,i,i,q,i):k}} Y.yZ.prototype={ gcN:function(){var s=$.D.A$.f.f if((s==null?null:s.d)!=null){s=s.d s=!t.MN.b(s.gb9(s))}else s=!0 if(s)return null s=$.D.A$.f.f.d return t.MN.a(s.gb9(s))}, nj:function(a,b){return this.gcN()!=null}} M.mL.prototype={} F.z4.prototype={ j:function(a){return this.b}} F.Qj.prototype={ j:function(a){return this.b}} F.a7b.prototype={ aau:function(a){var s,r=a.a.c.a,q=r.b r=r.a s=q.a q=q.b T.Em(new T.pp(J.e7(r,s,q))) a.nR(new N.bb(C.c.V(r,0,s)+C.c.bw(r,q),X.hi(C.l,s),C.v),C.hK) s=a.a.c.a.b a.pd(new P.aV(s.d,s.e)) a.i7()}, aat:function(a,b){var s,r=a.a.c.a,q=r.b r=r.a s=q.b T.Em(new T.pp(J.e7(r,q.a,s))) q=a.a.c.a.b a.pd(new P.aV(q.d,q.e)) switch(U.e4()){case C.z:a.Nb(!1) return case C.C:case C.I:case C.M:case C.D:case C.E:a.nR(new N.bb(r,X.hi(C.l,s),C.v),C.hK) a.i7() return default:throw H.a(H.j(u.I))}}, v_:function(a){return this.aaK(a)}, aaK:function(a){var s=0,r=P.af(t.H),q,p,o,n,m,l var $async$v_=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)switch(s){case 0:m=a.a.c.a s=2 return P.ak(T.Up("text/plain"),$async$v_) case 2:l=c if(l!=null){q=m.b m=m.a p=q.a o=J.e7(m,0,p) n=l.a n.toString a.nR(new N.bb(o+n+C.c.bw(m,q.b),X.hi(C.l,p+n.length),C.v),C.hK)}m=a.a.c.a.b a.pd(new P.aV(m.d,m.e)) a.i7() return P.ad(null,r)}}) return P.ae($async$v_,r)}} F.K8.prototype={ gzp:function(){var s=this.ch return s===$?H.e(H.t("_toolbarController")):s}, sN5:function(a){var s,r=this if(r.dx===a)return r.dx=a s=$.bT if(s.db$===C.dm)s.ch$.push(r.gJR()) else r.tM()}, QR:function(){var s,r,q=this if(q.cy!=null)return q.cy=H.b([X.xj(new F.a7e(q),!1),X.xj(new F.a7f(q),!1)],t.fy) s=q.a.ML(t.N1) s.toString r=q.cy r.toString s.Nj(0,r)}, b5:function(a,b){var s,r=this if(J.d(r.cx,b))return r.cx=b s=$.bT if(s.db$===C.dm)s.ch$.push(r.gJR()) else r.tM()}, JS:function(a){var s=this.cy if(s!=null){s[0].f0() this.cy[1].f0()}s=this.db if(s!=null)s.f0()}, tM:function(){return this.JS(null)}, v8:function(){var s=this,r=s.cy if(r!=null){r[0].c4(0) s.cy[1].c4(0) s.cy=null}if(s.db!=null)s.i7()}, i7:function(){this.gzp().fB(0) this.db.c4(0) this.db=null}, Fl:function(a,b){var s=this,r=null,q=s.cx.b return new T.mT(!0,q.a==q.b&&b===C.cN||s.r==null?M.ap(r,r,r,r,r,r,r,r,r):new L.KE(new F.BM(q,b,s.d,s.e,s.f,new F.a7d(s,b),s.z,s.r,s.y,r),s.dx,r),r)}} F.a7e.prototype={ $1:function(a){return this.a.Fl(a,C.dK)}, $S:30} F.a7f.prototype={ $1:function(a){return this.a.Fl(a,C.cN)}, $S:30} F.a7d.prototype={ $1:function(a){var s,r,q=this.a switch(this.b){case C.dK:s=new P.aV(a.c,a.e) break case C.cN:s=new P.aV(a.d,a.e) break default:H.e(H.j(u.I)) s=null}r=q.x r.nR(q.cx.LO(C.v,a),C.hL) r.pd(s)}, $S:128} F.BM.prototype={ ah:function(){return new F.BN(null,C.k)}, gp1:function(a){switch(this.d){case C.dK:return this.r.cw case C.cN:return this.r.e3 default:throw H.a(H.j(u.I))}}, Oc:function(a){return this.x.$1(a)}} F.BN.prototype={ gGi:function(){var s=this.d return s===$?H.e(H.t("_dragPosition")):s}, gtL:function(){var s=this.e return s===$?H.e(H.t("_controller")):s}, aC:function(){var s,r=this r.b_() r.e=G.cl(null,C.e0,0,null,1,null,r) r.yv() s=r.a s=s.gp1(s).P$ s.bQ(s.c,new B.bn(r.gyu()),!1)}, yv:function(){var s=this.a if(s.gp1(s).a)this.gtL().cm(0) else this.gtL().cT(0)}, bd:function(a){var s,r,q=this q.bG(a) s=q.gyu() a.gp1(a).T(0,s) q.yv() r=q.a r=r.gp1(r).P$ r.bQ(r.c,new B.bn(s),!1)}, p:function(a){var s=this,r=s.a r.gp1(r).T(0,s.gyu()) s.gtL().p(0) s.US(0)}, yj:function(a){var s=this.a,r=s.z r.toString this.d=a.b.U(0,new P.m(0,-r.lT(s.r.aq.gcS()).b))}, yl:function(a){var s,r,q,p,o=this o.d=o.gGi().U(0,a.b) s=o.a.r.w4(o.gGi()) r=o.a q=r.c if(q.a==q.b){r.Oc(X.z1(s)) return}switch(r.d){case C.dK:p=X.cY(C.l,s.a,q.d,!1) break case C.cN:p=X.cY(C.l,q.c,s.a,!1) break default:throw H.a(H.j(u.I))}if(p.c>=p.d)return r.Oc(p)}, a1Z:function(){this.a.y.$0()}, H:function(a,a0){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d=this,c=null,b=d.a switch(b.d){case C.dK:s=b.e b=b.r.aq.e b.toString r=d.Fw(b,C.cG,C.cH) break case C.cN:s=b.f b=b.r.aq.e b.toString r=d.Fw(b,C.cH,C.cG) break default:throw H.a(H.j(u.I))}b=d.a q=b.z q.toString p=q.nV(r,b.r.aq.gcS()) b=d.a q=b.z q.toString o=q.lT(b.r.aq.gcS()) b=-p.a q=-p.b n=b+o.a m=q+o.b l=new P.x(b,q,n,m) k=l.ka(P.k6(l.gbn(),24)) j=k.a i=k.c-j b=Math.max((i-(n-b))/2,0) n=k.b h=k.d-n q=Math.max((h-(m-q))/2,0) m=d.gtL() m.toString g=d.a f=g.Q e=g.z e.toString return T.ay9(K.pM(!1,M.ap(C.cO,D.pT(C.cm,new T.ee(new V.X(b,q,b,q),e.u6(a0,r,g.r.aq.gcS()),c),f,!1,c,c,c,c,c,c,c,c,c,c,d.gyi(),d.gyk(),d.ga1Y(),c,c,c,c,c,c),c,c,c,h,c,c,i),m),s,new P.m(j,n),!1)}, Fw:function(a,b,c){var s=this.a.c if(s.a==s.b)return C.dy switch(a){case C.m:return b case C.p:return c default:throw H.a(H.j(u.I))}}} F.z3.prototype={ ga2H:function(){var s,r,q,p=this.a.z,o=p.gas() o.toString o=$.D.A$.Q.i(0,o.r).gD() o.toString s=t.E s.a(o) o=p.gas() o.toString o=$.D.A$.Q.i(0,o.r).gD() o.toString s.a(o) r=p.gas() r.toString r=$.D.A$.Q.i(0,r.r).gD() r.toString r=s.a(r).B_ r.toString q=o.w4(r) o=p.gas() o.toString o=$.D.A$.Q.i(0,o.r).gD() o.toString r=q.a if(s.a(o).a2.c<=r){p=p.gas() p.toString p=$.D.A$.Q.i(0,p.r).gD() p.toString r=s.a(p).a2.d>=r p=r}else p=!1 return p}, acT:function(a){var s,r=this.a.z.gas() r.toString r=$.D.A$.Q.i(0,r.r).gD() r.toString t.E.a(r).eD=a.a s=a.b this.b=s==null||s===C.an||s===C.aJ}, C9:function(a){var s this.b=!0 s=this.a s.a.toString s=s.z.gas() s.toString s=$.D.A$.Q.i(0,s.r).gD() s.toString t.E.a(s).o_(C.lJ,a.a)}, acO:function(){}, acI:function(a){var s if(this.b){s=this.a.z.gas() s.toString s.o7()}}, acE:function(){var s,r,q=this.a q.a.toString if(!this.ga2H()){s=q.z.gas() s.toString s=$.D.A$.Q.i(0,s.r).gD() s.toString t.E.a(s) r=s.eD r.toString s.o_(C.cD,r)}if(this.b){q=q.z s=q.gas() s.toString s.i7() q=q.gas() q.toString q.o7()}}, acG:function(a){var s=this.a.z.gas() s.toString s=$.D.A$.Q.i(0,s.r).gD() s.toString t.E.a(s) s.B_=s.eD=a.a this.b=!0}, aco:function(a){var s,r,q=this.a q.a.toString q=q.z s=q.gas() s.toString s=$.D.A$.Q.i(0,s.r).gD() s.toString t.E.a(s) r=s.eD r.toString s.o_(C.cD,r) if(this.b){q=q.gas() q.toString q.o7()}}, acs:function(a){var s,r=this.a r.a.toString s=a.d this.b=s==null||s===C.an||s===C.aJ r=r.z.gas() r.toString r=$.D.A$.Q.i(0,r.r).gD() r.toString t.E.a(r).m0(C.hL,a.b)}, acu:function(a,b){var s=this.a s.a.toString s=s.z.gas() s.toString s=$.D.A$.Q.i(0,s.r).gD() s.toString t.E.a(s).Ds(C.hL,a.b,b.d)}, acq:function(a){}} F.z2.prototype={ ah:function(){return new F.BL(C.k)}} F.BL.prototype={ p:function(a){var s=this.d if(s!=null)s.aH(0) s=this.y if(s!=null)s.aH(0) this.bh(0)}, a61:function(a){var s=this s.a.c.$1(a) if(s.d!=null&&s.a2E(a.a)){s.a.cx.$1(a) s.d.aH(0) s.e=s.d=null s.f=!0}}, a26:function(a){var s=this if(!s.f){s.a.x.$1(a) s.e=a.a s.d=P.ci(C.aE,s.gZj())}s.f=!1}, a6_:function(){this.a.y.$0()}, yj:function(a){this.r=a this.a.cy.$1(a)}, yl:function(a){var s=this s.x=a if(s.y==null)s.y=P.ci(C.cZ,s.ga0j())}, He:function(){var s,r=this,q=r.a.db,p=r.r p.toString s=r.x s.toString q.$2(p,s) r.x=r.y=null}, a0i:function(a){var s=this,r=s.y if(r!=null){r.aH(0) s.He()}s.a.dx.$1(a) s.x=s.r=s.y=null}, a_f:function(a){var s=this.d if(s!=null)s.aH(0) this.d=null s=this.a.d if(s!=null)s.$1(a)}, a_d:function(a){var s=this.a.e if(s!=null)s.$1(a)}, a0Y:function(a){var s if(!this.f){this.a.toString s=!0}else s=!1 if(s)this.a.z.$1(a)}, a0W:function(a){var s if(!this.f){this.a.toString s=!0}else s=!1 if(s)this.a.Q.$1(a)}, a0U:function(a){var s,r=this if(!r.f){r.a.toString s=!0}else s=!1 if(s)r.a.ch.$1(a) r.f=!1}, Zk:function(){this.e=this.d=null}, a2E:function(a){var s=this.e if(s==null)return!1 return a.a5(0,s).gdB()<=100}, H:function(a,b){var s,r,q=this,p=P.y(t.n,t.xR) p.n(0,C.G7,new D.cn(new F.af1(q),new F.af2(q),t.m4)) q.a.toString p.n(0,C.ig,new D.cn(new F.af3(q),new F.af4(q),t.jn)) q.a.toString p.n(0,C.eM,new D.cn(new F.af5(q),new F.af6(q),t.Uv)) s=q.a if(s.d!=null||s.e!=null)p.n(0,C.Gf,new D.cn(new F.af7(q),new F.af8(q),t.C1)) s=q.a r=s.dy return new D.k5(s.fr,p,r,!0,null,null)}} F.af1.prototype={ $0:function(){var s=t.S return new F.jk(C.at,18,C.b1,P.y(s,t.o),P.be(s),this.a,null,P.y(s,t.r))}, $C:"$0", $R:0, $S:384} F.af2.prototype={ $1:function(a){var s=this.a,r=s.a a.bT=r.f a.aA=r.r a.aR=s.ga60() a.v=s.ga25() a.aE=s.ga5Z()}, $S:385} F.af3.prototype={ $0:function(){return T.ajS(this.a,null,C.an,null)}, $C:"$0", $R:0, $S:126} F.af4.prototype={ $1:function(a){var s=this.a a.r2=s.ga0X() a.rx=s.ga0V() a.x1=s.ga0T()}, $S:125} F.af5.prototype={ $0:function(){return O.FS(this.a,C.ap)}, $C:"$0", $R:0, $S:86} F.af6.prototype={ $1:function(a){var s a.z=C.jK s=this.a a.ch=s.gyi() a.cx=s.gyk() a.cy=s.ga0h()}, $S:85} F.af7.prototype={ $0:function(){return K.ayS(this.a)}, $C:"$0", $R:0, $S:386} F.af8.prototype={ $1:function(a){var s=this.a,r=s.a a.z=r.d!=null?s.ga_e():null a.cx=r.e!=null?s.ga_c():null}, $S:387} F.jk.prototype={ hE:function(a){if(this.cx===C.b1)this.ho(a) else this.R9(a)}} F.Cq.prototype={ p:function(a){this.bh(0)}, aG:function(){var s,r=this.cc$ if(r!=null){s=this.c s.toString r.sdE(0,!U.dm(s))}this.cq()}} U.z9.prototype={ H:function(a,b){var s=this.c&&U.dm(b) return new U.A4(s,this.d,null)}} U.A4.prototype={ cZ:function(a){return this.f!==a.f}} U.lG.prototype={ ut:function(a){return this.cc$=new M.rU(a,null)}} U.dY.prototype={ ut:function(a){var s,r=this if(r.by$==null)r.by$=P.aZ(t.DH) s=new U.R_(r,a,"created by "+r.j(0)) r.by$.B(0,s) return s}} U.R_.prototype={ p:function(a){this.x.by$.u(0,this) this.Tl(0)}} U.Kc.prototype={ H:function(a,b){var s=this.d X.a6K(new X.SK(this.c,s.gm(s))) return this.e}} K.uz.prototype={ ah:function(){return new K.zw(C.k)}} K.zw.prototype={ aC:function(){this.b_() this.a.c.aQ(0,this.gyh())}, bd:function(a){var s,r,q=this q.bG(a) s=q.a.c r=a.c if(!J.d(s,r)){s=q.gyh() r.T(0,s) q.a.c.aQ(0,s)}}, p:function(a){this.a.c.T(0,this.gyh()) this.bh(0)}, a01:function(){this.Y(new K.a8s())}, H:function(a,b){return this.a.H(0,b)}} K.a8s.prototype={ $0:function(){}, $S:0} K.Jp.prototype={ H:function(a,b){var s=this,r=t.so.a(s.c),q=r.gm(r) if(s.e===C.p)q=new P.m(-q.a,q.b) return T.aoa(s.r,s.f,q)}} K.IR.prototype={ H:function(a,b){var s=t.m.a(this.c),r=s.gm(s),q=new E.b8(new Float64Array(16)) q.du() q.is(0,r,r,1) return T.Kh(C.ar,this.f,q,!0)}} K.IG.prototype={ H:function(a,b){var s=t.m.a(this.c) return T.Kh(C.ar,this.f,E.aoE(s.gm(s)*3.141592653589793*2),!0)}} K.Fn.prototype={ aM:function(a){var s,r=null,q=new E.I3(r,r,r,r,r) q.gav() s=q.gaF() q.dy=s q.sbc(r) q.se6(0,this.e) q.stZ(this.f) return q}, aP:function(a,b){b.se6(0,this.e) b.stZ(this.f)}} K.EG.prototype={ H:function(a,b){var s=this.e,r=s.a return M.anO(this.r,s.b.b1(0,r.gm(r)),C.fK)}} K.D5.prototype={ H:function(a,b){return this.e.$2(b,this.f)}} Q.Ja.prototype={ aM:function(a){var s=this.e,r=Q.aq4(a,s) s=new Q.Ix(s,r,this.r,250,C.oH,this.x,0,null,null) s.gav() s.dy=!0 s.J(0,null) return s}, aP:function(a,b){var s=this.e b.slb(s) s=Q.aq4(a,s) b.sa8H(s) b.sbV(0,this.r) b.siH(this.x)}} L.KE.prototype={ H:function(a,b){return this.e?this.c:C.dv}} N.QZ.prototype={} N.a7V.prototype={ abF:function(){var s=this.MG$ return s==null?this.MG$=!1:s}} N.aah.prototype={} N.Zs.prototype={} N.agE.prototype={ $0:function(){var s,r,q=this.a if(q!=null){s=Y.es.prototype.gm.call(q,q) s.toString s=J.mm(s)}else s=!1 if(s){q=Y.es.prototype.gm.call(q,q) q.toString r=J.CX(q) if(typeof r=="string"&&C.c.bv(r,"A RenderFlex overflowed by"))return!0}return!1}, $S:39} N.agF.prototype={ $1:function(a){return!0}, $S:25} F.zs.prototype={ ah:function(){return new F.R1(C.k)}} F.R1.prototype={ aG:function(){var s,r=this r.cq() r.a.toString s=r.c s.toString r.d=T.wZ(s,t.O) r.a.toString}, bd:function(a){this.bG(a) this.a.toString a.toString}, p:function(a){this.a.toString this.bh(0)}, H:function(a,b){return this.a.c}} O.uO.prototype={ a7B:function(a,b){return this.f.$2(a,b)}} O.ix.prototype={ ah:function(){var s=this.$ti return new O.zB(C.k,s.h("@").a3(s.h("ix.S*")).h("zB<1,2>"))}} O.zB.prototype={ aC:function(){var s,r=this r.b_() r.a.toString s=r.c s.toString s=Y.HS(s,!1,r.$ti.h("1*")) r.d=s r.e=J.Sv(s)}, bd:function(a){var s,r,q=this q.bG(a) a.toString s=q.c s.toString r=Y.HS(s,!1,q.$ti.h("1*")) q.a.toString if(!J.d(r,r)){q.d=r q.e=J.Sv(r)}}, H:function(a,b){var s=this,r=s.d,q=s.a,p=q.d,o=s.$ti return X.ann(q.a7B(b,s.e),r,p,new O.a8T(s),o.h("1*"),o.h("2*"))}} O.a8T.prototype={ $2:function(a,b){var s=this.a return s.Y(new O.a8S(s,b))}, $S:function(){return this.a.$ti.h("~(S*,2*)")}} O.a8S.prototype={ $0:function(){return this.a.e=this.b}, $S:function(){return this.a.$ti.h("2*()")}} X.Ta.prototype={} X.uP.prototype={} X.hz.prototype={ ah:function(){var s=this.$ti return new X.zC(C.k,s.h("@").a3(s.h("hz.S*")).h("zC<1,2>"))}} X.zC.prototype={ aC:function(){var s,r=this r.b_() s=r.a.f if(s==null){s=r.c s.toString s=Y.HS(s,!1,r.$ti.h("1*"))}r.y=s r.x=J.Sv(s) r.Ff()}, bd:function(a){var s,r,q,p=this p.bG(a) s=a.f if(s==null){r=p.c r.toString s=Y.HS(r,!1,p.$ti.h("1*"))}q=p.a.f if(q==null)q=s if(!J.d(s,q)){if(p.r!=null){p.Fg() p.y=q p.x=J.Sv(q)}p.Ff()}}, p:function(a){this.Fg() this.bh(0)}, Ff:function(){var s=this.y if(s!=null)this.r=s.nn(new X.a8U(this))}, Fg:function(){var s=this.r if(s!=null){s.aH(0) this.r=null}}} X.a8U.prototype={ $1:function(a){var s,r=this.a,q=r.a q.toString s=r.c s.toString q.r.$2(s,a) r.x=a}, $S:function(){return this.a.$ti.h("a6(2*)")}} X.zD.prototype={} R.pi.prototype={$ih:1} R.uQ.prototype={ A6:function(a,b){var s=this,r=null,q=s.$ti return new Y.we(new Y.ta(s.x,r,r,r,R.aEY(),s.r,q.h("ta<1*>")),s.f,b,r,q.h("we<1*>"))}} R.Te.prototype={ $2:function(a,b){return b==null?null:J.amk(b)}, $S:function(){return this.a.h("ax<~>*(S*,0*)")}} R.Tc.prototype={ $0:function(){}, $C:"$0", $R:0, $S:1} R.Td.prototype={ $1:function(a){return this.a.ac1()}, $S:388} R.Le.prototype={} M.GJ.prototype={} L.ZK.prototype={} D.I0.prototype={ lp:function(a,b,c){return this.q_(a,b,c)}, q_:function(a,b,c){return this.aaB(a,b,c)}, aaB:function(a,b,c){var s=0,r=P.af(t.H),q=1,p,o=[],n=this,m,l,k,j,i,h,g var $async$q_=P.a9(function(d,e){if(d===1){p=e s=q}while(true)switch(s){case 0:h=null q=3 m=n.a.i(0,a) s=m!=null?6:7 break case 6:s=8 return P.ak(m.$1(b),$async$q_) case 8:h=e case 7:o.push(5) s=4 break case 3:q=2 g=p l=H.U(g) k=H.aB(g) i=U.bE("during a framework-to-plugin message") U.dC(new U.bK(l,k,"flutter web plugins",i,null,!1)) o.push(5) s=4 break case 2:o=[1] case 4:q=1 if(c!=null)c.$1(h) s=o.pop() break case 5:return P.ad(null,r) case 1:return P.ac(p,r)}}) return P.ae($async$q_,r)}, rg:function(a,b,c){var s=new P.a1($.R,t.gg) $.b4().b.fr.$3(b,c,new D.a25(new P.aH(s,t.yB))) return s}, wj:function(a,b){var s=this.a if(b==null)s.u(0,a) else s.n(0,a,b)}} D.a25.prototype={ $1:function(a){var s,r,q,p try{this.a.ci(0,a)}catch(q){s=H.U(q) r=H.aB(q) p=U.bE("during a plugin-to-framework message") U.dC(new U.bK(s,r,"flutter web plugins",p,null,!1))}}, $S:15} D.a1k.prototype={} E.Kd.prototype={ j:function(a){return this.b}} E.Ke.prototype={ j:function(a){return this.b}} B.FF.prototype={ Bi:function(a){return this.aaH(a)}, aaH:function(a0){var s=0,r=P.af(t.z),q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a var $async$Bi=P.a9(function(a1,a2){if(a1===1)return P.ac(a2,r) while(true)$async$outer:switch(s){case 0:a=a0.a switch(a){case"showToast":a=a0.b p=J.ag(a) o=p.i(a,"msg") n=J.d(p.i(a,"gravity"),"top")||J.d(p.i(a,"gravity"),"bottom")?p.i(a,"gravity"):"top" m=p.i(a,"webPosition") if(m==null)m="right" l=p.i(a,"webBgColor") if(l==null)l="linear-gradient(to right, #00b09b, #96c93d)" k=p.i(a,"textcolor") j=p.i(a,"time")==null?3000:P.e5(J.bB(p.i(a,"time")),null)*1000 i=p.i(a,"webShowClose") if(i==null)i=!1 o.toString h=H.is(o,"'","\\'") a=document g=a.querySelector("#toast-content") f=" var toastElement = Toastify({\n text: '"+h+"',\n gravity: '"+H.c(n)+"',\n position: '"+m+"',\n duration: "+j+",\n close: "+H.c(i)+',\n backgroundColor: "'+l+'",\n });\n toastElement.showToast();\n ' if(a.querySelector("#toast-content")!=null)J.c9(g) e=a.createElement("script") e.id="toast-content" C.lG.DJ(e,f) J.Ss(a.querySelector("head")).B(0,e) if(k!=null){d=a.querySelector(".toastify") c=C.f.j9(k,16) b=C.c.bw(c,2)+C.c.V(c,0,2) a=d.style p="#"+b a.toString C.e.a_(a,C.e.R(a,"color"),p,null)}q=!0 s=1 break $async$outer default:throw H.a(F.a1h("Unimplemented","The fluttertoast plugin for web doesn't implement the method '"+a+"'",null,null))}case 1:return P.ad(q,r)}}) return P.ae($async$Bi,r)}, vd:function(){var s=0,r=P.af(t.H),q,p,o,n,m,l var $async$vd=P.a9(function(a,b){if(a===1)return P.ac(b,r) while(true)switch(s){case 0:o=H.b([],t.J1) n=H.b([],t.yc) m=document l=m.createElement("link") l.id="toast-css" q=t.X C.rl.sA1(l,P.aj(["rel","stylesheet"],q,q)) l.href="assets/packages/fluttertoast/assets/toastify.css" n.push(l) p=m.createElement("script") p.async=!0 p.src="assets/packages/fluttertoast/assets/toastify.js" q=new W.ii(p,"load",!1,t.L) o.push(q.gI(q)) n.push(p) J.Ss(m.querySelector("head")).J(0,n) s=2 return P.ak(P.pS(o,t.H),$async$vd) case 2:return P.ad(null,r)}}) return P.ae($async$vd,r)}} E.T1.prototype={ mD:function(a,b,c,d,e){return this.a50(a,b,c,d,e)}, tD:function(a,b,c){return this.mD(a,b,c,null,null)}, a50:function(a,b,c,d,e){var s=0,r=P.af(t.Ni),q,p=this,o,n,m var $async$mD=P.a9(function(f,g){if(f===1)return P.ac(g,r) while(true)switch(s){case 0:o=P.os(b) n=O.aAy(a,o) if(c!=null)n.r.J(0,c) if(d!=null)n.sa7p(0,d) m=U s=3 return P.ak(p.eo(0,n),$async$mD) case 3:q=m.a3f(g) s=1 break case 1:return P.ad(q,r)}}) return P.ae($async$mD,r)}, aT:function(a){}} G.Dp.prototype={ aa4:function(){if(this.x)throw H.a(P.a4("Can't finalize a finalized Request.")) this.x=!0 return null}, j:function(a){return this.a+" "+this.b.j(0)}} G.T2.prototype={ $2:function(a,b){return a.toLowerCase()===b.toLowerCase()}, $C:"$2", $R:2, $S:390} G.T3.prototype={ $1:function(a){return C.c.gt(a.toLowerCase())}, $S:391} T.T4.prototype={ EL:function(a,b,c,d,e,f,g){var s=this.b if(s<100)throw H.a(P.bc("Invalid status code "+H.c(s)+"."))}} O.Tq.prototype={ eo:function(a,b){return this.Qo(a,b)}, Qo:function(a,b){var s=0,r=P.af(t.GI),q,p=2,o,n=[],m=this,l,k,j,i,h,g,f var $async$eo=P.a9(function(c,d){if(c===1){o=d s=p}while(true)switch(s){case 0:b.R8() s=3 return P.ak(new Z.v0(P.akp(H.b([b.z],t.vS),t._w)).P5(),$async$eo) case 3:j=d l=new XMLHttpRequest() i=m.a i.B(0,l) h=l J.awM(h,b.a,b.b.j(0),!0) h.responseType="blob" h.withCredentials=m.b b.r.K(0,J.awi(l)) k=new P.aH(new P.a1($.R,t.LS),t.Wq) h=t.uu g=new W.jc(l,"load",!1,h) f=t.H g.gI(g).bN(0,new O.Tt(l,k,b),f) h=new W.jc(l,"error",!1,h) h.gI(h).bN(0,new O.Tu(k,b),f) J.awZ(l,j) p=4 s=7 return P.ak(k.a,$async$eo) case 7:h=d q=h n=[1] s=5 break n.push(6) s=5 break case 4:n=[2] case 5:p=2 i.u(0,l) s=n.pop() break case 6:case 1:return P.ad(q,r) case 2:return P.ac(o,r)}}) return P.ae($async$eo,r)}, aT:function(a){var s for(s=this.a,s=P.cq(s,s.r,H.u(s).c);s.q();)s.d.abort()}} O.Tt.prototype={ $1:function(a){var s,r,q,p,o,n,m=this.a,l=t.z8.a(W.arb(m.response)) if(l==null)l=W.aj3([]) s=new FileReader() r=t.uu q=new W.jc(s,"load",!1,r) p=this.b o=this.c n=t.P q.gI(q).bN(0,new O.Tr(s,p,m,o),n) r=new W.jc(s,"error",!1,r) r.gI(r).bN(0,new O.Ts(p,o),n) s.readAsArrayBuffer(l)}, $S:63} O.Tr.prototype={ $1:function(a){var s=this,r=t.NG.a(C.qv.gadT(s.a)),q=P.akp(H.b([r],t.vS),t._w),p=s.c,o=p.status,n=r.length,m=s.d,l=C.jY.gadS(p) p=p.statusText q=new X.rA(B.aGg(new Z.v0(q)),m,o,p,n,l,!1,!0) q.EL(o,n,l,!1,!0,p,m) s.b.ci(0,q)}, $S:63} O.Ts.prototype={ $1:function(a){this.a.le(new E.ve(J.bB(a)),P.ako())}, $S:63} O.Tu.prototype={ $1:function(a){this.a.le(new E.ve("XMLHttpRequest error."),P.ako())}, $S:63} Z.v0.prototype={ P5:function(){var s=new P.a1($.R,t.ov),r=new P.aH(s,t.aa),q=new P.Lo(new Z.TE(r),new Uint8Array(1024)) this.cX(q.ga6V(q),!0,q.gpj(q),r.gLu()) return s}} Z.TE.prototype={ $1:function(a){return this.a.ci(0,new Uint8Array(H.mb(a)))}, $S:393} E.ve.prototype={ j:function(a){return this.a}, $icc:1} O.a3e.prototype={ gAU:function(a){var s,r,q=this if(q.grH()==null||!q.grH().c.a.am(0,"charset"))return q.y s=q.grH().c.a.i(0,"charset") r=P.ao0(s) return r==null?H.e(P.bx('Unsupported encoding "'+H.c(s)+'".',null,null)):r}, sa7p:function(a,b){var s,r,q=this,p="content-type",o=q.gAU(q).d1(b) q.Ym() q.z=B.asG(o) s=q.grH() if(s==null){o=q.gAU(q) r=t.X q.r.n(0,p,R.a_D("text","plain",P.aj(["charset",o.gar(o)],r,r)).j(0))}else if(!s.c.a.am(0,"charset")){o=q.gAU(q) r=t.X q.r.n(0,p,s.a7M(P.aj(["charset",o.gar(o)],r,r)).j(0))}}, grH:function(){var s=this.r.i(0,"content-type") if(s==null)return null return R.aoK(s)}, Ym:function(){if(!this.x)return throw H.a(P.a4("Can't modify a finalized Request."))}} U.IC.prototype={} X.rA.prototype={} Z.v7.prototype={} Z.TX.prototype={ $1:function(a){return a.toLowerCase()}, $S:3} Z.TY.prototype={ $1:function(a){return a!=null}, $S:394} R.wU.prototype={ a7M:function(a){var s=t.X,r=P.qb(this.c,s,s) r.J(0,a) return R.a_D(this.a,this.b,r)}, j:function(a){var s=new P.c6(""),r=this.a s.a=r r+="/" s.a=r s.a=r+this.b this.c.a.K(0,new R.a_G(s)) r=s.a return r.charCodeAt(0)==0?r:r}} R.a_E.prototype={ $0:function(){var s,r,q,p,o,n,m,l,k,j=this.a,i=new X.a6z(null,j),h=$.auw() i.wa(h) s=$.auu() i.pK(s) r=i.gBP().i(0,0) i.pK("/") i.pK(s) q=i.gBP().i(0,0) i.wa(h) p=t.X o=P.y(p,p) while(!0){p=i.d=C.c.kn(";",j,i.c) n=i.e=i.c m=p!=null p=m?i.e=i.c=p.gaX(p):n if(!m)break p=i.d=h.kn(0,j,p) i.e=i.c if(p!=null)i.e=i.c=p.gaX(p) i.pK(s) if(i.c!==i.e)i.d=null l=i.d.i(0,0) i.pK("=") p=i.d=s.kn(0,j,i.c) n=i.e=i.c m=p!=null if(m){p=i.e=i.c=p.gaX(p) n=p}else p=n if(m){if(p!==n)i.d=null k=i.d.i(0,0)}else k=N.aFh(i) p=i.d=h.kn(0,j,i.c) i.e=i.c if(p!=null)i.e=i.c=p.gaX(p) o.n(0,l,k)}i.a9R() return R.a_D(r,q,o)}, $S:395} R.a_G.prototype={ $2:function(a,b){var s,r=this.a r.a+="; "+H.c(a)+"=" s=$.aur().b if(typeof b!="string")H.e(H.bZ(b)) if(s.test(b)){r.a+='"' s=$.atS() b.toString s=r.a+=H.alK(b,s,new R.a_F(),null) r.a=s+'"'}else r.a+=H.c(b)}, $S:396} R.a_F.prototype={ $1:function(a){return"\\"+H.c(a.i(0,0))}, $S:113} N.ahy.prototype={ $1:function(a){return a.i(0,1)}, $S:113} T.a0x.prototype={ sI2:function(a){this.fx=a this.fy=C.d.aO(Math.log(a)/$.aiy())}, aaq:function(a){var s,r=this,q=typeof a=="number" if(q&&isNaN(a))return r.k1.Q if(q)q=a==1/0||a==-1/0 else q=!1 if(q){q=J.amS(a)?r.a:r.b return q+r.k1.z}q=J.amS(a)?r.a:r.b s=r.r1 s.a+=q q=Math.abs(a) if(r.z)r.a_i(q) else r.yc(q) q=s.a+=C.f.gkj(a)?r.c:r.d s.a="" return q.charCodeAt(0)==0?q:q}, a_i:function(a){var s,r,q,p=this if(a===0){p.yc(a) p.GK(0) return}s=C.d.dC(Math.log(a)/$.aiy()) r=a/Math.pow(10,s) q=p.ch if(q>1&&q>p.cx)for(;C.f.ea(s,q)!==0;){r*=10;--s}else{q=p.cx if(q<1){++s r/=10}else{--q s-=q r*=Math.pow(10,q)}}p.yc(r) p.GK(s)}, GK:function(a){var s=this,r=s.k1,q=s.r1,p=q.a+=r.x if(a<0){a=-a q.a=p+r.r}else if(s.y)q.a=p+r.f r=s.dx p=C.f.j(a) if(s.rx===0)q.a+=C.c.qp(p,r,"0") else s.a5n(r,p)}, a_6:function(a){var s if(C.d.gkj(a)&&!C.d.gkj(Math.abs(a)))throw H.a(P.bc("Internal error: expected positive number, got "+H.c(a))) s=C.d.dC(a) return s}, a4A:function(a){if(a==1/0||a==-1/0)return $.aiz() else return C.d.aO(a)}, yc:function(a0){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c=this,b=c.cy,a=a0==1/0||a0==-1/0 if(a){s=C.d.cU(a0) r=0 q=0 p=0}else{s=c.a_6(a0) o=a0-s if(C.d.cU(o)!==0){s=a0 o=0}H.B(b) p=Math.pow(10,b) n=p*c.fx m=C.d.cU(c.a4A(o*n)) if(m>=n){++s m-=n}q=C.f.hM(m,p) r=C.f.ea(m,p)}a=$.aiz() if(s>a){l=C.d.ey(Math.log(s)/$.aiy())-$.at3() k=C.d.aO(Math.pow(10,l)) if(k===0)k=Math.pow(10,l) j=C.c.a4("0",C.f.cU(l)) s=C.d.cU(s/k)}else j="" i=q===0?"":C.f.j(q) h=c.a2P(s) g=h+(h.length===0?i:C.c.qp(i,c.fy,"0"))+j f=g.length if(b>0)e=c.db>0||r>0 else e=!1 if(f!==0||c.cx>0){g=C.c.a4("0",c.cx-f)+g f=g.length for(a=c.r1,d=0;dp+1))break q=s}for(p=this.r1,r=1;rs&&C.f.ea(q-s,r.e)===1)r.r1.a+=r.k1.c}, a54:function(a){var s,r,q=this if(a==null)return q.go=H.is(a," ","\xa0") s=q.k2 r=new T.PU(a) r.q() new T.acY(q,r,s).ad4(0) s=q.k4 r=s==null if(!r||!1){if(r){s=$.as2.i(0,q.k2.toUpperCase()) s=q.k4=s==null?$.as2.i(0,"DEFAULT"):s}q.cy=q.db=s}}, j:function(a){return"NumberFormat("+H.c(this.id)+", "+H.c(this.go)+")"}} T.a0y.prototype={ $1:function(a){return this.a}, $S:398} T.acY.prototype={ ad4:function(a){var s,r,q,p,o,n=this,m=n.a m.b=n.tr() s=n.a3z() r=n.tr() m.d=r q=n.b if(q.c===";"){q.q() m.a=n.tr() r=new T.PU(s) for(;r.q();){p=r.c o=q.c if(o!=p&&o!=null)throw H.a(P.bx("Positive and negative trunks must be the same",s,null)) q.q()}m.c=n.tr()}else{m.a=m.a+m.b m.c=r+m.c}}, tr:function(){var s=new P.c6(""),r=this.e=!1,q=this.b while(!0)if(!(this.ad5(s)?q.q():r))break r=s.a return r.charCodeAt(0)==0?r:r}, ad5:function(a){var s,r,q=this,p="Too many percent/permill",o=q.b,n=o.c if(n==null)return!1 if(n==="'"){s=o.b r=o.a if((s>=r.length?null:r[s])==="'"){o.q() a.a+="'"}else q.e=!q.e return!0}if(q.e)a.a+=n else switch(n){case"#":case"0":case",":case".":case";":return!1 case"\xa4":a.a+=q.c break case"%":o=q.a s=o.fx if(s!==1&&s!==100)throw H.a(P.bx(p,o,null)) o.sI2(100) a.a+=o.k1.d break case"\u2030":o=q.a s=o.fx if(s!==1&&s!==1000)throw H.a(P.bx(p,o,null)) o.sI2(1000) a.a+=o.k1.y break default:a.a+=n}return!0}, a3z:function(){var s,r,q,p,o,n,m,l=this,k=new P.c6(""),j=l.b,i=!0 while(!0){if(!(j.c!=null&&i))break i=l.ad7(k)}s=l.x if(s===0&&l.r>0&&l.f>=0){r=l.f if(r===0)r=1 l.y=l.r-r l.r=r-1 s=l.x=1}q=l.f if(!(q<0&&l.y>0)){if(q>=0){p=l.r p=qp+s}else p=!1 p=p||l.z===0}else p=!0 if(p)throw H.a(P.bx('Malformed pattern "'+j.a+'"',null,null)) j=l.r s=j+s o=s+l.y p=l.a n=q>=0 m=n?o-q:0 p.cy=m if(n){s-=q p.db=s if(s<0)p.db=0}s=p.cx=(n?q:o)-j if(p.z){p.ch=j+s if(m===0&&s===0)p.cx=1}j=Math.max(0,l.z) p.f=j if(!p.r)p.e=j p.x=q===0||q===o j=k.a return j.charCodeAt(0)==0?j:j}, ad7:function(a){var s,r,q,p=this,o=null,n=p.b,m=n.c switch(m){case"#":if(p.x>0)++p.y else ++p.r s=p.z if(s>=0&&p.f<0)p.z=s+1 break case"0":if(p.y>0)throw H.a(P.bx('Unexpected "0" in pattern "'+n.a,o,o));++p.x s=p.z if(s>=0&&p.f<0)p.z=s+1 break case",":s=p.z if(s>0){r=p.a r.r=!0 r.e=s}p.z=0 break case".":if(p.f>=0)throw H.a(P.bx('Multiple decimal separators in pattern "'+n.j(0)+'"',o,o)) p.f=p.r+p.x+p.y break case"E":a.a+=H.c(m) s=p.a if(s.z)throw H.a(P.bx('Multiple exponential symbols in pattern "'+n.j(0)+'"',o,o)) s.z=!0 s.dx=0 n.q() q=n.c if(q==="+"){a.a+=H.c(q) n.q() s.y=!0}for(;r=n.c,r==="0";){a.a+=H.c(r) n.q();++s.dx}if(p.r+p.x<1||s.dx<1)throw H.a(P.bx('Malformed exponential pattern "'+n.j(0)+'"',o,o)) return!1 default:return!1}a.a+=H.c(m) n.q() return!0}} T.aeC.prototype={ gM:function(a){return this.a}} T.PU.prototype={ gw:function(a){return this.c}, q:function(){var s=this,r=s.b,q=s.a if(r>=q.length){s.c=null return!1}s.b=r+1 s.c=q[r] return!0}, gM:function(a){return this}} B.qq.prototype={ j:function(a){return this.a}} D.nA.prototype={ H:function(a,b){throw H.a(P.a4("implemented internally"))}, bK:function(a){var s=($.b5+1)%16777215 $.b5=s return new D.O_(P.aZ(t.eQ),null,s,this,C.a1,P.be(t.t))}} D.O_.prototype={ gE:function(){return t.To.a(N.dV.prototype.gE.call(this))}, bm:function(a){var s,r,q,p=this,o=p.eY$,n=o==null?null:o.aY if(n==null)n=t.To.a(N.dV.prototype.gE.call(p)).d for(o=t.To.a(N.dV.prototype.gE.call(p)).c,s=H.Y(o).h("bI<1>"),o=new H.bI(o,s),s=new H.bj(o,o.gl(o),s.h("bj")),r=null;s.q();n=r)r=new D.m2(s.d,n,p,null) if(r!=null)for(o=p.aY,o=P.cq(o,o.r,H.u(o).c);o.q();){s=o.d q=r.c if(!J.d(s.bl,q)){s.bl=q s.f0()}r=r.d s.sabf(r) if(!(r instanceof D.m2))break}return n}} D.m2.prototype={ bK:function(a){var s=($.b5+1)%16777215 $.b5=s return new D.ik(s,this,C.a1,P.be(t.t))}, H:function(a,b){return H.e(P.a4("handled internally"))}} D.ik.prototype={ gE:function(){return t.A7.a(N.dV.prototype.gE.call(this))}, sabf:function(a){var s,r,q=this.aY if(a instanceof D.m2)if(q instanceof D.m2){s=a.c r=q.c s=J.N(s)===J.N(r)&&J.d(s.a,r.a)}else s=!1 else s=!1 if(s)return if(!J.d(q,a)){this.aY=a this.be(new D.acW())}}, dQ:function(a,b){var s=this,r=t.A7 r.a(N.dV.prototype.gE.call(s)).e.aY.B(0,s) s.bl=r.a(N.dV.prototype.gE.call(s)).c s.aY=r.a(N.dV.prototype.gE.call(s)).d s.rp(a,b)}, ja:function(){t.A7.a(N.dV.prototype.gE.call(this)).e.aY.u(0,this) this.od()}, bm:function(a){return this.bl}} D.acW.prototype={ $1:function(a){return a.f0()}, $S:399} D.yr.prototype={} D.aev.prototype={ $1:function(a){if(a instanceof D.ik)this.a.eY$=a return!1}, $S:64} D.aew.prototype={ $1:function(a){if(a instanceof D.ik)this.a.eY$=a return!1}, $S:64} D.agb.prototype={ $1:function(a){if(a instanceof D.ik)this.a.eY$=a return!1}, $S:64} D.o_.prototype={ H:function(a,b){return this.A6(b,this.c)}, bK:function(a){return D.aAU(this)}} D.yq.prototype={ bm:function(a){var s=this if(s.eY$!=null)return t.uH.a(N.dV.prototype.gE.call(s)).A6(s,s.eY$.aY) return s.Ti(0)}, gE:function(){return t.uH.a(N.dV.prototype.gE.call(this))}} D.lF.prototype={ bK:function(a){return D.aAT(this)}, gYt:function(){return this.c}} D.r8.prototype={ H:function(a,b){return this.a.gYt()}} D.Jc.prototype={ gE:function(){return t.yt.a(N.au.prototype.gE.call(this))}, gb9:function(a){return t._g.a(this.y1)}, bm:function(a){var s=this if(s.eY$!=null){t._g.a(s.y1) return s.eY$.aY}return s.Th(0)}} D.PA.prototype={ dQ:function(a,b){if(a instanceof D.ik)this.eY$=a this.rp(a,b)}, jH:function(){this.Tg() this.ip(new D.aev(this))}} D.PB.prototype={ dQ:function(a,b){if(a instanceof D.ik)this.eY$=a this.rp(a,b)}, jH:function(){this.wH() this.ip(new D.aew(this))}} D.Rj.prototype={ dQ:function(a,b){if(a instanceof D.ik)this.eY$=a this.rp(a,b)}, jH:function(){this.wH() this.ip(new D.agb(this))}} M.UN.prototype={ a6S:function(a,b){var s,r=null M.arS("absolute",H.b([b,null,null,null,null,null,null],t._m)) s=this.a s=s.f5(b)>0&&!s.kl(b) if(s)return b s=this.b return this.abG(0,s==null?D.as3():s,b,r,r,r,r,r,r)}, abG:function(a,b,c,d,e,f,g,h,i){var s=H.b([b,c,d,e,f,g,h,i],t._m) M.arS("join",s) return this.abH(new H.fP(s,t.Ri))}, abH:function(a){var s,r,q,p,o,n,m,l,k for(s=J.axo(a,new M.UP()),r=J.as(s.a),s=new H.hn(r,s.b,s.$ti.h("hn<1>")),q=this.a,p=!1,o=!1,n="";s.q();){m=r.gw(r) if(q.kl(m)&&o){l=X.Hr(m,q) k=n.charCodeAt(0)==0?n:n n=C.c.V(k,0,q.nJ(k,!0)) l.b=n if(q.qh(n))l.e[0]=q.gm1() n=l.j(0)}else if(q.f5(m)>0){o=!q.kl(m) n=H.c(m)}else{if(!(m.length!==0&&q.Aj(m[0])))if(p)n+=q.gm1() n+=m}p=q.qh(m)}return n.charCodeAt(0)==0?n:n}, rm:function(a,b){var s=X.Hr(b,this.a),r=s.d,q=H.Y(r).h("aO<1>") q=P.an(new H.aO(r,new M.UQ(),q),!0,q.h("l.E")) s.d=q r=s.b if(r!=null)C.b.lq(q,0,r) return s.d}, C3:function(a,b){var s if(!this.a35(b))return b s=X.Hr(b,this.a) s.C2(0) return s.j(0)}, a35:function(a){var s,r,q,p,o,n,m,l,k,j a.toString s=this.a r=s.f5(a) if(r!==0){if(s===$.Sa())for(q=0;q0)return o.C3(0,a) if(m.f5(a)<=0||m.kl(a))a=o.a6S(0,a) if(m.f5(a)<=0&&m.f5(s)>0)throw H.a(X.aoZ(n+H.c(a)+'" from "'+H.c(s)+'".')) r=X.Hr(s,m) r.C2(0) q=X.Hr(a,m) q.C2(0) l=r.d if(l.length!==0&&J.d(l[0],"."))return q.j(0) l=r.b p=q.b if(l!=p)l=l==null||p==null||!m.Cf(l,p) else l=!1 if(l)return q.j(0) while(!0){l=r.d if(l.length!==0){p=q.d l=p.length!==0&&m.Cf(l[0],p[0])}else l=!1 if(!l)break C.b.eH(r.d,0) C.b.eH(r.e,1) C.b.eH(q.d,0) C.b.eH(q.e,1)}l=r.d if(l.length!==0&&J.d(l[0],".."))throw H.a(X.aoZ(n+H.c(a)+'" from "'+H.c(s)+'".')) l=t.N C.b.q5(q.d,0,P.b6(r.d.length,"..",!1,l)) p=q.e p[0]="" C.b.q5(p,1,P.b6(r.d.length,m.gm1(),!1,l)) m=q.d l=m.length if(l===0)return"." if(l>1&&J.d(C.b.gL(m),".")){C.b.em(q.d) m=q.e m.pop() m.pop() m.push("")}q.b="" q.ON() return q.j(0)}, Op:function(a){var s,r,q=this,p=M.arC(a) if(p.gdT()==="file"&&q.a==$.CO())return p.j(0) else if(p.gdT()!=="file"&&p.gdT()!==""&&q.a!=$.CO())return p.j(0) s=q.C3(0,q.a.Ce(M.arC(p))) r=q.ady(s) return q.rm(0,r).length>q.rm(0,s).length?s:r}} M.UP.prototype={ $1:function(a){return a!==""}, $S:29} M.UQ.prototype={ $1:function(a){return a.length!==0}, $S:29} M.ahl.prototype={ $1:function(a){return a==null?"null":'"'+a+'"'}, $S:401} B.Zv.prototype={ Q5:function(a){var s=this.f5(a) if(s>0)return J.e7(a,0,s) return this.kl(a)?a[0]:null}, Cf:function(a,b){return a==b}} X.a0Z.prototype={ ON:function(){var s,r,q=this while(!0){s=q.d if(!(s.length!==0&&J.d(C.b.gL(s),"")))break C.b.em(q.d) q.e.pop()}s=q.e r=s.length if(r!==0)s[r-1]=""}, C2:function(a){var s,r,q,p,o,n,m=this,l=H.b([],t.s) for(s=m.d,r=s.length,q=0,p=0;p0){r=C.c.i9(a,"\\",r+1) if(r>0)return r}return q}if(q<3)return 0 if(!B.ask(s))return 0 if(C.c.W(a,1)!==58)return 0 q=C.c.W(a,2) if(!(q===47||q===92))return 0 return 3}, f5:function(a){return this.nJ(a,!1)}, kl:function(a){return this.f5(a)===1}, Ce:function(a){var s,r if(a.gdT()!==""&&a.gdT()!=="file")throw H.a(P.bc("Uri "+a.j(0)+" must have scheme 'file:'.")) s=a.gdR(a) if(a.ghy(a)===""){if(s.length>=3&&C.c.bv(s,"/")&&B.asm(s,1))s=C.c.OP(s,"/","")}else s="\\\\"+a.ghy(a)+s r=H.is(s,"/","\\") return P.afT(r,0,r.length,C.U,!1)}, a82:function(a,b){var s if(a===b)return!0 if(a===47)return b===92 if(a===92)return b===47 if((a^b)!==32)return!1 s=a|32 return s>=97&&s<=122}, Cf:function(a,b){var s,r,q if(a==b)return!0 s=a.length if(s!==b.length)return!1 for(r=J.cj(b),q=0;q"))}, A6:function(a,b){return new Y.e0(this,b,null,this.$ti.h("e0<1*>"))}} Y.Aq.prototype={} Y.e0.prototype={ cZ:function(a){return!1}, bK:function(a){var s=t.t,r=P.fr(null,null,null,s,t.O),q=($.b5+1)%16777215 $.b5=q return new Y.oF(r,q,this,C.a1,P.be(s),this.$ti.h("oF<1*>"))}} Y.oA.prototype={} Y.oF.prototype={ gE:function(){return this.$ti.h("e0<1*>*").a(N.co.prototype.gE.call(this))}, Pi:function(a,b){var s,r=this.aY,q=r.i(0,a),p=q==null if(!p&&!this.$ti.h("oA<1*>*").b(q))return s=this.$ti if(s.h("G*(1*)*").b(b)){p=p?new Y.oA(H.b([],s.h("o")),s.h("oA<1*>")):q s.h("oA<1*>*").a(p) if(p.a){p.a=!1 C.b.sl(p.c,0)}if(!p.b){p.b=!0 $.bT.ch$.push(new Y.ab8(p))}p.c.push(b) r.n(0,a,p)}else r.n(0,a,C.fx)}, O3:function(a,b){var s,r,q,p,o,n=this.aY.i(0,b),m=!1 if(n!=null)if(this.$ti.h("oA<1*>*").b(n)){if(b.ch)return for(r=n.c,q=r.length,p=0;p*").a(N.co.prototype.gE.call(r)).f.e.$ti.h("zR<1*>")) s.a=r r.d3=s}r.Eb()}, b5:function(a,b){var s=this s.cE=!0 s.d3.toString s.e3=!1 s.Ex(0,b) s.e3=!1}, qN:function(a){this.S4(a)}, aG:function(){this.cE=!0 this.Eh()}, bm:function(a){var s=this,r=s.$ti.h("e0<1*>*") r.a(N.co.prototype.gE.call(s)).toString s.d3.H(0,s.cE) s.cE=!1 if(s.c_){s.c_=!1 s.qj(r.a(N.co.prototype.gE.call(s)))}return s.Ew(0)}, ja:function(){var s,r=this.d3 r.toString r.Tw(0) s=r.b if(s!=null)s.$0() if(r.c){s=r.a s.toString r.$ti.h("ig.D*").a(s.$ti.h("e0<1*>*").a(N.co.prototype.gE.call(s)).f.e).f.$2(r.a,r.d)}this.od()}, ac1:function(){if(!this.aK)return this.f0() this.c_=!0}, uv:function(a,b){return this.wJ(a,b)}, $iG2:1} Y.ab8.prototype={ $1:function(a){var s=this.a s.b=!1 s.a=!0}, $S:402} Y.M8.prototype={} Y.ig.prototype={ p:function(a){}, H:function(a,b){}} Y.ta.prototype={} Y.zR.prototype={ gm:function(a){var s,r,q=this if(!q.c){q.c=!0 s=q.a s.toString r=q.$ti.h("ig.D*") r.a(s.$ti.h("e0<1*>*").a(N.co.prototype.gE.call(s)).f.e) try{s=q.a s.toString q.d=r.a(s.$ti.h("e0<1*>*").a(N.co.prototype.gE.call(s)).f.e).a.$1(q.a)}finally{}s=q.a s.toString r.a(s.$ti.h("e0<1*>*").a(N.co.prototype.gE.call(s)).f.e)}s=q.a s.aK=!1 if(q.b==null){s.toString s=q.$ti.h("ig.D*").a(s.$ti.h("e0<1*>*").a(N.co.prototype.gE.call(s)).f.e).e.$2(q.a,q.d) q.b=s}q.a.aK=!0 return q.d}, H:function(a,b){var s,r=this if(b)if(r.c){s=r.a s.toString r.$ti.h("ig.D*").a(s.$ti.h("e0<1*>*").a(N.co.prototype.gE.call(s)).f.e)}s=r.a s.toString r.e=r.$ti.h("ig.D*").a(s.$ti.h("e0<1*>*").a(N.co.prototype.gE.call(s)).f.e) return r.Tv(0,b)}} Y.GL.prototype={} Y.a1G.prototype={ $1:function(a){var s=this.b this.a.a=s.h("oF<0*>*").a(a.kD(s.h("e0<0*>*"))) return!1}, $S:64} Y.xB.prototype={ j:function(a){var s=this.a,r=this.b return"Error: Could not find the correct Provider<"+s.j(0)+"> above this "+r.j(0)+' Widget\n\nThis likely happens because you used a `BuildContext` that does not include the provider\nof your choice. There are a few common scenarios:\n\n- The provider you are trying to read is in a different route.\n\n Providers are "scoped". So if you insert of provider inside a route, then\n other routes will not be able to access that provider.\n\n- You used a `BuildContext` that is an ancestor of the provider you are trying to read.\n\n Make sure that '+r.j(0)+" is under your MultiProvider/Provider<"+s.j(0)+">.\n This usually happen when you are creating a provider and trying to read it immediately.\n\n For example, instead of:\n\n ```\n Widget build(BuildContext context) {\n return Provider(\n create: (_) => Example(),\n // Will throw a ProviderNotFoundError, because `context` is associated\n // to the widget that is the parent of `Provider`\n child: Text(context.watch()),\n ),\n }\n ```\n\n consider using `builder` like so:\n\n ```\n Widget build(BuildContext context) {\n return Provider(\n create: (_) => Example(),\n // we use `builder` to obtain a new `BuildContext` that has access to the provider\n builder: (context) {\n // No longer throws\n return Text(context.watch()),\n }\n ),\n }\n ```\n\nIf none of these solutions work, consider asking for help on StackOverflow:\nhttps://stackoverflow.com/questions/tagged/flutter\n"}, $icc:1} V.r4.prototype={} F.a_H.prototype={ qS:function(a){return C.xh.vf("getAll",t.X,t.ub)}} E.a4M.prototype={} V.a4L.prototype={ qS:function(a){var s=0,r=P.af(t.xS),q,p=this,o,n,m,l,k var $async$qS=P.a9(function(b,c){if(b===1)return P.ac(c,r) while(true)switch(s){case 0:k=P.y(t.X,t.ub) for(o=p.ga5z(),n=o.length,m=0;m=r||s[n]!==10)o=10}if(o===10)q.push(p+1)}}, nW:function(a){var s,r=this if(a<0)throw H.a(P.cN("Offset may not be negative, was "+a+".")) else if(a>r.c.length)throw H.a(P.cN("Offset "+a+u.D+r.gl(r)+".")) s=r.b if(a=C.b.gL(s))return s.length-1 if(r.a2C(a)){s=r.d s.toString return s}return r.d=r.ZQ(a)-1}, a2C:function(a){var s,r,q=this.d if(q==null)return!1 s=this.b if(a=r-1||a=r-2||aa)p=r else s=r+1}return p}, vZ:function(a){var s,r,q=this if(a<0)throw H.a(P.cN("Offset may not be negative, was "+a+".")) else if(a>q.c.length)throw H.a(P.cN("Offset "+a+" must be not be greater than the number of characters in the file, "+q.gl(q)+".")) s=q.nW(a) r=q.b[s] if(r>a)throw H.a(P.cN("Line "+H.c(s)+" comes after offset "+a+".")) return a-r}, kE:function(a){var s,r,q,p,o=this if(a<0)throw H.a(P.cN("Line may not be negative, was "+H.c(a)+".")) else{s=o.b r=s.length if(a>=r)throw H.a(P.cN("Line "+H.c(a)+" must be less than the number of lines in the file, "+o.gabO(o)+"."))}q=s[a] if(q<=o.c.length){p=a+1 s=p=s[p]}else s=!0 if(s)throw H.a(P.cN("Line "+H.c(a)+" doesn't have 0 columns.")) return q}} Y.Fr.prototype={ gc1:function(){return this.a.a}, gcK:function(a){return this.a.nW(this.b)}, gd7:function(){return this.a.vZ(this.b)}, gbV:function(a){return this.b}} Y.A8.prototype={ gc1:function(){return this.a.a}, gl:function(a){return this.c-this.b}, gbb:function(a){return Y.ajA(this.a,this.b)}, gaX:function(a){return Y.ajA(this.a,this.c)}, gbs:function(a){return P.kf(C.hs.c2(this.a.c,this.b,this.c),0,null)}, gaL:function(a){var s=this,r=s.a,q=s.c,p=r.nW(q) if(r.vZ(q)===0&&p!==0){if(q-s.b===0)return p===r.b.length-1?"":P.kf(C.hs.c2(r.c,r.kE(p),r.kE(p+1)),0,null)}else q=p===r.b.length-1?r.c.length:r.kE(p+1) return P.kf(C.hs.c2(r.c,r.kE(r.nW(s.b)),q),0,null)}, bR:function(a,b){var s if(!(b instanceof Y.A8))return this.Te(0,b) s=C.f.bR(this.b,b.b) return s===0?C.f.bR(this.c,b.c):s}, k:function(a,b){var s=this if(b==null)return!1 if(!t.GH.b(b))return s.Td(0,b) return s.b===b.b&&s.c===b.c&&J.d(s.a.a,b.a.a)}, gt:function(a){return Y.rw.prototype.gt.call(this,this)}, $iao5:1, $ikd:1, d4:function(a){return this.gbs(this).$0()}} U.Ym.prototype={ aaY:function(a3){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1=this,a2=a1.a a1.KL(C.b.gI(a2).c) s=P.b6(a1.e,null,!1,t.Xk) for(r=a1.r,q=s.length!==0,p=a1.b,o=0;o0){m=a2[o-1] l=m.c k=n.c if(!J.d(l,k)){a1.tR("\u2575") r.a+="\n" a1.KL(k)}else if(m.b+1!==n.b){a1.a6P("...") r.a+="\n"}}for(l=n.d,k=H.Y(l).h("bI<1>"),j=new H.bI(l,k),k=new H.bj(j,j.gl(j),k.h("bj")),j=n.b,i=n.a,h=J.cj(i);k.q();){g=k.d f=g.a e=f.gbb(f) e=e.gcK(e) d=f.gaX(f) if(e!=d.gcK(d)){e=f.gbb(f) f=e.gcK(e)===j&&a1.a2D(h.V(i,0,f.gbb(f).gd7()))}else f=!1 if(f){c=C.b.eF(s,null) if(c<0)H.e(P.bc(H.c(s)+" contains no null elements.")) s[c]=g}}a1.a6O(j) r.a+=" " a1.a6N(n,s) if(q)r.a+=" " b=C.b.abd(l,new U.YH()) a=b===-1?null:l[b] k=a!=null if(k){h=a.a g=h.gbb(h) g=g.gcK(g)===j?h.gbb(h).gd7():0 f=h.gaX(h) a1.a6L(i,g,f.gcK(f)===j?h.gaX(h).gd7():i.length,p)}else a1.tT(i) r.a+="\n" if(k)a1.a6M(n,a,s) for(k=l.length,a0=0;a0")) r=this.r for(;s.q();){q=s.d if(q===9)r.a+=C.c.a4(" ",4) else r.a+=H.bH(q)}}, tS:function(a,b,c){var s={} s.a=c if(b!=null)s.a=C.f.j(b+1) this.fH(new U.YF(s,this,a),"\x1b[34m")}, tR:function(a){return this.tS(a,null,null)}, a6P:function(a){return this.tS(null,null,a)}, a6O:function(a){return this.tS(null,a,null)}, zL:function(){return this.tS(null,null,null)}, xz:function(a){var s,r for(s=new H.hD(a),s=new H.bj(s,s.gl(s),t.Hz.h("bj")),r=0;s.q();)if(s.d===9)++r return r}, a2D:function(a){var s,r for(s=new H.hD(a),s=new H.bj(s,s.gl(s),t.Hz.h("bj"));s.q();){r=s.d if(r!==32&&r!==9)return!1}return!0}, fH:function(a,b){var s=this.b!=null if(s&&b!=null)this.r.a+=b a.$0() if(s&&b!=null)this.r.a+="\x1b[0m"}} U.YG.prototype={ $0:function(){return this.a}, $S:403} U.Yo.prototype={ $1:function(a){var s=a.d s=new H.aO(s,new U.Yn(),H.Y(s).h("aO<1>")) return s.gl(s)}, $S:404} U.Yn.prototype={ $1:function(a){var s=a.a,r=s.gbb(s) r=r.gcK(r) s=s.gaX(s) return r!=s.gcK(s)}, $S:82} U.Yp.prototype={ $1:function(a){return a.c}, $S:406} U.Yr.prototype={ $1:function(a){return a.a.gc1()}, $S:407} U.Ys.prototype={ $2:function(a,b){return a.a.bR(0,b.a)}, $C:"$2", $R:2, $S:408} U.Yt.prototype={ $1:function(a){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d=H.b([],t.Kx) for(s=J.bP(a),r=s.gM(a),q=t._Y;r.q();){p=r.gw(r).a o=p.gaL(p) n=B.ahG(o,p.gbs(p),p.gbb(p).gd7()) n.toString n=C.c.tY("\n",C.c.V(o,0,n)) m=n.gl(n) l=p.gc1() p=p.gbb(p) k=p.gcK(p)-m for(p=o.split("\n"),n=p.length,j=0;jC.b.gL(d).b)d.push(new U.ij(i,k,l,H.b([],q)));++k}}h=H.b([],q) for(r=d.length,g=0,j=0;ji.b)break if(!J.d(n.gc1(),i.c))break h.push(p)}g+=h.length-f C.b.J(i.d,h)}return d}, $S:409} U.Yq.prototype={ $1:function(a){var s=a.a,r=this.a if(J.d(s.gc1(),r.c)){s=s.gaX(s) r=s.gcK(s)" return null}, $S:0} U.YB.prototype={ $0:function(){var s=this.b===this.c.b?"\u250c":"\u2514" this.a.r.a+=s}, $S:0} U.YC.prototype={ $0:function(){var s=this.b==null?"\u2500":"\u253c" this.a.r.a+=s}, $S:0} U.YD.prototype={ $0:function(){this.a.r.a+="\u2500" return null}, $S:0} U.YE.prototype={ $0:function(){var s,r,q=this,p=q.a,o=p.a?"\u253c":"\u2502" if(q.c!=null)q.b.r.a+=o else{s=q.e r=s.b if(q.d===r){s=q.b s.fH(new U.Yz(p,s),p.b) p.a=!0 if(p.b==null)p.b=s.b}else{if(q.r===r){r=q.f.a s=r.gaX(r).gd7()===s.a.length}else s=!1 r=q.b if(s)r.r.a+="\u2514" else r.fH(new U.YA(r,o),p.b)}}}, $S:0} U.Yz.prototype={ $0:function(){var s=this.a.a?"\u252c":"\u250c" this.b.r.a+=s}, $S:0} U.YA.prototype={ $0:function(){this.a.r.a+=this.b}, $S:0} U.Yv.prototype={ $0:function(){var s=this return s.a.tT(C.c.V(s.b,s.c,s.d))}, $S:0} U.Yw.prototype={ $0:function(){var s,r,q=this.a,p=this.c.a,o=p.gbb(p).gd7(),n=p.gaX(p).gd7() p=this.b.a s=q.xz(J.e7(p,0,o)) r=q.xz(C.c.V(p,o,n)) o+=s*3 q=q.r q.a+=C.c.a4(" ",o) q.a+=C.c.a4("^",Math.max(n+(s+r)*3-o,1))}, $S:0} U.Yx.prototype={ $0:function(){var s=this.c.a return this.a.a6K(this.b,s.gbb(s).gd7())}, $S:0} U.Yy.prototype={ $0:function(){var s,r=this,q=r.a if(r.b)q.r.a+=C.c.a4("\u2500",3) else{s=r.d.a q.KK(r.c,Math.max(s.gaX(s).gd7()-1,0),!1)}}, $S:0} U.YF.prototype={ $0:function(){var s=this.b,r=s.r,q=this.a.a if(q==null)q="" s=r.a+=C.c.acZ(q,s.d) q=this.c r.a=s+(q==null?"\u2502":q)}, $S:0} U.ej.prototype={ j:function(a){var s,r=this.a,q=r.gbb(r) q=H.c(q.gcK(q))+":"+r.gbb(r).gd7()+"-" s=r.gaX(r) r="primary "+(q+H.c(s.gcK(s))+":"+r.gaX(r).gd7()) return r.charCodeAt(0)==0?r:r}} U.aaW.prototype={ $0:function(){var s,r,q,p,o=this.a if(!(t.D_.b(o)&&B.ahG(o.gaL(o),o.gbs(o),o.gbb(o).gd7())!=null)){s=o.gbb(o) s=V.JC(s.gbV(s),0,0,o.gc1()) r=o.gaX(o) r=r.gbV(r) q=o.gc1() p=B.aF9(o.gbs(o),10) o=X.a65(s,V.JC(r,U.aqi(o.gbs(o)),p,q),o.gbs(o),o.gbs(o))}return U.aC3(U.aC5(U.aC4(o)))}, $S:410} U.ij.prototype={ j:function(a){return""+this.b+': "'+H.c(this.a)+'" ('+C.b.bI(this.d,", ")+")"}, d4:function(a){return this.a.$0()}} V.i6.prototype={ AO:function(a){var s=this.a if(!J.d(s,a.gc1()))throw H.a(P.bc('Source URLs "'+H.c(s)+'" and "'+H.c(a.gc1())+"\" don't match.")) return Math.abs(this.b-a.gbV(a))}, bR:function(a,b){var s=this.a if(!J.d(s,b.gc1()))throw H.a(P.bc('Source URLs "'+H.c(s)+'" and "'+H.c(b.gc1())+"\" don't match.")) return this.b-b.gbV(b)}, k:function(a,b){if(b==null)return!1 return t.y3.b(b)&&J.d(this.a,b.gc1())&&this.b===b.gbV(b)}, gt:function(a){var s=this.a s=s==null?null:s.gt(s) if(s==null)s=0 return s+this.b}, j:function(a){var s=this,r="<"+H.E(s).j(0)+": "+s.b+" ",q=s.a return r+(H.c(q==null?"unknown source":q)+":"+(s.c+1)+":"+(s.d+1))+">"}, $ibi:1, gc1:function(){return this.a}, gbV:function(a){return this.b}, gcK:function(a){return this.c}, gd7:function(){return this.d}} D.JD.prototype={ AO:function(a){if(!J.d(this.a.a,a.gc1()))throw H.a(P.bc('Source URLs "'+H.c(this.gc1())+'" and "'+H.c(a.gc1())+"\" don't match.")) return Math.abs(this.b-a.gbV(a))}, bR:function(a,b){if(!J.d(this.a.a,b.gc1()))throw H.a(P.bc('Source URLs "'+H.c(this.gc1())+'" and "'+H.c(b.gc1())+"\" don't match.")) return this.b-b.gbV(b)}, k:function(a,b){if(b==null)return!1 return t.y3.b(b)&&J.d(this.a.a,b.gc1())&&this.b===b.gbV(b)}, gt:function(a){var s=this.a.a s=s==null?null:s.gt(s) if(s==null)s=0 return s+this.b}, j:function(a){var s=this.b,r="<"+H.E(this).j(0)+": "+s+" ",q=this.a,p=q.a return r+(H.c(p==null?"unknown source":p)+":"+(q.nW(s)+1)+":"+(q.vZ(s)+1))+">"}, $ibi:1, $ii6:1} V.JE.prototype={ WO:function(a,b,c){var s,r=this.b,q=this.a if(!J.d(r.gc1(),q.gc1()))throw H.a(P.bc('Source URLs "'+H.c(q.gc1())+'" and "'+H.c(r.gc1())+"\" don't match.")) else if(r.gbV(r)'}, $ibi:1, $ij4:1} X.kd.prototype={ gaL:function(a){return this.d}} E.JS.prototype={ gwt:function(a){return H.cr(this.c)}} X.a6z.prototype={ gBP:function(){var s=this if(s.c!==s.e)s.d=null return s.d}, wa:function(a){var s,r=this,q=r.d=J.an_(a,r.b,r.c) r.e=r.c s=q!=null if(s)r.e=r.c=q.gaX(q) return s}, Ms:function(a,b){var s if(this.wa(a))return if(b==null)if(t.bN.b(a))b="/"+a.a+"/" else{s=J.bB(a) s=H.is(s,"\\","\\\\") b='"'+H.is(s,'"','\\"')+'"'}this.Gy(b) H.j(u.V)}, pK:function(a){return this.Ms(a,null)}, a9R:function(){if(this.c===this.b.length)return this.Gy("no more input") H.j(u.V)}, a9H:function(a,b,c,d){var s,r,q,p,o,n,m=this.b if(d<0)H.e(P.cN("position must be greater than or equal to 0.")) else if(d>m.length)H.e(P.cN("position must be less than or equal to the string length.")) s=d+c>m.length if(s)H.e(P.cN("position plus length must not go beyond the end of the string.")) s=this.a r=new H.hD(m) q=H.b([0],t._) p=new Uint32Array(H.mb(r.f7(r))) o=new Y.a64(s,q,p) o.WN(r,s) n=d+c if(n>p.length)H.e(P.cN("End "+n+u.D+o.gl(o)+".")) else if(d<0)H.e(P.cN("Start may not be negative, was "+d+".")) throw H.a(new E.JS(m,b,new Y.A8(o,d,n)))}, Gy:function(a){this.a9H(0,"expected "+a+".",0,this.c) H.j(u.V)}} E.ki.prototype={ gl:function(a){return this.b}, i:function(a,b){if(b>=this.b)throw H.a(P.bY(b,this,null,null,null)) return this.a[b]}, n:function(a,b,c){if(b>=this.b)throw H.a(P.bY(b,this,null,null,null)) this.a[b]=c}, sl:function(a,b){var s,r,q,p=this,o=p.b if(bo){if(o===0)q=new Uint8Array(b) else q=p.xA(b) C.a0.cV(q,0,p.b,p.a) p.a=q}}p.b=b}, dg:function(a,b){var s=this,r=s.b if(r===s.a.length)s.H8(r) s.a[s.b++]=b}, B:function(a,b){var s=this,r=s.b if(r===s.a.length)s.H8(r) s.a[s.b++]=b}, iE:function(a,b,c,d){P.cV(c,"start") if(d!=null&&c>d)throw H.a(P.bz(d,c,null,"end",null)) this.Xt(b,c,d)}, J:function(a,b){return this.iE(a,b,0,null)}, Xt:function(a,b,c){var s,r,q if(t.j.b(a))c=c==null?J.bQ(a):c if(c!=null){this.a2u(this.b,a,b,c) return}for(s=J.as(a),r=0;s.q();){q=s.gw(s) if(r>=b)this.dg(0,q);++r}if(rs.gl(b)||d>s.gl(b))throw H.a(P.a4("Too few elements"))}r=d-c q=o.b+r o.ZE(q) s=o.a p=a+r C.a0.b3(s,p,o.b+r,s,a) C.a0.b3(o.a,a,p,b,c) o.b=q}, ZE:function(a){var s,r=this if(a<=r.a.length)return s=r.xA(a) C.a0.cV(s,0,r.b,r.a) r.a=s}, xA:function(a){var s=this.a.length*2 if(a!=null&&ss)throw H.a(P.bz(c,0,s,null,null)) s=this.a if(H.u(this).h("ki").b(d))C.a0.b3(s,b,c,d.a,e) else C.a0.b3(s,b,c,d,e)}, cV:function(a,b,c,d){return this.b3(a,b,c,d,0)}} E.Ni.prototype={} E.Km.prototype={} A.ahN.prototype={ $2:function(a,b){var s=a+J.a3(b)&536870911 s=s+((s&524287)<<10)&536870911 return s^s>>>6}, $S:411} E.b8.prototype={ bC:function(a){var s=a.a,r=this.a r[15]=s[15] r[14]=s[14] r[13]=s[13] r[12]=s[12] r[11]=s[11] r[10]=s[10] r[9]=s[9] r[8]=s[8] r[7]=s[7] r[6]=s[6] r[5]=s[5] r[4]=s[4] r[3]=s[3] r[2]=s[2] r[1]=s[1] r[0]=s[0]}, j:function(a){var s=this return"[0] "+s.r5(0).j(0)+"\n[1] "+s.r5(1).j(0)+"\n[2] "+s.r5(2).j(0)+"\n[3] "+s.r5(3).j(0)+"\n"}, i:function(a,b){return this.a[b]}, n:function(a,b,c){this.a[b]=c}, k:function(a,b){var s,r,q if(b==null)return!1 if(b instanceof E.b8){s=this.a r=s[0] q=b.a s=r===q[0]&&s[1]===q[1]&&s[2]===q[2]&&s[3]===q[3]&&s[4]===q[4]&&s[5]===q[5]&&s[6]===q[6]&&s[7]===q[7]&&s[8]===q[8]&&s[9]===q[9]&&s[10]===q[10]&&s[11]===q[11]&&s[12]===q[12]&&s[13]===q[13]&&s[14]===q[14]&&s[15]===q[15]}else s=!1 return s}, gt:function(a){return A.alx(this.a)}, wl:function(a,b){var s=b.a,r=this.a r[a]=s[0] r[4+a]=s[1] r[8+a]=s[2] r[12+a]=s[3]}, r5:function(a){var s=new Float64Array(4),r=this.a s[0]=r[a] s[1]=r[4+a] s[2]=r[8+a] s[3]=r[12+a] return new E.ic(s)}, a4:function(a,b){var s if(typeof b=="number"){s=new E.b8(new Float64Array(16)) s.bC(this) s.is(0,b,null,null) return s}if(b instanceof E.b8){s=new E.b8(new Float64Array(16)) s.bC(this) s.cz(0,b) return s}throw H.a(P.bc(b))}, U:function(a,b){var s=new E.b8(new Float64Array(16)) s.bC(this) s.B(0,b) return s}, a5:function(a,b){var s,r=new Float64Array(16),q=new E.b8(r) q.bC(this) s=b.a r[0]=r[0]-s[0] r[1]=r[1]-s[1] r[2]=r[2]-s[2] r[3]=r[3]-s[3] r[4]=r[4]-s[4] r[5]=r[5]-s[5] r[6]=r[6]-s[6] r[7]=r[7]-s[7] r[8]=r[8]-s[8] r[9]=r[9]-s[9] r[10]=r[10]-s[10] r[11]=r[11]-s[11] r[12]=r[12]-s[12] r[13]=r[13]-s[13] r[14]=r[14]-s[14] r[15]=r[15]-s[15] return q}, af:function(a,a0,a1){var s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b if(typeof a0!="number")throw H.a(P.ce(null)) s=a0 r=this.a q=r[0] p=r[4] o=r[8] n=r[12] m=r[1] l=r[5] k=r[9] j=r[13] i=r[2] h=r[6] g=r[10] f=r[14] e=r[3] d=r[7] c=r[11] b=r[15] r[12]=q*s+p*a1+o*0+n r[13]=m*s+l*a1+k*0+j r[14]=i*s+h*a1+g*0+f r[15]=e*s+d*a1+c*0+b}, is:function(a,b,c,d){var s,r,q,p if(typeof b=="number"){s=c==null?b:c r=d==null?b:d}else throw H.a(P.ce(null)) q=b p=this.a p[0]=p[0]*q p[1]=p[1]*q p[2]=p[2]*q p[3]=p[3]*q p[4]=p[4]*s p[5]=p[5]*s p[6]=p[6]*s p[7]=p[7]*s p[8]=p[8]*r p[9]=p[9]*r p[10]=p[10]*r p[11]=p[11]*r p[12]=p[12] p[13]=p[13] p[14]=p[14] p[15]=p[15]}, bp:function(a,b){return this.is(a,b,null,null)}, DU:function(){var s=this.a s[0]=0 s[1]=0 s[2]=0 s[3]=0 s[4]=0 s[5]=0 s[6]=0 s[7]=0 s[8]=0 s[9]=0 s[10]=0 s[11]=0 s[12]=0 s[13]=0 s[14]=0 s[15]=0}, du:function(){var s=this.a s[0]=1 s[1]=0 s[2]=0 s[3]=0 s[4]=0 s[5]=1 s[6]=0 s[7]=0 s[8]=0 s[9]=0 s[10]=1 s[11]=0 s[12]=0 s[13]=0 s[14]=0 s[15]=1}, jZ:function(b5){var s,r,q,p,o=b5.a,n=o[0],m=o[1],l=o[2],k=o[3],j=o[4],i=o[5],h=o[6],g=o[7],f=o[8],e=o[9],d=o[10],c=o[11],b=o[12],a=o[13],a0=o[14],a1=o[15],a2=n*i-m*j,a3=n*h-l*j,a4=n*g-k*j,a5=m*h-l*i,a6=m*g-k*i,a7=l*g-k*h,a8=f*a-e*b,a9=f*a0-d*b,b0=f*a1-c*b,b1=e*a0-d*a,b2=e*a1-c*a,b3=d*a1-c*a0,b4=a2*b3-a3*b2+a4*b1+a5*b0-a6*a9+a7*a8 if(b4===0){this.bC(b5) return 0}s=1/b4 r=this.a r[0]=(i*b3-h*b2+g*b1)*s r[1]=(-m*b3+l*b2-k*b1)*s r[2]=(a*a7-a0*a6+a1*a5)*s r[3]=(-e*a7+d*a6-c*a5)*s q=-j r[4]=(q*b3+h*b0-g*a9)*s r[5]=(n*b3-l*b0+k*a9)*s p=-b r[6]=(p*a7+a0*a4-a1*a3)*s r[7]=(f*a7-d*a4+c*a3)*s r[8]=(j*b2-i*b0+g*a8)*s r[9]=(-n*b2+m*b0-k*a8)*s r[10]=(b*a6-a*a4+a1*a2)*s r[11]=(-f*a6+e*a4-c*a2)*s r[12]=(q*b1+i*a9-h*a8)*s r[13]=(n*b1-m*a9+l*a8)*s r[14]=(p*a5+a*a3-a0*a2)*s r[15]=(f*a5-e*a3+d*a2)*s return b4}, B:function(a,b){var s=b.a,r=this.a r[0]=r[0]+s[0] r[1]=r[1]+s[1] r[2]=r[2]+s[2] r[3]=r[3]+s[3] r[4]=r[4]+s[4] r[5]=r[5]+s[5] r[6]=r[6]+s[6] r[7]=r[7]+s[7] r[8]=r[8]+s[8] r[9]=r[9]+s[9] r[10]=r[10]+s[10] r[11]=r[11]+s[11] r[12]=r[12]+s[12] r[13]=r[13]+s[13] r[14]=r[14]+s[14] r[15]=r[15]+s[15]}, cz:function(b5,b6){var s=this.a,r=s[0],q=s[4],p=s[8],o=s[12],n=s[1],m=s[5],l=s[9],k=s[13],j=s[2],i=s[6],h=s[10],g=s[14],f=s[3],e=s[7],d=s[11],c=s[15],b=b6.a,a=b[0],a0=b[4],a1=b[8],a2=b[12],a3=b[1],a4=b[5],a5=b[9],a6=b[13],a7=b[2],a8=b[6],a9=b[10],b0=b[14],b1=b[3],b2=b[7],b3=b[11],b4=b[15] s[0]=r*a+q*a3+p*a7+o*b1 s[4]=r*a0+q*a4+p*a8+o*b2 s[8]=r*a1+q*a5+p*a9+o*b3 s[12]=r*a2+q*a6+p*b0+o*b4 s[1]=n*a+m*a3+l*a7+k*b1 s[5]=n*a0+m*a4+l*a8+k*b2 s[9]=n*a1+m*a5+l*a9+k*b3 s[13]=n*a2+m*a6+l*b0+k*b4 s[2]=j*a+i*a3+h*a7+g*b1 s[6]=j*a0+i*a4+h*a8+g*b2 s[10]=j*a1+i*a5+h*a9+g*b3 s[14]=j*a2+i*a6+h*b0+g*b4 s[3]=f*a+e*a3+d*a7+c*b1 s[7]=f*a0+e*a4+d*a8+c*b2 s[11]=f*a1+e*a5+d*a9+c*b3 s[15]=f*a2+e*a6+d*b0+c*b4}, aed:function(a){var s=a.a,r=this.a,q=r[0],p=s[0],o=r[4],n=s[1],m=r[8],l=s[2],k=r[12],j=r[1],i=r[5],h=r[9],g=r[13],f=r[2],e=r[6],d=r[10] r=r[14] s[0]=q*p+o*n+m*l+k s[1]=j*p+i*n+h*l+g s[2]=f*p+e*n+d*l+r return a}, b1:function(a2,a3){var s=a3.a,r=this.a,q=r[0],p=s[0],o=r[4],n=s[1],m=r[8],l=s[2],k=r[12],j=s[3],i=r[1],h=r[5],g=r[9],f=r[13],e=r[2],d=r[6],c=r[10],b=r[14],a=r[3],a0=r[7],a1=r[11] r=r[15] s[0]=q*p+o*n+m*l+k*j s[1]=i*p+h*n+g*l+f*j s[2]=e*p+d*n+c*l+b*j s[3]=a*p+a0*n+a1*l+r*j return a3}, vy:function(a){var s=a.a,r=this.a,q=r[0],p=s[0],o=r[4],n=s[1],m=r[8],l=s[2],k=r[12],j=r[1],i=r[5],h=r[9],g=r[13],f=r[2],e=r[6],d=r[10],c=r[14],b=1/(r[3]*p+r[7]*n+r[11]*l+r[15]) s[0]=(q*p+o*n+m*l+k)*b s[1]=(j*p+i*n+h*l+g)*b s[2]=(f*p+e*n+d*l+c)*b return a}} E.hm.prototype={ m3:function(a,b,c){var s=this.a s[0]=a s[1]=b s[2]=c}, bC:function(a){var s=a.a,r=this.a r[0]=s[0] r[1]=s[1] r[2]=s[2]}, j:function(a){var s=this.a return"["+H.c(s[0])+","+H.c(s[1])+","+H.c(s[2])+"]"}, k:function(a,b){var s,r,q if(b==null)return!1 if(b instanceof E.hm){s=this.a r=s[0] q=b.a s=r===q[0]&&s[1]===q[1]&&s[2]===q[2]}else s=!1 return s}, gt:function(a){return A.alx(this.a)}, a5:function(a,b){var s,r=new Float64Array(3),q=new E.hm(r) q.bC(this) s=b.a r[0]=r[0]-s[0] r[1]=r[1]-s[1] r[2]=r[2]-s[2] return q}, U:function(a,b){var s=new E.hm(new Float64Array(3)) s.bC(this) s.B(0,b) return s}, a4:function(a,b){return this.Dm(b)}, i:function(a,b){return this.a[b]}, n:function(a,b,c){this.a[b]=c}, gl:function(a){var s=this.a,r=s[0],q=s[1] s=s[2] return Math.sqrt(r*r+q*q+s*s)}, Md:function(a){var s=a.a,r=this.a return r[0]*s[0]+r[1]*s[1]+r[2]*s[2]}, B:function(a,b){var s=b.a,r=this.a r[0]=r[0]+s[0] r[1]=r[1]+s[1] r[2]=r[2]+s[2]}, Dm:function(a){var s=new Float64Array(3),r=new E.hm(s) r.bC(this) s[2]=s[2]*a s[1]=s[1]*a s[0]=s[0]*a return r}} E.ic.prototype={ rl:function(a,b,c,d){var s=this.a s[3]=d s[2]=c s[1]=b s[0]=a}, bC:function(a){var s=a.a,r=this.a r[3]=s[3] r[2]=s[2] r[1]=s[1] r[0]=s[0]}, j:function(a){var s=this.a return H.c(s[0])+","+H.c(s[1])+","+H.c(s[2])+","+H.c(s[3])}, k:function(a,b){var s,r,q if(b==null)return!1 if(b instanceof E.ic){s=this.a r=s[0] q=b.a s=r===q[0]&&s[1]===q[1]&&s[2]===q[2]&&s[3]===q[3]}else s=!1 return s}, gt:function(a){return A.alx(this.a)}, a5:function(a,b){var s,r=new Float64Array(4),q=new E.ic(r) q.bC(this) s=b.a r[0]=r[0]-s[0] r[1]=r[1]-s[1] r[2]=r[2]-s[2] r[3]=r[3]-s[3] return q}, U:function(a,b){var s=new E.ic(new Float64Array(4)) s.bC(this) s.B(0,b) return s}, a4:function(a,b){var s=new E.ic(new Float64Array(4)) s.bC(this) s.bp(0,b) return s}, i:function(a,b){return this.a[b]}, n:function(a,b,c){this.a[b]=c}, gl:function(a){var s=this.a,r=s[0],q=s[1],p=s[2] s=s[3] return Math.sqrt(r*r+q*q+p*p+s*s)}, B:function(a,b){var s=b.a,r=this.a r[0]=r[0]+s[0] r[1]=r[1]+s[1] r[2]=r[2]+s[2] r[3]=r[3]+s[3]}, bp:function(a,b){var s=this.a s[0]=s[0]*b s[1]=s[1]*b s[2]=s[2]*b s[3]=s[3]*b}} L.mq.prototype={ bo:function(a){return this.abX(a)}, abX:function(a){var $async$bo=P.a9(function(b,c){switch(b){case 2:n=q s=n.pop() break case 1:o=c s=p}while(true)switch(s){case 0:s=3 q=[1] return P.bo(P.dy(new V.mr(null,!0)),$async$bo,r) case 3:p=5 s=8 return P.bo($.ul().tD("GET",M.CJ("/application-info"),null),$async$bo,r) case 8:m=c O.CN(m) j=m l=S.axv(C.Q.c7(0,B.CI(U.Cw(j.e).c.a.i(0,"charset")).c7(0,j.x))) s=9 q=[1] return P.bo(P.dy(new V.mr(l,null)),$async$bo,r) case 9:p=2 s=7 break case 5:p=4 h=o j=H.U(h) s=t.IT.b(j)?10:12 break case 10:k=j s=13 q=[1] return P.bo(P.dy(new V.uI(J.bB(k))),$async$bo,r) case 13:s=11 break case 12:throw h case 11:s=7 break case 4:s=2 break case 7:case 1:return P.bo(null,0,r) case 2:return P.bo(o,1,r)}}) var s=0,r=P.CC($async$bo,t.Zq),q,p=2,o,n=[],m,l,k,j,i,h return P.CD(r)}} A.ms.prototype={} A.Db.prototype={} V.eW.prototype={} V.mr.prototype={ gft:function(){return H.b([this.a,this.b],t.Q)}, j:function(a){return"ApplicationInfoCurrentState(info: "+H.c(this.a)+", processing: "+H.c(this.b)+")"}} V.uI.prototype={ gft:function(){return H.b([this.a],t.Q)}, j:function(a){return"ApplicationInfoErrorState(message: "+this.a+")"}} M.my.prototype={ bo:function(a){return this.abY(a)}, abY:function(a){var $async$bo=P.a9(function(b,c){switch(b){case 2:n=q s=n.pop() break case 1:o=c s=p}while(true)switch(s){case 0:s=a instanceof N.v3?3:4 break case 3:m=a.b s=5 q=[1] return P.bo(P.dy(new B.mA(!0)),$async$bo,r) case 5:p=7 l=M.CJ("/cache")+"?key="+H.c(P.C1(C.t2,m,C.U,!1)) s=10 return P.bo($.ul().tD("DELETE",l,null),$async$bo,r) case 10:k=c O.CN(k) s=11 q=[1] return P.bo(P.dy(new B.mA(!1)),$async$bo,r) case 11:p=2 s=9 break case 7:p=6 g=o h=H.U(g) s=t.IT.b(h)?12:14 break case 12:j=h s=15 q=[1] return P.bo(P.dy(new B.v1(J.bB(j))),$async$bo,r) case 15:s=13 break case 14:throw g case 13:s=9 break case 6:s=2 break case 9:s=1 break case 4:case 1:return P.bo(null,0,r) case 2:return P.bo(o,1,r)}}) var s=0,r=P.CC($async$bo,t.PX),q,p=2,o,n=[],m,l,k,j,i,h,g return P.CD(r)}} N.mz.prototype={} N.v3.prototype={} B.eX.prototype={} B.mA.prototype={ gft:function(){return H.b([this.a],t.Q)}, j:function(a){return"CacheListState(processing: "+H.c(this.a)+")"}} B.v1.prototype={ gft:function(){return H.b([this.a],t.Q)}, j:function(a){return"CacheErrorState(message: "+this.a+")"}} O.mE.prototype={ bo:function(a){return this.abZ(a)}, abZ:function(a2){var $async$bo=P.a9(function(a3,a4){switch(a3){case 2:n=q s=n.pop() break case 1:o=a4 s=p}while(true)switch(s){case 0:s=a2 instanceof G.pu?3:4 break case 3:s=5 q=[1] return P.bo(P.dy(new X.iC(null,!0)),$async$bo,r) case 5:p=7 s=10 return P.bo($.ul().tD("GET",M.CJ("/config"),null),$async$bo,r) case 10:l=a4 O.CN(l) e=l k=T.anG(C.Q.c7(0,B.CI(U.Cw(e.e).c.a.i(0,"charset")).c7(0,e.x))) s=11 q=[1] return P.bo(P.dy(new X.iC(k,null)),$async$bo,r) case 11:p=2 s=9 break case 7:p=6 a0=o e=H.U(a0) s=t.IT.b(e)?12:14 break case 12:j=e s=15 q=[1] return P.bo(P.dy(new X.fk(J.bB(j))),$async$bo,r) case 15:s=13 break case 14:throw a0 case 13:s=9 break case 6:s=2 break case 9:s=1 break case 4:s=a2 instanceof G.eb?16:17 break case 16:e=m.b s=e instanceof X.iC?18:19 break case 18:e=e.a s=20 q=[1] return P.bo(P.dy(new X.iC(e,!0)),$async$bo,r) case 20:case 19:p=22 i=C.Q.d1(a2.a.cO()) e=$.ul() c=M.CJ("/config")+"?delay=" b=a2.b a=t.X s=25 return P.bo(e.mD("PUT",c+(b==null?"":b),P.aj(["Content-Type","application/json"],a,a),i,null),$async$bo,r) case 25:h=a4 O.CN(h) a=h g=T.anG(C.Q.c7(0,B.CI(U.Cw(a.e).c.a.i(0,"charset")).c7(0,a.x))) s=26 q=[1] return P.bo(P.dy(new X.iC(g,null)),$async$bo,r) case 26:p=2 s=24 break case 22:p=21 a1=o e=H.U(a1) s=t.IT.b(e)?27:29 break case 27:f=e s=30 q=[1] return P.bo(P.dy(new X.fk(J.bB(f))),$async$bo,r) case 30:s=28 break case 29:throw a1 case 28:s=24 break case 21:s=2 break case 24:s=1 break case 17:case 1:return P.bo(null,0,r) case 2:return P.bo(o,1,r)}}) var s=0,r=P.CC($async$bo,t.Wc),q,p=2,o,n=[],m=this,l,k,j,i,h,g,f,e,d,c,b,a,a0,a1 return P.CD(r)}} G.l1.prototype={} G.pu.prototype={} G.eb.prototype={} X.ea.prototype={} X.iC.prototype={ gft:function(){return H.b([this.a,this.b],t.Q)}, j:function(a){return"ConfigCurrentState(config: "+H.c(this.a)+", processing: "+H.c(this.b)+")"}} X.fk.prototype={ gft:function(){return H.b([this.a],t.Q)}, j:function(a){return"ConfigErrorState(message: "+this.a+")"}} G.no.prototype={ bo:function(a){return this.ac_(a)}, ac_:function(a){var $async$bo=P.a9(function(b,c){switch(b){case 2:n=q s=n.pop() break case 1:o=c s=p}while(true)switch(s){case 0:s=a instanceof U.wG?3:4 break case 3:p=6 s=m.b instanceof X.wH?9:10 break case 9:s=11 q=[1] return P.bo(P.dy(new X.wI(H.b([new O.f5("Home",C.r_,"home"),new O.f5("Compress",C.qS,"compress"),new O.f5("Cache",C.r0,"cache"),new O.f5("Upstram",C.qR,"upstream"),new O.f5("Location",C.qJ,"location"),new O.f5("Server",C.r1,"server"),new O.f5("Admin",C.qI,"admin"),new O.f5("Caches",C.qT,"caches")],t.E0),0)),$async$bo,r) case 11:case 10:p=2 s=8 break case 6:p=5 k=o s=t.IT.b(H.U(k))?12:14 break case 12:s=15 q=[1] return P.bo(P.dy(new X.Gv()),$async$bo,r) case 15:s=13 break case 14:throw k case 13:s=8 break case 5:s=2 break case 8:s=1 break case 4:case 1:return P.bo(null,0,r) case 2:return P.bo(o,1,r)}}) var s=0,r=P.CC($async$bo,t.oL),q,p=2,o,n=[],m=this,l,k return P.CD(r)}} U.nz.prototype={} U.wG.prototype={} X.eE.prototype={ gft:function(){return H.b([],t.Q)}} X.wH.prototype={} X.Gv.prototype={} X.wI.prototype={ gft:function(){return H.b([this.a,this.b],t.Q)}, j:function(a){return"MainNavigationSuccess(navs: "+H.c(this.a)+", currentIndex: "+this.b+")"}} X.ot.prototype={ bo:function(a){return this.ac0(a)}, ac0:function(a){var $async$bo=P.a9(function(b,a0){switch(b){case 2:n=q s=n.pop() break case 1:o=a0 s=p}while(true)switch(s){case 0:s=a instanceof Y.zp?3:4 break case 3:s=5 q=[1] return P.bo(P.dy(new Q.ib(null,!0)),$async$bo,r) case 5:p=7 s=10 return P.bo($.ul().tD("GET",M.CJ("/me"),null),$async$bo,r) case 10:m=a0 O.CN(m) f=m l=N.aq_(C.Q.c7(0,B.CI(U.Cw(f.e).c.a.i(0,"charset")).c7(0,f.x))) s=11 q=[1] return P.bo(P.dy(new Q.ib(l,null)),$async$bo,r) case 11:p=2 s=9 break case 7:p=6 d=o f=H.U(d) s=t.IT.b(f)?12:14 break case 12:k=f s=15 q=[1] return P.bo(P.dy(new Q.rZ(J.bB(k))),$async$bo,r) case 15:s=13 break case 14:throw d case 13:s=9 break case 6:s=2 break case 9:s=1 break case 4:s=a instanceof Y.zo?16:17 break case 16:s=18 q=[1] return P.bo(P.dy(new Q.ib(null,!0)),$async$bo,r) case 18:p=20 f=t.X j=C.Q.d1(P.aj(["account",a.a,"password",M.asC("pike-"+H.c(a.b))],f,f)) s=23 return P.bo($.ul().mD("POST",M.CJ("/login"),P.aj(["Content-Type","application/json"],f,f),j,null),$async$bo,r) case 23:i=a0 O.CN(i) f=i h=N.aq_(C.Q.c7(0,B.CI(U.Cw(f.e).c.a.i(0,"charset")).c7(0,f.x))) s=24 q=[1] return P.bo(P.dy(new Q.ib(h,null)),$async$bo,r) case 24:p=2 s=22 break case 20:p=19 c=o f=H.U(c) s=t.IT.b(f)?25:27 break case 25:g=f s=28 q=[1] return P.bo(P.dy(new Q.rZ(J.bB(g))),$async$bo,r) case 28:s=26 break case 27:throw c case 26:s=22 break case 19:s=2 break case 22:s=1 break case 17:case 1:return P.bo(null,0,r) case 2:return P.bo(o,1,r)}}) var s=0,r=P.CC($async$bo,t.WJ),q,p=2,o,n=[],m,l,k,j,i,h,g,f,e,d,c return P.CD(r)}} Y.lS.prototype={} Y.zp.prototype={} Y.zo.prototype={} Q.ei.prototype={} Q.ib.prototype={ gBI:function(){if(this.b!==!0){var s=this.a s=s==null?null:s.a s=s==null?null:s.length!==0 s=s===!0}else s=!1 return s}, gft:function(){return H.b([this.a,this.b],t.Q)}, j:function(a){return"UserMeState(user: "+H.c(this.a)+", processing: "+H.c(this.b)+")"}} Q.rZ.prototype={ gft:function(){return H.b([this.a],t.Q)}, j:function(a){return"UserErrorState(message: "+this.a+")"}} O.a1a.prototype={ eo:function(a,b){return this.a.eo(0,b)}} M.ahv.prototype={ $1:function(a){var s if(a!=null)s=!this.a.b.test(a)||P.e5(a,null)===0 else s=!0 if(s)return this.b return null}, $S:3} F.ai8.prototype={ $0:function(){if($.D==null)N.aq6() var s=$.D s.Qe(new F.GM(null)) s.Dq()}, $C:"$0", $R:0, $S:1} F.ai9.prototype={ $2:function(a,b){E.jE(C.bM,J.bB(a),2,C.c5,"#fe6c6f")}, $C:"$2", $R:2, $S:72} F.GM.prototype={ H:function(a,b){var s,r=null,q=new L.FD(new Y.a3q(H.b([],t.ws))),p=new T.a3A(q) p.abe() $.aj1=p s=H.b([R.Dr(r,new F.a06(),t._l),R.Dr(r,new F.a07(),t.Uq),R.Dr(r,new F.a08(),t.Xq),R.Dr(r,new F.a09(),t.Id)],t.QZ) return M.azz(new S.wM(q.gPx(),X.apS(r,$.asM(),X.aq5()),r),s)}} F.a06.prototype={ $1:function(a){var s=new G.no(P.od(t._U),new X.wH()) $.jo().toString s.oq() s.B(0,new U.wG()) return s}, $S:412} F.a07.prototype={ $1:function(a){var s=new X.ot(P.od(t.OG),new Q.ib(null,null)) $.jo().toString s.oq() s.B(0,new Y.zp()) return s}, $S:413} F.a08.prototype={ $1:function(a){var s=new L.mq(P.od(t.mJ),new V.mr(null,null)) $.jo().toString s.oq() return s}, $S:414} F.a09.prototype={ $1:function(a){var s=new M.my(P.od(t.rC),new B.mA(null)) $.jo().toString s.oq() return s}, $S:415} S.Da.prototype={ dS:function(){var s=this return C.Q.d1(P.aj(["goarch",s.a,"goos",s.b,"goVersion",s.c,"version",s.d,"buildedAt",s.e,"commitID",s.f,"uptime",s.r,"goMaxProcs",s.x,"cpuUsage",s.y,"routineCount",s.z,"threadCount",s.Q,"rssHumanize",s.ch,"swapHumanize",s.cx,"processing",s.cy],t.X,t.z))}, j:function(a){var s=this return"ApplicationInfo(goarch: "+H.c(s.a)+", goos: "+H.c(s.b)+", goVersion: "+H.c(s.c)+", version: "+H.c(s.d)+", buildedAt: "+H.c(s.e)+", commitID: "+H.c(s.f)+", uptime: "+H.c(s.r)+", goMaxProcs: "+H.c(s.x)+", cpuUsage: "+H.c(s.y)+", routineCount: "+H.c(s.z)+", threadCount: "+H.c(s.Q)+", rssHumanize: "+H.c(s.ch)+", swapHumanize: "+H.c(s.cx)+", processing: "+s.cy.j(0)+")"}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 return b instanceof S.Da&&b.a==s.a&&b.b==s.b&&b.c==s.c&&b.d==s.d&&b.e==s.e&&b.f==s.f&&b.r==s.r&&b.x==s.x&&b.y==s.y&&b.z==s.z&&b.Q==s.Q&&b.ch==s.ch&&b.cx==s.cx&&S.S2(b.cy,s.cy)}, gt:function(a){var s=this return(J.a3(s.a)^J.a3(s.b)^J.a3(s.c)^J.a3(s.d)^J.a3(s.e)^J.a3(s.f)^J.a3(s.r)^J.a3(s.x)^J.a3(s.y)^J.a3(s.z)^J.a3(s.Q)^J.a3(s.ch)^J.a3(s.cx)^H.di(s.cy))>>>0}} T.ahA.prototype={ $1:function(a){var s=this.a,r=J.ag(s) if(r.i(s,a)==null)r.n(s,a,[])}, $S:10} T.ahB.prototype={ $1:function(a){C.b.K(H.b(["prefixes","rewrites","queryStrings","respHeaders","reqHeaders","hosts"],t.i),new T.ahz(a))}, $S:5} T.ahz.prototype={ $1:function(a){var s=this.a,r=J.ag(s) if(r.i(s,a)==null)r.n(s,a,[])}, $S:10} T.ahC.prototype={ $1:function(a){var s=J.ag(a) if(s.i(a,"servers")==null)s.n(a,"servers",[])}, $S:5} T.ahD.prototype={ $1:function(a){var s="locations",r=J.ag(a) if(r.i(a,s)==null)r.n(a,s,[])}, $S:5} T.us.prototype={ cO:function(){return P.aj(["user",this.a,"password",this.b,"prefix",this.c],t.X,t.z)}, dS:function(){return C.Q.d1(this.cO())}, j:function(a){return"AdminConfig(user: "+H.c(this.a)+", password: "+H.c(this.b)+", prefix: "+H.c(this.c)+")"}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 return b instanceof T.us&&b.a==s.a&&b.b==s.b&&b.c==s.c}, gt:function(a){return J.a3(this.a)^J.a3(this.b)^J.a3(this.c)}} T.dO.prototype={ cO:function(){return P.aj(["name",this.a,"levels",this.b,"remark",this.c],t.X,t.z)}, dS:function(){return C.Q.d1(this.cO())}, j:function(a){return"CompressConfig(name: "+H.c(this.a)+", levels: "+this.b.j(0)+", remark: "+H.c(this.c)+")"}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 return b instanceof T.dO&&b.a==s.a&&S.S2(b.b,s.b)&&b.c==s.c}, gt:function(a){return(J.a3(this.a)^H.di(this.b)^J.a3(this.c))>>>0}, gar:function(a){return this.a}} T.dN.prototype={ cO:function(){var s=this return P.aj(["name",s.a,"size",s.b,"hitForPass",s.c,"store",s.d,"remark",s.e],t.X,t.z)}, dS:function(){return C.Q.d1(this.cO())}, j:function(a){var s=this return"CacheConfig(name: "+H.c(s.a)+", size: "+H.c(s.b)+", hitForPass: "+H.c(s.c)+", store: "+H.c(s.d)+", remark: "+H.c(s.e)+")"}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 return b instanceof T.dN&&b.a==s.a&&b.b==s.b&&b.c==s.c&&b.d==s.d&&b.e==s.e}, gt:function(a){var s=this return J.a3(s.a)^J.a3(s.b)^J.a3(s.c)^J.a3(s.d)^J.a3(s.e)}, gar:function(a){return this.a}} T.eP.prototype={ cO:function(){return P.aj(["addr",this.a,"backup",this.b,"healthy",this.c],t.X,t.z)}, dS:function(){return C.Q.d1(this.cO())}, j:function(a){return"UpstreamServerConfig(addr: "+H.c(this.a)+", backup: "+H.c(this.b)+", healthy: "+H.c(this.c)+")"}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 return b instanceof T.eP&&b.a==s.a&&b.b==s.b&&b.c==s.c}, gt:function(a){return(J.a3(this.a)^J.a3(this.b)^J.a3(this.c))>>>0}} T.dZ.prototype={ cO:function(){var s=this,r=s.f r=new H.Z(r,new T.a7C(),H.Y(r).h("Z<1,W*>")) r=P.an(r,!0,r.$ti.h("av.E")) return P.aj(["name",s.a,"healthCheck",s.b,"policy",s.c,"enableH2C",s.d,"acceptEncoding",s.e,"servers",r,"remark",s.r],t.X,t.z)}, dS:function(){return C.Q.d1(this.cO())}, j:function(a){var s=this return"UpstreamConfig(name: "+H.c(s.a)+", healthCheck: "+H.c(s.b)+", policy: "+H.c(s.c)+", enableH2C: "+H.c(s.d)+", acceptEncoding: "+H.c(s.e)+", servers: "+H.c(s.f)+", remark: "+H.c(s.r)+")"}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 return b instanceof T.dZ&&b.a==s.a&&b.b==s.b&&b.c==s.c&&b.d==s.d&&b.e==s.e&&S.cx(b.f,s.f)&&b.r==s.r}, gt:function(a){var s=this return(J.a3(s.a)^J.a3(s.b)^J.a3(s.c)^J.a3(s.d)^J.a3(s.e)^H.di(s.f)^J.a3(s.r))>>>0}, gar:function(a){return this.a}} T.a7C.prototype={ $1:function(a){return a==null?null:a.cO()}, $S:417} T.a7B.prototype={ $1:function(a){return T.aBz(a)}, $S:418} T.dS.prototype={ cO:function(){var s=this return P.aj(["name",s.a,"upstream",s.b,"prefixes",s.c,"hosts",s.d,"rewrites",s.e,"queryStrings",s.f,"respHeaders",s.r,"reqHeaders",s.x,"proxyTimeout",s.y,"remark",s.z],t.X,t.z)}, dS:function(){return C.Q.d1(this.cO())}, j:function(a){var s=this return"LocationConfig(name: "+H.c(s.a)+", upstream: "+H.c(s.b)+", prefixes: "+H.c(s.c)+", hosts: "+H.c(s.d)+", rewrites: "+H.c(s.e)+", queryStrings: "+H.c(s.f)+", respHeaders: "+H.c(s.r)+", reqHeaders: "+H.c(s.x)+", proxyTimeout: "+H.c(s.y)+", remark: "+H.c(s.z)+")"}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 return b instanceof T.dS&&b.a==s.a&&b.b==s.b&&S.cx(b.c,s.c)&&S.cx(b.d,s.d)&&S.cx(b.e,s.e)&&S.cx(b.f,s.f)&&S.cx(b.r,s.r)&&S.cx(b.x,s.x)&&b.y==s.y&&b.z==s.z}, gt:function(a){var s=this return(J.a3(s.a)^J.a3(s.b)^H.di(s.c)^H.di(s.d)^H.di(s.e)^H.di(s.f)^H.di(s.r)^H.di(s.x)^J.a3(s.y)^J.a3(s.z))>>>0}, gar:function(a){return this.a}} T.eG.prototype={ cO:function(){var s=this return P.aj(["logFormat",s.a,"addr",s.b,"locations",s.c,"cache",s.d,"compress",s.e,"compressMinLength",s.f,"compressContentTypeFilter",s.r,"remark",s.x],t.X,t.z)}, dS:function(){return C.Q.d1(this.cO())}, j:function(a){var s=this return"ServerConfig(logFormat: "+H.c(s.a)+", addr: "+H.c(s.b)+", locations: "+H.c(s.c)+", cache: "+H.c(s.d)+", compress: "+H.c(s.e)+", compressMinLength: "+H.c(s.f)+", compressContentTypeFilter: "+H.c(s.r)+", remark: "+H.c(s.x)+")"}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 return b instanceof T.eG&&b.a==s.a&&b.b==s.b&&S.cx(b.c,s.c)&&b.d==s.d&&b.e==s.e&&b.f==s.f&&b.r==s.r&&b.x==s.x}, gt:function(a){var s=this return(J.a3(s.a)^J.a3(s.b)^J.a3(s.c)^J.a3(s.d)^J.a3(s.e)^J.a3(s.f)^J.a3(s.r)^J.a3(s.x))>>>0}} T.pt.prototype={ vV:function(a,b){var s,r=this,q={} q.a=!0 switch(a){case"compress":s=r.r if(s!=null)C.b.K(s,new T.UG(q,b)) break case"cache":s=r.r if(s!=null)C.b.K(s,new T.UH(q,b)) break case"upstream":s=r.f if(s!=null)C.b.K(s,new T.UI(q,b)) break case"location":s=r.r if(s!=null)C.b.K(s,new T.UJ(q,b)) break default:q.a=!1}return q.a}, mX:function(a,b,c,d,e,f){var s=this,r=a==null?s.b:a,q=c==null?s.c:c,p=b==null?s.d:b,o=f==null?s.e:f,n=d==null?s.f:d return new T.pt(null,r,q,p,o,n,e==null?s.r:e)}, a8o:function(a){return this.mX(a,null,null,null,null,null)}, LL:function(a){return this.mX(null,null,null,null,a,null)}, LH:function(a){return this.mX(null,null,null,a,null,null)}, LM:function(a){return this.mX(null,null,null,null,null,a)}, LC:function(a){return this.mX(null,a,null,null,null,null)}, LE:function(a){return this.mX(null,null,a,null,null,null)}, cO:function(){var s,r,q,p,o,n=this,m=null,l=n.b l=l==null?m:l.cO() s=n.c s=s==null?m:new H.Z(s,new T.UA(),H.Y(s).h("Z<1,W*>")) s=s==null?m:P.an(s,!0,s.$ti.h("av.E")) r=n.d r=r==null?m:new H.Z(r,new T.UB(),H.Y(r).h("Z<1,W*>")) r=r==null?m:P.an(r,!0,r.$ti.h("av.E")) q=n.e q=q==null?m:new H.Z(q,new T.UC(),H.Y(q).h("Z<1,W*>")) q=q==null?m:P.an(q,!0,q.$ti.h("av.E")) p=n.f p=p==null?m:new H.Z(p,new T.UD(),H.Y(p).h("Z<1,W*>")) p=p==null?m:P.an(p,!0,p.$ti.h("av.E")) o=n.r o=o==null?m:new H.Z(o,new T.UE(),H.Y(o).h("Z<1,W*>")) o=o==null?m:P.an(o,!0,o.$ti.h("av.E")) return P.aj(["yaml",n.a,"admin",l,"compresses",s,"caches",r,"upstreams",q,"locations",p,"servers",o],t.X,t.z)}, dS:function(){return C.Q.d1(this.cO())}, j:function(a){var s=this return"Config(yaml: "+H.c(s.a)+", admin: "+H.c(s.b)+", compresses: "+H.c(s.c)+", caches: "+H.c(s.d)+", upstreams: "+H.c(s.e)+", locations: "+H.c(s.f)+", servers: "+H.c(s.r)+")"}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 return b instanceof T.pt&&b.a==s.a&&J.d(b.b,s.b)&&S.cx(b.c,s.c)&&S.cx(b.d,s.d)&&S.cx(b.e,s.e)&&S.cx(b.f,s.f)&&S.cx(b.r,s.r)}, gt:function(a){var s=this return(J.a3(s.a)^J.a3(s.b)^J.a3(s.c)^J.a3(s.d)^J.a3(s.e)^J.a3(s.f)^J.a3(s.r))>>>0}} T.UG.prototype={ $1:function(a){if(a.e==this.b)this.a.a=!1}, $S:52} T.UH.prototype={ $1:function(a){if(a.d==this.b)this.a.a=!1}, $S:52} T.UI.prototype={ $1:function(a){if(a.b==this.b)this.a.a=!1}, $S:89} T.UJ.prototype={ $1:function(a){var s=a.c if(s!=null)C.b.K(s,new T.UF(this.a,this.b))}, $S:52} T.UF.prototype={ $1:function(a){if(a==this.b)this.a.a=!1}, $S:10} T.UA.prototype={ $1:function(a){return a==null?null:a.cO()}, $S:421} T.UB.prototype={ $1:function(a){return a==null?null:a.cO()}, $S:422} T.UC.prototype={ $1:function(a){return a==null?null:a.cO()}, $S:423} T.UD.prototype={ $1:function(a){return a==null?null:a.cO()}, $S:424} T.UE.prototype={ $1:function(a){return a==null?null:a.cO()}, $S:425} T.Uv.prototype={ $1:function(a){return T.aya(a)}, $S:426} T.Uw.prototype={ $1:function(a){return T.axQ(a)}, $S:427} T.Ux.prototype={ $1:function(a){return T.aBy(a)}, $S:428} T.Uy.prototype={ $1:function(a){return T.azn(a)}, $S:429} T.Uz.prototype={ $1:function(a){return T.aAK(a)}, $S:430} O.f5.prototype={ dS:function(){return C.Q.d1(P.aj(["title",this.a,"icon",this.b.a,"name",this.c],t.X,t.z))}, j:function(a){return"NavItem(title: "+this.a+", icon: "+this.b.j(0)+", name: "+this.c+")"}, k:function(a,b){var s=this if(b==null)return!1 if(s===b)return!0 return b instanceof O.f5&&b.a===s.a&&b.b.k(0,s.b)&&b.c===s.c}, gt:function(a){var s=this.b return C.c.gt(this.a)^P.a5(s.a,"MaterialIcons",null,s.d,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a,C.a)^C.c.gt(this.c)}, gar:function(a){return this.c}} N.Kv.prototype={ dS:function(){return C.Q.d1(P.aj(["account",this.a],t.X,t.z))}, j:function(a){return"User(account: "+H.c(this.a)+")"}, k:function(a,b){if(b==null)return!1 if(this===b)return!0 return b instanceof N.Kv&&b.a==this.a}, gt:function(a){return J.a3(this.a)}} T.a3A.prototype={ YQ:function(a,b){return new R.Y4(new T.a3B(this,a,b))}, G7:function(a,b){this.a.a.a7_(new R.D9(a,this.YQ(a,b),null,C.fM,null))}, abe:function(){this.G7("/",new T.a3C()) this.G7("/login",new T.a3D())}} T.a3B.prototype={ $2:function(a,b){return this.c.$2(a,b)}, $C:"$2", $R:2, $S:431} T.a3C.prototype={ $2:function(a,b){return new Y.n8(null)}, $S:432} T.a3D.prototype={ $2:function(a,b){return new D.nn(null)}, $S:433} F.ut.prototype={ ah:function(){var s=t.V return new F.KS(new N.aY(null,t.Xu),new D.aL(C.u,new P.a7(s)),new D.aL(C.u,new P.a7(s)),C.k)}} F.KS.prototype={ aC:function(){this.b_() var s=this.c s.toString this.r=R.jq(s,t.R)}, ZS:function(a){var s if(a==null)return s=a.a if(s==null)s="" this.e.aW(0,new N.bb(s,C.O,C.v)) this.f.aW(0,C.a6)}, a4i:function(a){var s=this,r=null,q=H.b([],t.Y),p=a.a.b if(p!=null)s.ZS(p) q.push(E.bU(!0,s.e,L.bL(r,r,r,r,r,r,r,!0,r,r,r,r,r,r,r,r,r,r,r,!0,r,r,r,r,r,"Please input the account",r,r,r,!1,r,r,"Account",r,r,r,r,r,r,r,r,r,r,r),1,r,!1,!1,new F.a8i())) q.push(E.bU(!1,s.f,L.bL(r,r,r,r,r,r,r,!0,r,r,r,r,r,r,r,r,r,r,r,!0,r,r,r,r,r,"Please input the password",r,r,r,!1,r,r,"Password",r,r,r,r,r,r,r,r,r,r,r),1,r,!0,!1,new F.a8j())) return M.ap(r,A.pQ(T.d2(q,C.w,C.B,C.x),s.d),r,r,r,r,new V.X(0,30,0,0),r,r)}, H:function(a,b){return O.hy(new F.a8l(this),t.R,t.Wc)}} F.a8i.prototype={ $1:function(a){return J.fY(a).length!==0?null:"account can not be null"}, $S:3} F.a8j.prototype={ $1:function(a){return J.fY(a).length!==0?null:"password can not be null"}, $S:3} F.a8l.prototype={ $2:function(a,b){var s,r,q=null if(b instanceof X.fk)return new L.ho(b.a,"Get admin config fail",q) t.h4.a(b) s=b.b r=s===!0?"Processing...":"Save Admin" s=this.a return E.lE(M.ap(q,T.d2(H.b([s.a4i(b),new Z.e_(L.ba(r,q,q,q,q,q,q,q),new F.a8k(s,b),q,new V.X(0,30,0,0),q)],t.Y),C.w,C.B,C.x),q,q,q,q,new V.X(30,30,30,30),q,q),q,C.a4,q,C.n)}, $C:"$2", $R:2, $S:38} F.a8k.prototype={ $0:function(){var s,r,q,p=this.b if(p.b===!0)return s=this.a if(s.d.gas().jd()){r=J.fY(s.e.a.a) q=M.asC("pike-"+J.fY(s.f.a.a)) s.r.B(0,new G.eb(p.a.a8o(new T.us(r,q,null)),null))}}, $S:1} S.cw.prototype={ gar:function(a){return this.a}} S.uJ.prototype={ ah:function(){return new S.L7(C.k)}} S.L7.prototype={ aC:function(){this.b_() var s=this.c s.toString J.kK(R.jq(s,t.Xq),new A.Db())}, XO:function(a){var s,r,q,p,o,n=null,m={} if(a instanceof V.uI)return T.kZ(L.ba(a.a,n,n,n,n,n,n,n),n,n) t.x1.a(a) s=a.b if(s===!0||a.a==null)return T.kZ(L.ba("Loading...",n,n,n,n,n,n,n),n,n) r=a.a q=H.b([new S.cw("CPU Usage",J.bB(r.y)+" %"),new S.cw("RSS",r.ch),new S.cw("Swap",r.cx),new S.cw("Go Routines",J.bB(r.z)),new S.cw("Threads",J.bB(r.Q)),new S.cw("Go Max Procs",J.bB(r.x)),new S.cw("Uptime",r.r),new S.cw("Version",r.d),new S.cw("Commit ID",r.f),new S.cw("Builded At",r.e),new S.cw("Go Arch",r.a),new S.cw("Go OS",r.b),new S.cw("Go Version",r.c)],t.iJ) r.cy.K(0,new S.a8v(q)) p=H.b([],t.Lr) o=m.a=0 C.b.K(q,new S.a8w(m,3,p)) for(s=3-C.b.gL(p).length;o*>")) s=r==null?null:P.an(r,!0,r.$ti.h("av.E")) return new S.lT(H.b(["Name","Size","Hit For Pass","Store","Remark"],t.i),s,P.aj(["Size",100,"Hit For Pass",130],t.X,t.t0),new B.a92(this,a),new B.a93(this,a),null)}, Xw:function(a){var s,r,q,p,o,n,m=this,l=null,k=m.e.a.a k=k==null?l:C.c.cY(k) s=P.e5(m.f.a.a,l) r=m.r.a.a r=r==null?l:C.c.cY(r) q=m.x.a.a q=q==null?l:C.c.cY(q) p=m.y.a.a o=new T.dN(k,s,r,q,p==null?l:C.c.cY(p)) n=H.b([],t.IG) k=a.a s=k.d if(s!=null)C.b.K(s,new B.a8Y(o,n)) n.push(o) m.z.B(0,new G.eb(k.LC(n),l)) m.Y(new B.a8Z(m))}, Ya:function(){var s,r,q=this,p=null if(q.ch.length===0)return M.ap(p,p,p,p,p,p,p,p,p) s=H.b([],t.Y) r=q.ch s.push(E.bU(!0,q.e,L.bL(p,p,p,p,p,p,p,!0,p,p,p,p,p,p,p,p,p,p,p,!0,p,p,p,p,p,"Please input the name of cache",p,p,p,!1,p,p,"Name",p,p,p,p,p,p,p,p,p,p,p),1,p,!1,r==="update",new B.a94())) s.push(E.bU(!1,q.f,L.bL(p,p,p,p,p,p,p,!0,p,p,p,p,p,p,p,p,p,p,p,!0,p,p,p,p,p,"Please input the size of cache, e.g.: 51200",p,p,p,!1,p,p,"Size",p,p,p,p,p,p,p,p,p,p,p),1,p,!1,!1,M.as_("size of cache should be number and gt 0"))) s.push(E.bU(!1,q.r,L.bL(p,p,p,p,p,p,p,!0,p,p,p,p,p,p,p,p,p,p,p,!0,p,p,p,p,p,"Please input the duration of hit for pass(5m, 30s)",p,p,p,!1,p,p,"HitForPass",p,p,p,p,p,p,p,p,p,p,p),1,p,!1,!1,new B.a95())) s.push(E.bU(!1,q.x,L.bL(p,p,p,p,p,p,p,!0,p,p,p,p,p,p,p,p,p,p,p,!0,p,p,p,p,p,"Please input the store url, e.g.: badger:///tmp/badger",p,p,p,!1,p,p,"Store",p,p,p,p,p,p,p,p,p,p,p),1,p,!1,!1,p)) s.push(E.bU(!1,q.y,L.bL(p,p,p,p,p,p,p,!0,p,p,p,p,p,p,p,p,p,p,p,!0,p,p,p,p,p,"Please input the remark for cache",p,p,p,!1,p,p,"Remark",p,p,p,p,p,p,p,p,p,p,p),3,3,!1,!1,p)) return M.ap(p,A.pQ(T.d2(s,C.w,C.B,C.x),q.d),p,p,p,p,new V.X(0,30,0,0),p,p)}, H:function(a,b){return O.hy(new B.a98(this),t.R,t.Wc)}} B.a9_.prototype={ $1:function(a){if(a.a!=this.a)this.b.push(a)}, $S:161} B.a91.prototype={ $1:function(a){return H.b([a.a,this.a.Q.aaq(a.b),a.c,a.d,a.e],t.i)}, $S:441} B.a92.prototype={ $1:function(a){var s,r=this.b.a.d[a],q=this.a q.Fn() q.e.aW(0,new N.bb(r.a,C.O,C.v)) q.f.aW(0,new N.bb(J.bB(r.b),C.O,C.v)) q.r.aW(0,new N.bb(r.c,C.O,C.v)) s=r.d if(s==null)s="" q.x.aW(0,new N.bb(s,C.O,C.v)) s=r.e if(s==null)s="" q.y.aW(0,new N.bb(s,C.O,C.v)) q.Y(new B.a90(q))}, $S:17} B.a90.prototype={ $0:function(){this.a.ch="update"}, $S:1} B.a93.prototype={ $1:function(a){var s=this.b this.a.Z6(s,s.a.d[a].a)}, $S:17} B.a8Y.prototype={ $1:function(a){if(a.a!=this.a.a)this.b.push(a)}, $S:161} B.a8Z.prototype={ $0:function(){this.a.ch=""}, $S:1} B.a94.prototype={ $1:function(a){return J.fY(a).length!==0?null:"name can not be null"}, $S:3} B.a95.prototype={ $1:function(a){var s,r=P.c3("^\\d+[sm]$",!0) if(a!=null)s=!r.b.test(a) else s=!0 if(s)return"duration of hit for pass is invalid" return null}, $S:3} B.a98.prototype={ $2:function(a,b){var s,r,q,p=null if(b instanceof X.fk)return new L.ho(b.a,"Get cache config fail",p) t.h4.a(b) s=this.a r=s.ch.length!==0?"Save Cache":"Add Cache" q=b.b if(q===!0)r="Processing..." return E.lE(M.ap(p,T.d2(H.b([s.a4d(b),s.Ya(),new Z.e_(L.ba(r,p,p,p,p,p,p,p),new B.a97(s,b),p,new V.X(0,30,0,0),p)],t.Y),C.w,C.B,C.x),p,p,p,p,new V.X(30,30,30,30),p,p),p,C.a4,p,C.n)}, $C:"$2", $R:2, $S:38} B.a97.prototype={ $0:function(){var s,r=this.b if(r.b===!0)return s=this.a if(s.ch.length!==0){if(s.d.gas().jd())s.Xw(r) return}s.Fn() s.Y(new B.a96(s))}, $S:1} B.a96.prototype={ $0:function(){this.a.ch="eidt"}, $S:1} E.v4.prototype={ ah:function(){return new E.Lr(new D.aL(C.u,new P.a7(t.V)),C.k)}} E.Lr.prototype={ aC:function(){this.b_() var s=this.c s.toString this.e=R.jq(s,t.Id)}, a4h:function(a){var s,r,q,p,o,n=this,m=null,l=M.ap(m,m,m,m,m,10,m,m,20) if(a instanceof B.mA){s=a.a r=s===!0}else r=!1 s=n.f q=t.ys q=P.an(new H.Z(H.b(["GET","HEAD"],t.i),new E.a9b(),q),!0,q.h("av.E")) p=T.WL(E.bU(!1,n.d,L.bL(m,m,m,m,m,m,m,!0,m,m,m,m,m,m,m,m,m,m,m,!0,m,m,m,m,m,"Please input the cache url, e.g.: http://test.com/user?vip=1",m,m,m,!1,m,m,"Cache URL",m,m,m,m,m,m,m,m,m,m,m),1,m,!1,!1,m),1) o=n.c o.toString o=K.aA(o).b return M.ap(m,T.eF(H.b([new K.pG(q,s,new E.a9c(n),64,m,t.pZ),l,p,l,D.akh(L.ba(r?"Deleting":"Delete",m,m,m,m,m,m,m),o,new E.a9d(n),new V.X(20,20,20,20),C.j)],t.Y),C.w,C.B,C.x),m,m,m,m,new V.X(0,30,0,0),m,m)}, H:function(a,b){return O.hy(new E.a9e(this),t.Id,t.PX)}} E.a9c.prototype={ $1:function(a){var s=this.a s.Y(new E.a9a(s,a))}, $S:10} E.a9a.prototype={ $0:function(){this.a.f=this.b}, $S:1} E.a9b.prototype={ $1:function(a){var s=null return new K.jC(a,L.ba(a,s,s,s,s,s,s,s),s,t.JV)}, $S:443} E.a9d.prototype={ $0:function(){var s,r,q,p,o=this.a,n=o.d.a.a,m=n==null?null:C.c.cY(n) if(m==null||m.length===0){E.jE(C.bM,"Cache url can not be empty",2,C.c5,"#fe6c6f") return}s=P.os(m) r=s.gdR(s) s.gim(s) n=s.gim(s) if(n.length!==0)r+="?"+s.gim(s) q=s.ghy(s) if(s.gnc())q+=":"+C.f.j(s.glD(s)) p=H.c(o.f)+" "+q+" "+r o.e.B(0,new N.v3(p))}, $S:1} E.a9e.prototype={ $2:function(a,b){var s=null if(b instanceof B.v1)return new L.ho(b.a,"Get cache fail",s) return M.ap(s,this.a.a4h(b),s,s,s,s,new V.X(30,30,30,30),s,s)}, $C:"$2", $R:2, $S:444} D.vj.prototype={ ah:function(){var s=t.V return new D.Lz(new N.aY(null,t.Xu),new D.aL(C.u,new P.a7(s)),new D.aL(C.u,new P.a7(s)),new D.aL(C.u,new P.a7(s)),new D.aL(C.u,new P.a7(s)),C.k)}} D.Lz.prototype={ aC:function(){this.b_() var s=this.c s.toString this.cy=R.jq(s,t.R)}, GV:function(a,b){var s=a.i(0,b) if(s==null)return"--" return C.f.j(s)}, GU:function(a,b){var s=a.i(0,b) if(s==null)return"" return C.f.j(s)}, FL:function(){var s=this s.e.aW(0,C.a6) s.f.aW(0,C.a6) s.r.aW(0,C.a6) s.x.aW(0,C.a6)}, Z7:function(a,b){var s,r,q=a.a if(!q.vV("compress",b)){E.jE(C.bM,H.c(b)+" is used, it can not be deleted",2,C.c5,"#fe6c6f") return}s=H.b([],t.gU) r=q.c if(r!=null)C.b.K(r,new D.a9n(b,s)) this.cy.B(0,new G.eb(q.LE(s),null))}, a4e:function(a){var s,r,q,p=a.a.c p=p==null?null:new H.Z(p,new D.a9p(this),H.Y(p).h("Z<1,v*>")) s=p==null?null:P.an(p,!0,p.$ti.h("av.E")) r="gzip"[0].toUpperCase()+C.c.bw("gzip",1) q="br"[0].toLowerCase()+C.c.bw("br",1) return new S.lT(H.b(["Name",r,q,"Remark"],t.i),s,P.aj([r,80,q,80],t.X,t.t0),new D.a9q(this,a),new D.a9r(this,a),null)}, YC:function(){var s,r,q,p=this,o=null if(p.y.length===0)return M.ap(o,o,o,o,o,o,o,o,o) s=M.as_("compress level should be number and gt 0") r=H.b([],t.Y) q=p.y r.push(E.bU(!0,p.e,L.bL(o,o,o,o,o,o,o,!0,o,o,o,o,o,o,o,o,o,o,o,!0,o,o,o,o,o,"Please input the name of compress",o,o,o,!1,o,o,"Name",o,o,o,o,o,o,o,o,o,o,o),1,o,!1,q==="update",new D.a9s())) r.push(E.bU(!1,p.f,L.bL(o,o,o,o,o,o,o,!0,o,o,o,o,o,o,o,o,o,o,o,!0,o,o,o,o,o,"Please input the compress level of gzip(1-9), 6 is recommended",o,o,o,!1,o,o,"Gzip Level",o,o,o,o,o,o,o,o,o,o,o),1,o,!1,!1,s)) r.push(E.bU(!1,p.r,L.bL(o,o,o,o,o,o,o,!0,o,o,o,o,o,o,o,o,o,o,o,!0,o,o,o,o,o,"Please input the compress level of br(1-10), 6 is recommended",o,o,o,!1,o,o,"Br Level",o,o,o,o,o,o,o,o,o,o,o),1,o,!1,!1,s)) r.push(E.bU(!1,p.x,L.bL(o,o,o,o,o,o,o,!0,o,o,o,o,o,o,o,o,o,o,o,!0,o,o,o,o,o,"Please input the remark for compress",o,o,o,!1,o,o,"Remark",o,o,o,o,o,o,o,o,o,o,o),3,3,!1,!1,o)) return M.ap(o,A.pQ(T.d2(r,C.w,C.B,C.x),p.d),o,o,o,o,new V.X(0,30,0,0),o,o)}, Xz:function(a){var s,r,q,p=this,o=null,n=p.e.a.a,m=n==null?o:C.c.cY(n),l=P.aj(["gzip",P.e5(p.f.a.a,o),"br",P.e5(p.r.a.a,o)],t.X,t.Em) n=p.x.a.a n=n==null?o:C.c.cY(n) s=H.b([],t.gU) r=a.a q=r.c if(q!=null)C.b.K(q,new D.a9l(m,s)) s.push(new T.dO(m,l,n)) p.cy.B(0,new G.eb(r.LE(s),o)) p.Y(new D.a9m(p))}, H:function(a,b){return O.hy(new D.a9v(this),t.R,t.Wc)}} D.a9n.prototype={ $1:function(a){if(a.a!=this.a)this.b.push(a)}, $S:156} D.a9p.prototype={ $1:function(a){var s=a.a,r=this.a,q=a.b return H.b([s,r.GV(q,"gzip"),r.GV(q,"br"),a.c],t.i)}, $S:446} D.a9q.prototype={ $1:function(a){var s,r=this.b.a.c[a],q=this.a q.FL() s=r.a if(s==null)s="" q.e.aW(0,new N.bb(s,C.O,C.v)) s=r.b q.f.aW(0,new N.bb(q.GU(s,"gzip"),C.O,C.v)) q.r.aW(0,new N.bb(q.GU(s,"br"),C.O,C.v)) s=r.c if(s==null)s="" q.x.aW(0,new N.bb(s,C.O,C.v)) q.Y(new D.a9o(q))}, $S:17} D.a9o.prototype={ $0:function(){this.a.y="update"}, $S:1} D.a9r.prototype={ $1:function(a){var s=this.b this.a.Z7(s,s.a.c[a].a)}, $S:17} D.a9s.prototype={ $1:function(a){return J.fY(a).length!==0?null:"name can not be null"}, $S:3} D.a9l.prototype={ $1:function(a){if(a.a!=this.a)this.b.push(a)}, $S:156} D.a9m.prototype={ $0:function(){this.a.y=""}, $S:1} D.a9v.prototype={ $2:function(a,b){var s,r,q,p=null if(b instanceof X.fk)return new L.ho(b.a,"Get compress config fail",p) t.h4.a(b) s=this.a r=s.y.length!==0?"Save Compress":"Add Compress" q=b.b if(q===!0)r="Processing..." return E.lE(M.ap(p,T.d2(H.b([s.a4e(b),s.YC(),new Z.e_(L.ba(r,p,p,p,p,p,p,p),new D.a9u(s,b),p,new V.X(0,30,0,0),p)],t.Y),C.w,C.B,C.x),p,p,p,p,new V.X(30,30,30,30),p,p),p,C.a4,p,C.n)}, $C:"$2", $R:2, $S:38} D.a9u.prototype={ $0:function(){var s,r=this.b if(r.b===!0)return s=this.a if(s.y.length!==0){if(s.d.gas().jd())s.Xz(r) return}s.FL() s.Y(new D.a9t(s))}, $S:1} D.a9t.prototype={ $0:function(){this.a.y="eidt"}, $S:1} Y.n8.prototype={ ah:function(){return new Y.Al(null,C.k)}} Y.Al.prototype={ a4b:function(a){var s,r,q,p,o=this,n=null if(!o.d)return n if(o.y==null)o.y=a.a s=a.a r=H.Y(s).h("Z<1,fl*>") q=P.an(new H.Z(s,new Y.aaZ(),r),!0,r.h("av.E")) if(o.f==null){s=q.length r=G.aj0(n,0,o) p=new P.a7(t.V) p.bQ(n,new B.bn(o.ga1d()),!1) o.f=new U.yR(r,s,p)}s=o.c s.toString s=K.aA(s).b r=t.Y return new Q.HN(M.ap(n,T.eF(H.b([M.ap(n,T.eF(H.b([new U.pW(new L.uK("images/logo.png"),40,n),M.ap(n,n,n,n,n,n,n,n,10),L.ba("Pike",n,n,n,n,A.hj(n,n,C.j,n,n,n,n,n,n,n,n,n,n,C.bA,n,n,!0,n,n,n,n,n,n,n),n,n)],r),C.w,C.B,C.x),n,n,n,n,new V.X(30,0,50,0),n,n),T.WL(new E.yP(q,o.f,!0,C.x7,C.j,n),1)],r),C.w,C.B,C.x),s,n,n,n,n,new V.X(0,5,0,0),1/0),new P.Q(1/0,60),n)}, a1e:function(){var s,r=this,q=r.f if(q.e===0)return s=r.y q=s==null?null:s[q.c] if((q==null?null:q.c)==="upstream")r.x.B(0,new G.pu()) r.Y(new Y.aaY(r))}, a4f:function(a){var s,r=null if(a instanceof X.fk)return new L.ho(a.a,"Fetch config fail",r) if(t.h4.a(a).a==null)return T.kZ(L.ba("Fetching config...",r,r,r,r,r,r,r),r,r) s=this.y s=s==null?r:s[this.r] switch(s==null?r:s.c){case"home":return E.lE(M.ap(r,T.d2(H.b([new S.uJ(r),M.ap(r,r,r,r,r,20,r,r,r),new Q.zt(r)],t.Y),C.w,C.B,C.x),r,r,r,r,new V.X(20,20,20,20),r,r),r,C.a4,r,C.n) case"compress":return new D.vj(r) case"cache":return new B.v2(r) case"upstream":return new B.zn(r) case"location":return new V.wE(r) case"server":return new R.yn(r) case"admin":return new F.ut(r) case"caches":return new E.v4(r) default:return M.ap(r,r,r,r,r,r,r,r,r)}}, a2g:function(){var s,r=null if(this.e)return T.kZ(L.ba("Fetching user informations...",r,r,r,r,r,r,r),r,r) s=t.R return R.Dr(O.hy(new Y.ab_(this),s,t.Wc),new Y.ab0(this),s)}, p:function(a){var s=this.f if(s!=null)s.p(0) this.UG(0)}, H:function(a,b){return O.hy(new Y.ab3(this),t._l,t.oL)}} Y.aaZ.prototype={ $1:function(a){var s=null,r=L.ed(a.b,s,s) return M.ap(s,new E.JX(a.a,r,new V.X(0,0,0,5),s),s,s,s,s,new V.X(10,0,10,0),s,s)}, $S:447} Y.aaY.prototype={ $0:function(){var s=this.a s.r=s.f.c}, $S:1} Y.ab0.prototype={ $1:function(a){var s,r=this.a if(r.x==null){s=new O.mE(P.od(t.YR),new X.iC(null,null)) $.jo().toString s.oq() r.x=s s.B(0,new G.pu())}return r.x}, $S:448} Y.ab_.prototype={ $2:function(a,b){return this.a.a4f(b)}, $C:"$2", $R:2, $S:150} Y.ab3.prototype={ $2:function(a,b){var s,r=null if(!(b instanceof X.wI))return M.akk(r,T.kZ(L.ba("Loading...",r,r,r,r,r,r,r),r,r)) s=this.a return X.ann(M.akk(s.a4b(b),s.a2g()),r,r,new Y.ab2(s),t.Uq,t.WJ)}, $C:"$2", $R:2, $S:450} Y.ab2.prototype={ $2:function(a,b){var s if(b instanceof Q.ib){s=b.b if(s!==!0){if(!b.gBI()){$.aj1.a.ach(a,"/login",C.mp) return}s=this.a s.Y(new Y.ab1(s,b))}}}, $S:451} Y.ab1.prototype={ $0:function(){var s=this.a s.e=!1 s.d=this.b.gBI()}, $S:1} Y.Ci.prototype={ p:function(a){this.bh(0)}, aG:function(){var s,r=this.cc$ if(r!=null){s=this.c s.toString r.sdE(0,!U.dm(s))}this.cq()}} V.wE.prototype={ ah:function(){var s=t.V,r=t.Jw,q=H.b([new D.aL(C.u,new P.a7(s))],r),p=H.b([new D.aL(C.u,new P.a7(s))],r),o=H.b([new D.aL(C.u,new P.a7(s))],r),n=H.b([new D.aL(C.u,new P.a7(s))],r),m=H.b([new D.aL(C.u,new P.a7(s))],r) r=H.b([new D.aL(C.u,new P.a7(s))],r) return new V.Nv(new N.aY(null,t.Xu),new D.aL(C.u,new P.a7(s)),q,p,o,n,m,r,new D.aL(C.u,new P.a7(s)),new D.aL(C.u,new P.a7(s)),C.k)}} V.Nv.prototype={ aC:function(){this.b_() var s=this.c s.toString this.fr=R.jq(s,t.R)}, HO:function(){var s=this s.e.aW(0,C.a6) s.cy="" C.b.K(H.b([s.f,s.r,s.x,s.z,s.Q],t.Hv),new V.ac3()) s.ch.aW(0,C.a6) s.cx.aW(0,C.a6)}, mk:function(a,b){var s=b.length if(s===0)return C.b.sl(a,0) C.b.K(b,new V.abz(a))}, a4j:function(a){var s,r,q,p,o=this,n=null if(o.db.length===0)return M.ap(n,n,n,n,n,n,n,n,n) s=H.b([],t.Y) r=o.db s.push(E.bU(!0,o.e,L.bL(n,n,n,n,n,n,n,!0,n,n,n,n,n,n,n,n,n,n,n,!0,n,n,n,n,n,"Please input the name of location",n,n,n,!1,n,n,"Name",n,n,n,n,n,n,n,n,n,n,n),1,n,!1,r==="update",new V.abJ())) r=a.a.e r=r==null?n:new H.Z(r,new V.abK(),H.Y(r).h("Z<1,f*>")) q=r==null?n:P.an(r,!0,r.$ti.h("av.E")) r=o.cy if(r==null)r="" s.push(M.ap(n,T.KM(n,new V.abL(o),q,"Upstream",n,r,n),n,n,n,n,new V.X(0,10,0,0),n,n)) C.b.K(o.f,new V.abS(s)) s.push(M.ap(n,new Z.e_(L.ba("Add More Prefix",n,n,n,n,n,n,n),new V.abT(o),new V.X(15,15,15,15),new V.X(0,10,0,0),n),n,n,n,n,n,n,n)) C.b.K(o.r,new V.abU(s)) s.push(M.ap(n,new Z.e_(L.ba("Add More Host",n,n,n,n,n,n,n),new V.abV(o),new V.X(15,15,15,15),new V.X(0,10,0,0),n),n,n,n,n,n,n,n)) p=new V.abW() C.b.K(o.x,new V.abX(s,p)) s.push(M.ap(n,new Z.e_(L.ba("Add More Rewrite",n,n,n,n,n,n,n),new V.abY(o),new V.X(15,15,15,15),new V.X(0,10,0,0),n),n,n,n,n,n,n,n)) C.b.K(o.y,new V.abZ(s,p)) s.push(M.ap(n,new Z.e_(L.ba("Add More Querystring",n,n,n,n,n,n,n),new V.abM(o),new V.X(15,15,15,15),new V.X(0,10,0,0),n),n,n,n,n,n,n,n)) C.b.K(o.z,new V.abN(s,p)) s.push(M.ap(n,new Z.e_(L.ba("Add More Response Header",n,n,n,n,n,n,n),new V.abO(o),new V.X(15,15,15,15),new V.X(0,10,0,0),n),n,n,n,n,n,n,n)) C.b.K(o.Q,new V.abP(s,p)) s.push(M.ap(n,new Z.e_(L.ba("Add More Request Header",n,n,n,n,n,n,n),new V.abQ(o),new V.X(15,15,15,15),new V.X(0,10,0,0),n),n,n,n,n,n,n,n)) s.push(E.bU(!1,o.ch,L.bL(n,n,n,n,n,n,n,!0,n,n,n,n,n,n,n,n,n,n,n,!0,n,n,n,n,n,"Please input the timeout of proxy request(10s, 1m)",n,n,n,!1,n,n,"Proxy Timeout",n,n,n,n,n,n,n,n,n,n,n),1,n,!1,!1,new V.abR())) s.push(E.bU(!1,o.cx,L.bL(n,n,n,n,n,n,n,!0,n,n,n,n,n,n,n,n,n,n,n,!0,n,n,n,n,n,"Please input the remark for location",n,n,n,!1,n,n,"Remark",n,n,n,n,n,n,n,n,n,n,n),3,3,!1,!1,n)) return M.ap(n,A.pQ(T.d2(s,C.w,C.B,C.x),o.d),n,n,n,n,new V.X(0,30,0,0),n,n)}, a4k:function(a){var s,r=a.a.f r=r==null?null:new H.Z(r,new V.ac0(),H.Y(r).h("Z<1,v*>")) s=r==null?null:P.an(r,!0,r.$ti.h("av.E")) return new S.lT(H.b(["Name","Upstream","Prefixes","Hosts","Rewrites","QueryStrings","Resp Headers","Req Headers","Proxy Timeout","Remark"],t.i),s,P.aj(["Upstream",120,"Prefixes",120,"Proxy Timeout",140],t.X,t.t0),new V.ac1(this,a),new V.ac2(this,a),null)}, mo:function(a){var s=H.b([],t.i) C.b.K(a,new V.abA(s)) return s}, Z8:function(a,b){var s,r,q=a.a if(!q.vV("location",b)){E.jE(C.bM,H.c(b)+" is used, it can not be deleted",2,C.c5,"#fe6c6f") return}s=H.b([],t.vA) r=q.f if(r!=null)C.b.K(r,new V.aby(b,s)) this.fr.B(0,new G.eb(q.LH(s),null))}, XD:function(a){var s,r,q,p,o,n,m,l,k,j,i,h,g=this,f=null,e=g.cy if(e==null||e.length===0){E.jE(C.bM,"upstream is required",2,C.c5,"#fe6c6f") return}s=g.e.a.a r=s==null?f:C.c.cY(s) s=g.mo(g.f) q=g.mo(g.r) p=g.mo(g.y) o=g.mo(g.x) n=g.mo(g.z) m=g.mo(g.Q) l=g.ch.a.a l=l==null?f:C.c.cY(l) k=g.cx.a.a k=k==null?f:C.c.cY(k) j=H.b([],t.vA) i=a.a h=i.f if(h!=null)C.b.K(h,new V.abw(r,j)) j.push(new T.dS(r,e,s,q,o,p,n,m,l,k)) g.fr.B(0,new G.eb(i.LH(j),f)) g.Y(new V.abx(g))}, H:function(a,b){return O.hy(new V.ac6(this),t.R,t.Wc)}} V.ac3.prototype={ $1:function(a){var s=J.bP(a) s.az(a) s.B(a,new D.aL(C.u,new P.a7(t.V)))}, $S:452} V.abz.prototype={ $1:function(a){var s=a==null?"":a this.a.push(new D.aL(new N.bb(s,C.O,C.v),new P.a7(t.V)))}, $S:10} V.abJ.prototype={ $1:function(a){return J.fY(a).length!==0?null:"Name can not be null"}, $S:3} V.abK.prototype={ $1:function(a){return a.a}, $S:453} V.abL.prototype={ $1:function(a){var s=this.a s.Y(new V.abI(s,a))}, $S:10} V.abI.prototype={ $0:function(){this.a.cy=this.b}, $S:1} V.abS.prototype={ $1:function(a){var s=null this.a.push(E.bU(!1,a,L.bL(s,s,s,s,s,s,s,!0,s,s,s,s,s,s,s,s,s,s,s,!0,s,s,s,s,s,"Please input the url prefix, e.g.: /api",s,s,s,!1,s,s,"Prefix",s,s,s,s,s,s,s,s,s,s,s),1,s,!1,!1,new V.abH()))}, $S:35} V.abH.prototype={ $1:function(a){if(a==null||a.length===0||C.c.bv(a,"/"))return null return"Prefix is invalid"}, $S:3} V.abT.prototype={ $0:function(){var s=this.a s.Y(new V.abG(s))}, $S:1} V.abG.prototype={ $0:function(){this.a.f.push(new D.aL(C.u,new P.a7(t.V)))}, $S:1} V.abU.prototype={ $1:function(a){var s=null this.a.push(E.bU(!1,a,L.bL(s,s,s,s,s,s,s,!0,s,s,s,s,s,s,s,s,s,s,s,!0,s,s,s,s,s,"Please input the host of request, e.g.: test.com",s,s,s,!1,s,s,"Host",s,s,s,s,s,s,s,s,s,s,s),1,s,!1,!1,s))}, $S:35} V.abV.prototype={ $0:function(){var s=this.a s.Y(new V.abF(s))}, $S:1} V.abF.prototype={ $0:function(){this.a.r.push(new D.aL(C.u,new P.a7(t.V)))}, $S:1} V.abW.prototype={ $1:function(a){if(a==null||a.length===0)return null if(a.split(":").length===2)return null return"The value should contain one :"}, $S:3} V.abX.prototype={ $1:function(a){var s=null this.a.push(E.bU(!1,a,L.bL(s,s,s,s,s,s,s,!0,s,s,s,s,s,s,s,s,s,s,s,!0,s,s,s,s,s,"Please input the url rewrite, e.g.: /api/*:/$1",s,s,s,!1,s,s,"Rewrite",s,s,s,s,s,s,s,s,s,s,s),1,s,!1,!1,this.b))}, $S:35} V.abY.prototype={ $0:function(){var s=this.a s.Y(new V.abE(s))}, $S:1} V.abE.prototype={ $0:function(){this.a.x.push(new D.aL(C.u,new P.a7(t.V)))}, $S:1} V.abZ.prototype={ $1:function(a){var s=null this.a.push(E.bU(!1,a,L.bL(s,s,s,s,s,s,s,!0,s,s,s,s,s,s,s,s,s,s,s,!0,s,s,s,s,s,"Please input the querystring, e.g.: id:1",s,s,s,!1,s,s,"Querystring",s,s,s,s,s,s,s,s,s,s,s),1,s,!1,!1,this.b))}, $S:35} V.abM.prototype={ $0:function(){var s=this.a s.Y(new V.abD(s))}, $S:1} V.abD.prototype={ $0:function(){this.a.y.push(new D.aL(C.u,new P.a7(t.V)))}, $S:1} V.abN.prototype={ $1:function(a){var s=null this.a.push(E.bU(!1,a,L.bL(s,s,s,s,s,s,s,!0,s,s,s,s,s,s,s,s,s,s,s,!0,s,s,s,s,s,"Please input the response header, e.g.: X-Resp-Id:1",s,s,s,!1,s,s,"Resp Header",s,s,s,s,s,s,s,s,s,s,s),1,s,!1,!1,this.b))}, $S:35} V.abO.prototype={ $0:function(){var s=this.a s.Y(new V.abC(s))}, $S:1} V.abC.prototype={ $0:function(){this.a.z.push(new D.aL(C.u,new P.a7(t.V)))}, $S:1} V.abP.prototype={ $1:function(a){var s=null this.a.push(E.bU(!1,a,L.bL(s,s,s,s,s,s,s,!0,s,s,s,s,s,s,s,s,s,s,s,!0,s,s,s,s,s,"Please int the request header, e.g.: X-Req-Id:1",s,s,s,!1,s,s,"Req Header",s,s,s,s,s,s,s,s,s,s,s),1,s,!1,!1,this.b))}, $S:35} V.abQ.prototype={ $0:function(){var s=this.a s.Y(new V.abB(s))}, $S:1} V.abB.prototype={ $0:function(){this.a.Q.push(new D.aL(C.u,new P.a7(t.V)))}, $S:1} V.abR.prototype={ $1:function(a){var s,r=P.c3("^\\d+[sm]$",!0) if(a!=null)s=!r.b.test(a) else s=!0 if(s)return"timeout is invalid" return null}, $S:3} V.ac0.prototype={ $1:function(a){return H.b([a.a,a.b,a.c,a.d,a.e,a.f,a.r,a.x,a.y,a.z],t.Q)}, $S:455} V.ac1.prototype={ $1:function(a){var s,r=this.b.a.f[a],q=this.a q.HO() s=r.a if(s==null)s="" q.e.aW(0,new N.bb(s,C.O,C.v)) q.cy=r.b q.mk(q.f,r.c) q.mk(q.r,r.d) q.mk(q.x,r.e) q.mk(q.y,r.f) q.mk(q.z,r.r) q.mk(q.Q,r.x) s=r.y if(s==null)s="" q.ch.aW(0,new N.bb(s,C.O,C.v)) s=r.z if(s==null)s="" q.cx.aW(0,new N.bb(s,C.O,C.v)) q.Y(new V.ac_(q))}, $S:17} V.ac_.prototype={ $0:function(){this.a.db="update"}, $S:1} V.ac2.prototype={ $1:function(a){var s=this.b this.a.Z8(s,s.a.f[a].a)}, $S:17} V.abA.prototype={ $1:function(a){var s=a.a.a,r=s==null?null:C.c.cY(s) if(r!=null&&r.length!==0)this.a.push(r)}, $S:35} V.aby.prototype={ $1:function(a){if(a.a!=this.a)this.b.push(a)}, $S:89} V.abw.prototype={ $1:function(a){if(a.a!=this.a)this.b.push(a)}, $S:89} V.abx.prototype={ $0:function(){this.a.db=""}, $S:1} V.ac6.prototype={ $2:function(a,b){var s,r,q,p=null if(b instanceof X.fk)return new L.ho(b.a,"Get location config fail",p) t.h4.a(b) s=this.a r=s.db.length!==0?"Save Upstream":"Add Upstream" q=b.b if(q===!0)r="Processing..." return E.lE(M.ap(p,T.d2(H.b([s.a4k(b),s.a4j(b),new Z.e_(L.ba(r,p,p,p,p,p,p,p),new V.ac5(s,b),p,new V.X(0,30,0,0),p)],t.Y),C.w,C.B,C.x),p,p,p,p,new V.X(30,30,30,30),p,p),p,C.a4,p,C.n)}, $C:"$2", $R:2, $S:38} V.ac5.prototype={ $0:function(){var s,r=this.b if(r.b===!0)return s=this.a if(s.db.length!==0){if(s.d.gas().jd())s.XD(r) return}s.HO() s.Y(new V.ac4(s))}, $S:1} V.ac4.prototype={ $0:function(){this.a.db="eidt"}, $S:1} D.nn.prototype={ ah:function(){var s=t.V return new D.Nx(new N.aY(null,t.Xu),new D.aL(C.u,new P.a7(s)),new D.aL(C.u,new P.a7(s)),C.k)}} D.Nx.prototype={ aC:function(){this.b_() var s=this.c s.toString this.r=R.jq(s,t.Uq)}, a4c:function(a){var s=this,r=null,q={},p=t.Y,o=H.b([],p) o.push(M.ap(r,T.d2(H.b([L.ed(C.qU,r,100)],p),C.w,C.B,C.x),r,r,r,r,new V.X(0,10,0,10),r,1/0)) o.push(E.bU(!0,s.e,L.bL(r,r,r,r,r,r,r,!0,r,r,r,r,r,r,r,r,r,r,r,!0,r,r,r,r,r,"Please input the account",r,r,L.ed(C.qX,r,r),!1,r,r,"Account",r,r,r,r,r,r,r,r,r,r,r),1,r,!1,!1,new D.ac7())) o.push(E.bU(!1,s.f,L.bL(r,r,r,r,r,r,r,!0,r,r,r,r,r,r,r,r,r,r,r,!0,r,r,r,r,r,"Please input the password",r,r,L.ed(C.qV,r,r),!1,r,r,"Password",r,r,r,r,r,r,r,r,r,r,r),1,r,!0,!1,new D.ac8())) if(a instanceof Q.rZ)o.push(M.ap(r,new L.KK(a.a,r),r,r,r,r,new V.X(0,20,0,0),r,r)) q.a=!1 if(a instanceof Q.ib){p=a.b p=p===!0}else p=!1 o.push(new T.ee(C.qm,new Z.e_(L.ba(p&&(q.a=!0)?"Login...":"Login",r,r,r,r,r,r,r),new D.ac9(q,s),r,new V.X(0,0,0,0),r),r)) return E.lE(new T.ee(new V.X(20,0,20,0),A.pQ(T.d2(o,C.w,C.B,C.x),s.d),r),r,C.a4,r,C.n)}, H:function(a,b){return O.hy(new D.acb(this),t.Uq,t.WJ)}} D.ac7.prototype={ $1:function(a){return J.fY(a).length!==0?null:"account can not be nil"}, $S:3} D.ac8.prototype={ $1:function(a){return J.fY(a).length!==0?null:"password can not be nil"}, $S:3} D.ac9.prototype={ $0:function(){if(this.a.a)return var s=this.b if(t.QK.a(s.d.gas()).jd()){s.r.B(0,new Y.zo(s.e.a.a,s.f.a.a)) return}}, $S:1} D.acb.prototype={ $2:function(a,b){var s,r=null if(b instanceof Q.ib&&b.gBI())P.ajF(P.cJ(0,100),new D.aca(a),t.H) s=L.ba("Login",r,r,r,r,r,r,r) return M.akk(new E.uG(s,new P.Q(1/0,56),r),this.a.a4c(b))}, $C:"$2", $R:2, $S:456} D.aca.prototype={ $0:function(){$.aj1.toString K.qn(this.a,!1).qu(0,null) return null}, $S:0} R.yn.prototype={ ah:function(){var s=t.V return new R.Pv(new N.aY(null,t.Xu),new D.aL(C.u,new P.a7(s)),new D.aL(C.u,new P.a7(s)),new D.aL(C.u,new P.a7(s)),new D.aL(C.u,new P.a7(s)),new D.aL(C.u,new P.a7(s)),C.k)}} R.Pv.prototype={ aC:function(){this.b_() var s=this.c s.toString this.dx=R.jq(s,t.R)}, Jb:function(){var s=this s.e.aW(0,C.a6) s.f=H.b([],t.i) s.x=s.r="" s.y.aW(0,C.a6) s.z.aW(0,C.a6) s.Q.aW(0,C.a6) s.ch.aW(0,C.a6)}, Z9:function(a,b){var s=H.b([],t.Ve),r=a.a,q=r.r if(q!=null)C.b.K(q,new R.ae8(b,s)) this.dx.B(0,new G.eb(r.LL(s),null))}, a4m:function(a){var s,r="Compress Min Length",q="Compress Content Filter",p=a.a.r p=p==null?null:new H.Z(p,new R.ael(),H.Y(p).h("Z<1,v*>")) s=p==null?null:P.an(p,!0,p.$ti.h("av.E")) return new S.lT(H.b(["Addr","Locations","Cache","Compress",r,q,"Log Format","Remark"],t.i),s,P.aj(["Locations",160,"Cache",140,"Compress",140,r,200,q,220],t.X,t.t0),new R.aem(this,a),new R.aen(this,a),null)}, XG:function(a){var s,r,q,p,o,n,m,l,k,j=this,i=null,h=j.e.a.a,g=h==null?i:C.c.cY(h) h=j.Q.a.a h=h==null?i:C.c.cY(h) s=j.f r=j.r q=j.x p=j.y.a.a p=p==null?i:C.c.cY(p) o=j.z.a.a o=o==null?i:C.c.cY(o) n=j.ch.a.a n=n==null?i:C.c.cY(n) m=H.b([],t.Ve) l=a.a k=l.r if(k!=null)C.b.K(k,new R.ae6(g,m)) m.push(new T.eG(h,g,s,r,q,p,o,n)) j.dx.B(0,new G.eb(l.LL(m),i)) j.Y(new R.ae7(j))}, a51:function(a){var s,r,q,p,o,n,m=this,l=null if(m.cx.length===0)return M.ap(l,l,l,l,l,l,l,l,l) s=H.b([],t.Y) r=m.cx s.push(E.bU(!0,m.e,L.bL(l,l,l,l,l,l,l,!0,l,l,l,l,l,l,l,l,l,l,l,!0,l,l,l,l,l,"Please input the addr of server",l,l,l,!1,l,l,"Addr",l,l,l,l,l,l,l,l,l,l,l),1,l,!1,r==="update",new R.aec())) r=a.a q=r.f q=q==null?l:new H.Z(q,new R.aed(),H.Y(q).h("Z<1,f*>")) p=q==null?l:P.an(q,!0,q.$ti.h("av.E")) s.push(M.ap(l,T.KM(!0,new R.aee(m),p,"Locations",!0,l,m.f),l,l,l,l,new V.X(0,10,0,0),l,l)) q=r.d q=q==null?l:new H.Z(q,new R.aef(),H.Y(q).h("Z<1,f*>")) o=q==null?l:P.an(q,!0,q.$ti.h("av.E")) s.push(M.ap(l,T.KM(l,new R.aeg(m),o,"Cache",!0,m.r,l),l,l,l,l,new V.X(0,10,0,0),l,l)) r=r.c r=r==null?l:new H.Z(r,new R.aeh(),H.Y(r).h("Z<1,f*>")) n=r==null?l:P.an(r,!0,r.$ti.h("av.E")) s.push(M.ap(l,T.KM(l,new R.aei(m),n,"Compress",!0,m.x,l),l,l,l,l,new V.X(0,10,0,0),l,l)) s.push(E.bU(!1,m.y,L.bL(l,l,l,l,l,l,l,!0,l,l,l,l,l,l,l,l,l,l,l,!0,l,l,l,l,l,"Please input the compress min length(1kb, 1mb)",l,l,l,!1,l,l,"Compress Min Length",l,l,l,l,l,l,l,l,l,l,l),1,l,!1,!1,new R.aej())) s.push(E.bU(!1,m.z,L.bL(l,l,l,l,l,l,l,!0,l,l,l,l,l,l,l,l,l,l,l,!0,l,l,l,l,l,"Please int the compress content filter, e.g.: text|javascript|json|wasm|xml, optional",l,l,l,!1,l,l,"Compress Content Filter",l,l,l,l,l,l,l,l,l,l,l),1,l,!1,!1,l)) s.push(E.bU(!1,m.Q,L.bL(l,l,l,l,l,l,l,!0,l,l,l,l,l,l,l,l,l,l,l,!0,l,l,l,l,l,"Please input the log format for server",l,l,l,!1,l,l,"Log Format",l,l,l,l,l,l,l,l,l,l,l),3,3,!1,!1,l)) s.push(E.bU(!1,m.ch,L.bL(l,l,l,l,l,l,l,!0,l,l,l,l,l,l,l,l,l,l,l,!0,l,l,l,l,l,"Please input the remark for server",l,l,l,!1,l,l,"Remark",l,l,l,l,l,l,l,l,l,l,l),3,3,!1,!1,l)) return M.ap(l,A.pQ(T.d2(s,C.w,C.B,C.x),m.d),l,l,l,l,new V.X(0,30,0,0),l,l)}, H:function(a,b){return O.hy(new R.aeq(this),t.R,t.Wc)}} R.ae8.prototype={ $1:function(a){if(a.b!=this.a)this.b.push(a)}, $S:52} R.ael.prototype={ $1:function(a){return H.b([a.b,a.c,a.d,a.e,a.f,a.r,a.a,a.x],t.Q)}, $S:457} R.aem.prototype={ $1:function(a){var s,r=this.b.a.r[a],q=this.a q.Jb() s=r.b if(s==null)s="" q.e.aW(0,new N.bb(s,C.O,C.v)) q.f=r.c q.r=r.d q.x=r.e s=r.f if(s==null)s="" q.y.aW(0,new N.bb(s,C.O,C.v)) s=r.r if(s==null)s="" q.z.aW(0,new N.bb(s,C.O,C.v)) s=r.a if(s==null)s="" q.Q.aW(0,new N.bb(s,C.O,C.v)) s=r.x if(s==null)s="" q.ch.aW(0,new N.bb(s,C.O,C.v)) q.Y(new R.aek(q))}, $S:17} R.aek.prototype={ $0:function(){this.a.cx="update"}, $S:1} R.aen.prototype={ $1:function(a){var s=this.b this.a.Z9(s,s.a.r[a].b)}, $S:17} R.ae6.prototype={ $1:function(a){if(a.b!=this.a)this.b.push(a)}, $S:52} R.ae7.prototype={ $0:function(){this.a.cx=""}, $S:1} R.aec.prototype={ $1:function(a){return J.fY(a).length!==0?null:"addr can not be null"}, $S:3} R.aed.prototype={ $1:function(a){return a.a}, $S:458} R.aee.prototype={ $1:function(a){var s=a==null?null:H.b(a.split(","),t.s),r=this.a r.Y(new R.aeb(r,s))}, $S:10} R.aeb.prototype={ $0:function(){this.a.f=this.b}, $S:1} R.aef.prototype={ $1:function(a){return a.a}, $S:459} R.aeg.prototype={ $1:function(a){var s=this.a s.Y(new R.aea(s,a))}, $S:10} R.aea.prototype={ $0:function(){this.a.r=this.b}, $S:1} R.aeh.prototype={ $1:function(a){return a.a}, $S:460} R.aei.prototype={ $1:function(a){var s=this.a s.Y(new R.ae9(s,a))}, $S:10} R.ae9.prototype={ $0:function(){this.a.x=this.b}, $S:1} R.aej.prototype={ $1:function(a){var s if(a==null||a.length===0)return null s=P.c3("\\d+[km]b$",!0) if(typeof a!="string")H.e(H.bZ(a)) if(s.b.test(a))return null return"Compress min length is invalid"}, $S:3} R.aeq.prototype={ $2:function(a,b){var s,r,q,p=null if(b instanceof X.fk)return new L.ho(b.a,"Get server config fail",p) t.h4.a(b) s=this.a r=s.cx.length!==0?"Save Server":"Add Server" q=b.b if(q===!0)r="Processing..." return E.lE(M.ap(p,T.d2(H.b([s.a4m(b),s.a51(b),new Z.e_(L.ba(r,p,p,p,p,p,p,p),new R.aep(s,b),p,new V.X(0,30,0,0),p)],t.Y),C.w,C.B,C.x),p,p,p,p,new V.X(30,30,30,30),p,p),p,C.a4,p,C.n)}, $C:"$2", $R:2, $S:38} R.aep.prototype={ $0:function(){var s,r=this.b if(r.b===!0)return s=this.a if(s.cx.length!==0){if(s.d.gas().jd())s.XG(r) return}s.Jb() s.Y(new R.aeo(s))}, $S:1} R.aeo.prototype={ $0:function(){this.a.cx="eidt"}, $S:1} B.zn.prototype={ ah:function(){var s=t.V return new B.QV(new N.aY(null,t.Xu),new D.aL(C.u,new P.a7(s)),new D.aL(C.u,new P.a7(s)),new D.aL(C.u,new P.a7(s)),new D.aL(C.u,new P.a7(s)),H.b([],t.L2),C.b.gI($.S3),C.k)}} B.jg.prototype={} B.QV.prototype={ aC:function(){this.b_() var s=this.c s.toString this.db=R.jq(s,t.R)}, Kz:function(){var s,r=this r.e.aW(0,C.a6) r.f.aW(0,C.a6) r.r.aW(0,C.a6) r.x.aW(0,C.a6) r.z=C.b.gI($.S3) r.Q=!1 s=r.y C.b.sl(s,0) s.push(new B.jg(new D.aL(C.u,new P.a7(t.V))))}, a6C:function(a){var s=this,r=a.a if(r==null)r="" s.e.aW(0,new N.bb(r,C.O,C.v)) r=a.b if(r==null)r="" s.f.aW(0,new N.bb(r,C.O,C.v)) r=a.e if(r==null)r="" s.r.aW(0,new N.bb(r,C.O,C.v)) r=a.r if(r==null)r="" s.x.aW(0,new N.bb(r,C.O,C.v)) r=a.c s.z=r==null?C.b.gI($.S3):r r=a.d s.Q=r===!0 C.b.sl(s.y,0) C.b.K(a.f,new B.afv(s))}, Za:function(a,b){var s,r,q=a.a if(!q.vV("upstream",b)){E.jE(C.bM,H.c(b)+" is used, it cant not be deleted",2,C.c5,"#fe6c6f") return}s=H.b([],t.Wb) r=q.e if(r!=null)C.b.K(r,new B.afu(b,s)) this.db.B(0,new G.eb(q.LM(s),null))}, XK:function(a){var s,r,q,p,o,n,m,l,k=this,j=null,i=k.e.a.a,h=i==null?j:C.c.cY(i) i=k.f.a.a s=i==null?j:C.c.cY(i) i=k.r.a.a r=i==null?j:C.c.cY(i) i=k.x.a.a q=i==null?j:C.c.cY(i) p=H.b([],t.nM) C.b.K(k.y,new B.afr(p)) i=k.z o=k.Q n=H.b([],t.Wb) m=a.a l=m.e if(l!=null)C.b.K(l,new B.afs(h,n)) n.push(new T.dZ(h,s,i,o,r,p,q)) k.db.B(0,new G.eb(m.LM(n),"2s")) k.Y(new B.aft(k))}, a6E:function(a){var s=new H.Z(a,new B.afI(),H.Y(a).h("Z<1,fG*>")) return P.an(s,!0,s.$ti.h("av.E"))}, a4l:function(){var s=null,r=this.y,q=H.Y(r).h("Z<1,fl*>"),p=P.an(new H.Z(r,new B.afG(this),q),!0,q.h("av.E")) C.b.lq(p,0,M.ap(s,T.eF(H.b([L.ba("Servers",s,s,s,s,s,s,s),L.ba("(upstream server list)",s,s,s,s,A.hj(s,s,C.J,s,s,s,s,s,s,s,s,12,s,s,s,s,!0,s,s,s,s,s,s,s),s,s)],t.Y),C.w,C.B,C.x),s,s,s,s,new V.X(0,10,0,0),s,1/0)) C.b.B(p,M.ap(s,new Z.e_(L.ba("Add More Server",s,s,s,s,s,s,s),new B.afH(this),new V.X(15,15,15,15),new V.X(0,10,0,0),s),s,s,s,s,s,s,s)) return T.d2(p,C.w,C.B,C.x)}, a6D:function(){var s,r,q,p=this,o=null if(p.ch.length===0)return M.ap(o,o,o,o,o,o,o,o,o) s=t.Y r=H.b([],s) q=p.ch r.push(E.bU(!0,p.e,L.bL(o,o,o,o,o,o,o,!0,o,o,o,o,o,o,o,o,o,o,o,!0,o,o,o,o,o,"Please input the name of upstream",o,o,o,!1,o,o,"Name",o,o,o,o,o,o,o,o,o,o,o),1,o,!1,q==="update",new B.afy())) r.push(E.bU(!1,p.f,L.bL(o,o,o,o,o,o,o,!0,o,o,o,o,o,o,o,o,o,o,o,!0,o,o,o,o,o,"Please input the health check url, e.g.: /ping",o,o,o,!1,o,o,"Health Check",o,o,o,o,o,o,o,o,o,o,o),1,o,!1,!1,new B.afz())) q=p.z if(q==null)q=C.b.gI($.S3) r.push(M.ap(o,T.KM(o,new B.afA(p),$.S3,"Policy",o,q,o),o,o,o,o,new V.X(0,10,0,0),o,o)) r.push(T.eF(H.b([L.ba("Enable H2C",o,o,o,o,o,o,o),M.ap(o,o,o,o,o,o,o,o,10),N.apJ(new B.afB(p),p.Q)],s),C.w,C.B,C.x)) r.push(E.bU(!1,p.r,L.bL(o,o,o,o,o,o,o,!0,o,o,o,o,o,o,o,o,o,o,o,!0,o,o,o,o,o,"Please input the accept encoding of proxy, e.g.: gzip, br [optional]",o,o,o,!1,o,o,"Accept Encoding",o,o,o,o,o,o,o,o,o,o,o),1,o,!1,!1,o)) r.push(p.a4l()) r.push(E.bU(!1,p.x,L.bL(o,o,o,o,o,o,o,!0,o,o,o,o,o,o,o,o,o,o,o,!0,o,o,o,o,o,"Please input the remark for upstream",o,o,o,!1,o,o,"Remark",o,o,o,o,o,o,o,o,o,o,o),3,3,!1,!1,o)) return M.ap(o,A.pQ(T.d2(r,C.w,C.B,C.x),p.d),o,o,o,o,new V.X(0,30,0,0),o,o)}, a4n:function(a){var s,r=a.a.e r=r==null?null:new H.Z(r,new B.afK(this),H.Y(r).h("Z<1,v*>")) s=r==null?null:P.an(r,!0,r.$ti.h("av.E")) return new S.lT(H.b(["Name","Health Check","Policy","Enable H2C","Accept Encoding","Servers","Remark"],t.i),s,P.aj(["Health Check",150,"Policy",120,"Enable H2C",120,"Accept Encoding",160],t.X,t.t0),new B.afL(this,a),new B.afM(this,a),null)}, H:function(a,b){return O.hy(new B.afP(this),t.R,t.Wc)}} B.afv.prototype={ $1:function(a){var s=new D.aL(C.u,new P.a7(t.V)),r=new B.jg(s),q=a.a s.aW(0,new N.bb(q==null?"":q,C.O,C.v)) s=a.b r.b=s===!0 this.a.y.push(r)}, $S:461} B.afu.prototype={ $1:function(a){if(a.a!=this.a)this.b.push(a)}, $S:146} B.afr.prototype={ $1:function(a){var s=a.a.a.a,r=s==null?null:C.c.cY(s) if(r!=null&&r.length!==0)this.a.push(new T.eP(r,a.b,null))}, $S:463} B.afs.prototype={ $1:function(a){if(a.a!=this.a)this.b.push(a)}, $S:146} B.aft.prototype={ $0:function(){this.a.ch=""}, $S:1} B.afI.prototype={ $1:function(a){var s,r=null,q=a.a,p=a.b if(p===!0)q=J.mk(q," (backup)") s=L.ed(C.jZ,C.x9,14) p=a.c if(p==null||!p)s=L.ed(C.k_,C.xa,14) return T.eF(H.b([L.ba(q,r,r,r,r,r,r,r),M.ap(r,r,r,r,r,r,r,r,5),s],t.Y),C.w,C.B,C.x)}, $S:464} B.afG.prototype={ $1:function(a){var s=null,r=M.ap(s,E.bU(!1,a.a,L.bL(s,s,s,s,s,s,s,!0,s,s,s,s,s,s,s,s,s,s,s,!0,s,s,s,s,s,"Please input the server addr, e.g.: http://127.0.0.1:3015 ",s,s,s,!1,s,s,"Addr",s,s,s,s,s,s,s,s,s,s,s),1,s,!1,!1,new B.afE()),s,s,s,s,s,s,s),q=t.Y,p=T.eF(H.b([L.ba("Backup",s,s,s,s,s,s,s),M.ap(s,s,s,s,s,s,s,s,10),N.apJ(new B.afF(this.a,a),a.b)],q),C.w,C.B,C.x),o=F.ano($.aiu()) return M.ap(s,T.d2(H.b([r,p],q),C.w,C.B,C.x),s,s,new S.dM(s,s,o,s,s,s,C.ac),s,new V.X(0,10,0,0),new V.X(10,10,10,10),s)}, $S:465} B.afE.prototype={ $1:function(a){var s if(a==null||a.length===0)return null s=P.c3("^http(s?)://",!0) if(typeof a!="string")H.e(H.bZ(a)) if(s.b.test(a))return null return"Server addr should be http://xxx or https://xxx"}, $S:3} B.afF.prototype={ $1:function(a){this.a.Y(new B.afC(this.b,a))}, $S:162} B.afC.prototype={ $0:function(){this.a.b=this.b}, $S:1} B.afH.prototype={ $0:function(){var s=this.a s.Y(new B.afD(s))}, $S:1} B.afD.prototype={ $0:function(){this.a.y.push(new B.jg(new D.aL(C.u,new P.a7(t.V))))}, $S:1} B.afy.prototype={ $1:function(a){return J.fY(a).length!==0?null:"Name can not be null"}, $S:3} B.afz.prototype={ $1:function(a){if(J.fY(a).length===0)return null if(!C.c.bv(a,"/"))return"Health check should be url path" return null}, $S:3} B.afA.prototype={ $1:function(a){var s=this.a s.Y(new B.afx(s,a))}, $S:10} B.afx.prototype={ $0:function(){this.a.z=this.b}, $S:1} B.afB.prototype={ $1:function(a){var s=this.a s.Y(new B.afw(s,a))}, $S:162} B.afw.prototype={ $0:function(){this.a.Q=this.b}, $S:1} B.afK.prototype={ $1:function(a){var s=a.a,r=a.b,q=a.c,p=a.d p=p===!0?"on":"off" return H.b([s,r,q,p,a.e,this.a.a6E(a.f),a.r],t.Q)}, $S:467} B.afL.prototype={ $1:function(a){var s=this.b.a.e[a],r=this.a r.Kz() r.a6C(s) r.Y(new B.afJ(r))}, $S:17} B.afJ.prototype={ $0:function(){this.a.ch="update"}, $S:1} B.afM.prototype={ $1:function(a){var s=this.b this.a.Za(s,s.a.e[a].a)}, $S:17} B.afP.prototype={ $2:function(a,b){var s,r,q,p=null if(b instanceof X.fk)return new L.ho(b.a,"Get upstream config fail",p) t.h4.a(b) s=this.a r=s.ch.length!==0?"Save Upstream":"Add Upstream" q=b.b if(q===!0)r="Processing..." return E.lE(M.ap(p,T.d2(H.b([s.a4n(b),s.a6D(),new Z.e_(L.ba(r,p,p,p,p,p,p,p),new B.afO(s,b),p,new V.X(0,30,0,0),p)],t.Y),C.w,C.B,C.x),p,p,p,p,new V.X(30,30,30,30),p,p),p,C.a4,p,C.n)}, $C:"$2", $R:2, $S:38} B.afO.prototype={ $0:function(){var s,r=this.b if(r.b===!0)return s=this.a if(s.ch.length!==0){if(s.d.gas().jd())s.XK(r) return}s.Kz() s.Y(new B.afN(s))}, $S:1} B.afN.prototype={ $0:function(){this.a.ch="eidt"}, $S:1} Q.zt.prototype={ ah:function(){return new Q.R3(new D.aL(C.u,new P.a7(t.V)),C.k)}} Q.R3.prototype={ aC:function(){this.b_() var s=this.c s.toString this.f=R.jq(s,t.R)}, a4g:function(a){var s,r=null if(this.d!=="edit"){s=a==null?"-- No Content --":a return L.ba(s,r,r,r,r,A.hj(r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,1.5,!0,r,r,r,r,r,r,r),r,r)}return E.bU(!1,this.e,L.bL(r,r,r,r,r,r,r,!0,r,r,r,r,r,r,r,r,r,r,r,!0,r,r,r,r,r,"Please input the content of yaml",r,r,r,!1,r,r,"YAML Config",r,r,r,r,r,r,r,r,r,r,r),30,20,!1,!1,r)}, a4a:function(a){var s,r=this,q=null,p=a.a.a,o=M.ap(q,q,q,q,q,q,q,q,10),n=H.b([],t.Y) if(r.d!=="edit"){n.push(B.jI(q,q,L.ed(C.k0,q,q),new Q.ag6(r),new V.X(0,0,0,0),q)) n.push(o)}else{s=p==null?"":p r.e.aW(0,new N.bb(s,C.O,C.v)) n.push(B.jI(q,q,L.ed(C.qO,q,q),new Q.ag7(r),new V.X(0,0,0,0),q)) n.push(o) n.push(B.jI(q,q,L.ed(C.qY,q,q),new Q.ag8(r),new V.X(0,0,0,0),q))}if(r.d!=="edit"&&p!=null&&p.length!==0)n.push(B.jI(q,new S.aN(0,1/0,0,1/0),L.ed(C.qP,q,q),new Q.ag9(p),new V.X(0,0,0,0),q)) return new V.ow("Config",r.a4g(p),n,q)}, H:function(a,b){return O.hy(new Q.aga(this),t.R,t.Wc)}} Q.ag6.prototype={ $0:function(){var s=this.a s.Y(new Q.ag5(s))}, $C:"$0", $R:0, $S:1} Q.ag5.prototype={ $0:function(){this.a.d="edit"}, $S:1} Q.ag7.prototype={ $0:function(){var s=this.a s.Y(new Q.ag4(s))}, $C:"$0", $R:0, $S:1} Q.ag4.prototype={ $0:function(){this.a.d=""}, $S:1} Q.ag8.prototype={ $0:function(){var s=this.a s.Y(new Q.ag3(s))}, $C:"$0", $R:0, $S:1} Q.ag3.prototype={ $0:function(){var s=null,r=this.a r.d="" r.f.B(0,new G.eb(new T.pt(r.e.a.a,s,s,s,s,s,s),s))}, $S:1} Q.ag9.prototype={ $0:function(){var s,r=(self.URL||self.webkitURL).createObjectURL(W.aj3([C.U.gfY().c6(this.a)])),q=document,p=q.createElement("a") t.wm.a(p) p.href=r s=p.style s.display="none" p.download="pike.yaml" q.body.appendChild(p) p.click() q=q.body q.toString W.aq9(q,p);(self.URL||self.webkitURL).revokeObjectURL(r)}, $C:"$0", $R:0, $S:1} Q.aga.prototype={ $2:function(a,b){if(b instanceof X.fk)return new L.ho(b.a,"Get upstream config fail",null) return this.a.a4a(t.h4.a(b))}, $C:"$2", $R:2, $S:150} Z.e_.prototype={ H:function(a,b){var s=this,r=null,q=s.e if(q==null)q=new V.X(20,20,20,20) return M.ap(r,D.akh(s.c,K.aA(b).b,s.d,q,C.j),r,r,r,r,s.f,r,1/0)}, d4:function(a){return this.c.$0()}} V.ow.prototype={ H:function(a,b){var s,r,q=null,p=t.Y,o=H.b([L.ba(this.c,q,q,q,q,A.hj(q,q,q,q,q,q,q,q,q,q,q,q,q,C.bA,q,q,!0,q,q,q,q,q,q,q),q,q)],p),n=this.e if(n!=null&&n.length!==0){o.push(new R.JG(q)) C.b.J(o,n)}n=$.aiu() s=F.ano(n) r=$.alP() return M.ap(q,T.d2(H.b([M.ap(q,T.eF(o,C.w,C.B,C.x),q,q,new S.dM(r,q,new F.da(C.q,C.q,new Y.dL(n,1,C.a_),C.q),q,q,q,C.ac),q,q,new V.X(20,20,20,20),1/0),M.ap(q,this.d,q,q,q,q,q,new V.X(20,20,20,20),1/0)],p),C.w,C.B,C.x),q,q,new S.dM(q,q,s,q,q,q,C.ac),q,q,q,q)}} L.ho.prototype={ H:function(a,b){var s=null return T.d2(H.b([M.ap(s,L.ed(C.k1,C.dc.i(0,900),80),s,s,s,s,new V.X(0,40,0,20),s,s),M.ap(s,L.ba(this.d,s,s,s,s,A.hj(s,s,s,s,s,s,s,s,s,s,s,18,s,s,s,s,!0,s,s,s,s,s,s,s),C.c4,s),s,s,s,s,new V.X(10,10,10,10),s,1/0),M.ap(s,L.ba(this.c,s,s,s,s,s,s,s),s,s,s,s,new V.X(10,10,10,10),s,s)],t.Y),C.w,C.B,C.x)}} L.KK.prototype={ H:function(a,b){var s=null return T.eF(H.b([L.ed(C.k1,C.dc.i(0,900),s),M.ap(s,s,s,s,s,s,s,s,10),T.WL(L.ba(this.c,1,C.aV,s,s,s,s,s),1)],t.Y),C.w,C.B,C.x)}} T.KL.prototype={ H:function(a,b){var s=null,r=H.b([L.ba(this.c,s,s,s,s,s,s,s),M.ap(s,s,s,s,s,s,s,s,10)],t.Y),q=this.f;(q&&C.b).K(q,new T.a85(this,r)) return T.eF(r,C.w,C.B,C.x)}} T.a85.prototype={ $1:function(a){var s,r,q,p=null,o=this.a if(o.y===!0){s=o.e s=s==null?p:C.b.C(s,a) if(s!==!0){r=C.er q=C.J}else{r=C.bC q=C.bC}}else if(o.d!=a){r=C.er q=C.J}else{r=C.bC q=C.bC}s=this.b s.push(D.akh(T.eF(H.b([L.ed(C.jZ,r,12),M.ap(p,p,p,p,p,p,p,p,3),L.ba(a,p,p,p,p,A.hj(p,p,q,p,p,p,p,p,p,p,p,p,p,p,p,p,!0,p,p,p,p,p,p,p),p,p)],t.Y),C.w,C.B,C.x),C.j,new T.a84(o,a),p,r)) s.push(M.ap(p,p,p,p,p,p,p,p,10))}, $S:10} T.a84.prototype={ $0:function(){var s,r,q,p=this.a if(p.y===!0){s=t.i r=H.b([],s) q=p.e C.b.J(r,q==null?H.b([],s):q) s=this.b if(C.b.C(r,s)){if(p.x===!0)C.b.u(r,s)}else r.push(s) p.r.$1(C.b.bI(r,",")) return}s=this.b if(s==p.d){if(p.x===!0)p.r.$1("") return}p.r.$1(s)}, $S:1} S.KN.prototype={ YZ:function(a){var s=$.aiE(),r=J.mn(a,new S.a86(),t.Is) return new T.ee(s,T.d2(r.f7(0),C.w,C.B,C.x),null)}, H:function(a,b){var s,r,q=this,p=P.y(t.Em,t.PV),o=q.e,n=o.gaV(o) if(n)o.K(0,new S.a89(q,p)) o=q.c n=H.Y(o).h("Z<1,fl*>") s=H.b([new S.i8(P.an(new H.Z(o,new S.a8a(),n),!0,n.h("av.E")))],t.w2) C.b.K(q.d,new S.a8b(q,s)) r=new Y.dL($.aiu(),1,C.a_) return S.aBi(new N.JY(r,r,r),s,p)}} S.a86.prototype={ $1:function(a){var s,r=null if(a instanceof N.h)s=a else s=L.ba(a==null?r:J.bB(a),r,r,r,r,r,r,r) return T.eF(H.b([L.ed(C.qN,C.S,8),M.ap(r,r,r,r,r,r,r,r,5),s],t.Y),C.w,C.B,C.x)}, $S:468} S.a89.prototype={ $2:function(a,b){var s={} s.a=0 s.b=-1 C.b.K(this.a.c,new S.a88(s,a)) s=s.b if(s!==-1)this.b.n(0,s,new S.Fw(b))}, $S:469} S.a88.prototype={ $1:function(a){var s if(a==this.b){s=this.a s.b=s.a}++this.a.a}, $S:10} S.a8a.prototype={ $1:function(a){var s=null,r=$.alP(),q=$.aiE() return M.ap(s,L.ba(a,s,s,s,s,A.hj(s,s,s,s,s,s,s,s,s,s,s,s,s,C.bA,s,s,!0,s,s,s,s,s,s,s),s,s),r,s,s,s,s,q,s)}, $S:470} S.a8b.prototype={ $1:function(a){this.b.push(new S.i8(J.mn(a,new S.a87(this.a),t.ib).f7(0)))}, $S:133} S.a87.prototype={ $1:function(a){var s,r,q=null if(a instanceof N.h)return a if(t.TN.b(a))return this.a.YZ(a) s=a==null?q:J.bB(a) r=$.aiE() return new T.ee(r,L.ba(s==null?"--":s,q,q,q,q,q,q,q),q)}, $S:472} S.lT.prototype={ YW:function(a,b,c){var s=null return new T.ee(new V.X(20,0,0,0),T.eF(H.b([B.jI(s,s,L.ed(C.k0,s,16),new S.a81(a,c),C.ck,s),B.jI(s,s,L.ed(C.qQ,s,16),new S.a82(b,c),C.ck,s)],t.Y),C.w,C.B,C.x),s)}, H:function(a,b){var s,r,q=this,p="Operations",o={},n=q.c n.push(p) s=H.b([],t.Uj) r=q.d if(r!=null&&r.length!==0){o.a=0;(r&&C.b).K(r,new S.a83(o,q,s))}o=q.e o.n(0,p,155) return new S.KN(n,s,o,null)}} S.a81.prototype={ $0:function(){return this.a.$1(this.b)}, $C:"$0", $R:0, $S:0} S.a82.prototype={ $0:function(){return this.a.$1(this.b)}, $C:"$0", $R:0, $S:0} S.a83.prototype={ $1:function(a){var s,r=this.a,q=r.a,p=[] C.b.J(p,a) s=this.b p.push(s.YW(s.f,s.r,q));++r.a this.c.push(p)}, $S:133};(function aliases(){var s=H.Pk.prototype s.U2=s.az s.U8=s.bu s.U6=s.bj s.Ub=s.af s.U9=s.d_ s.U7=s.h5 s.Ua=s.b1 s.U5=s.jV s.U4=s.jU s.U3=s.fh s=H.hC.prototype s.Rh=s.iI s.Ri=s.mV s.Rj=s.jW s.Rk=s.eB s.Rl=s.fW s.Rm=s.i2 s.Rn=s.hs s.Ro=s.pE s.Rp=s.eW s.Rq=s.cj s.Rr=s.pF s.Rs=s.ct s.Rt=s.ck s.Ru=s.ht s.Rv=s.bj s.Rw=s.lL s.Rx=s.h5 s.Ry=s.bu s.Rz=s.eK s.RA=s.d_ s.RB=s.b1 s.RC=s.af s=H.pw.prototype s.RI=s.j0 s=H.tg.prototype s.wT=s.bK s=H.cM.prototype s.Sr=s.vK s.Eq=s.bm s.wM=s.p6 s.Eu=s.b5 s.Et=s.kB s.Er=s.i1 s.Es=s.qv s=H.dv.prototype s.Sq=s.h4 s.kN=s.b5 s.rs=s.i1 s=H.vw.prototype s.RP=s.sa9a s.wG=s.nf s.RO=s.k0 s.RQ=s.ri s=J.i.prototype s.S7=s.j s.S6=s.vs s=J.P.prototype s.S9=s.j s=H.cU.prototype s.Sa=s.Nn s.Sb=s.No s.Sd=s.Nq s.Sc=s.Np s=P.lU.prototype s.Ts=s.md s=P.d_.prototype s.Tt=s.hc s.Tu=s.fD s=P.ks.prototype s.TA=s.mg s.TB=s.GM s.TD=s.Jc s.TC=s.iD s=P.J.prototype s.Em=s.b3 s=P.l.prototype s.S8=s.nT s=P.z.prototype s.wK=s.k s.bP=s.j s=W.aE.prototype s.wI=s.i0 s=W.ai.prototype s.RV=s.l9 s=W.Bt.prototype s.Up=s.jO s=P.jL.prototype s.Se=s.i s.Sf=s.n s=P.tE.prototype s.EI=s.n s=P.C.prototype s.RD=s.k s.RE=s.j s=L.cI.prototype s.RN=s.a9p s.wF=s.C7 s.RM=s.aT s=X.ca.prototype s.wD=s.vR s=S.kO.prototype s.E7=s.T s.E8=s.eI s=Z.xn.prototype s.Sp=s.b1 s=S.uA.prototype s.ro=s.p s=N.Cd.prototype s.UC=s.p s=N.Dq.prototype s.Ra=s.fo s.Rb=s.iS s.Rc=s.CK s=B.jv.prototype s.hb=s.p s.Ea=s.aa s=B.cZ.prototype s.aW=s.sm s=Y.aw.prototype s.RR=s.cp s=Y.iD.prototype s.RS=s.cp s=B.I.prototype s.wB=s.ag s.dw=s.ab s.wA=s.ff s.wC=s.fX s=N.w3.prototype s.S0=s.Bs s.S_=s.AN s=T.f4.prototype s.Sh=s.h1 s=S.cG.prototype s.oe=s.h1 s.Ek=s.p s=S.xf.prototype s.Ep=s.ak s.kM=s.p s.Sl=s.o9 s=S.qC.prototype s.Ss=s.jI s.Ev=s.ho s.St=s.hE s=N.uN.prototype s.R9=s.hE s=N.eK.prototype s.Tj=s.h1 s=R.Cj.prototype s.UI=s.aC s.UH=s.e0 s=L.Cb.prototype s.UB=s.p s=L.Ch.prototype s.UF=s.p s=L.Ck.prototype s.UK=s.p s.UJ=s.aG s=M.lf.prototype s.rr=s.p s=M.Bm.prototype s.Ud=s.p s.Uc=s.aG s=M.Bn.prototype s.Uf=s.p s.Ue=s.aG s=M.Bo.prototype s.Uh=s.bd s.Ug=s.aG s.Ui=s.p s=M.Cf.prototype s.UD=s.p s=N.Cl.prototype s.UL=s.p s=N.Cm.prototype s.UM=s.p s=Z.Cp.prototype s.UQ=s.bd s.UP=s.aG s.UR=s.p s=S.Cr.prototype s.UT=s.p s=K.uS.prototype s.Re=s.wz s.Rd=s.B s=Y.c5.prototype s.ma=s.dO s.mb=s.dP s=Z.f_.prototype s.Ed=s.dO s.Ee=s.dP s=Z.kS.prototype s.Rg=s.p s=V.dr.prototype s.Ef=s.B s=E.Lq.prototype s.EH=s.p s=L.nd.prototype s.S1=s.aQ s.S2=s.T s=G.iH.prototype s.S5=s.k s=M.JJ.prototype s.Tf=s.en s=N.xZ.prototype s.SL=s.Bj s.SM=s.Bl s.SK=s.AS s=S.aN.prototype s.Rf=s.k s=S.fj.prototype s.oc=s.j s=S.A.prototype s.wN=s.dA s.SA=s.qr s.ix=s.c3 s.Sz=s.di s=B.B7.prototype s.TO=s.ag s.TP=s.ab s=D.B8.prototype s.TQ=s.ag s.TR=s.ab s=F.qM.prototype s.SB=s.bM s=T.wv.prototype s.Sg=s.vU s=T.dP.prototype s.jl=s.eh s.RG=s.ag s.RH=s.ab s=T.jV.prototype s.Sk=s.eh s=K.iV.prototype s.wL=s.ab s=K.r.prototype s.ED=s.ff s.dU=s.ag s.SE=s.a1 s.SF=s.aw s.SC=s.di s.fC=s.eA s.wO=s.mU s.wP=s.f8 s.EE=s.mS s.SD=s.i5 s.SG=s.cp s.EF=s.eb s=K.aD.prototype s.wE=s.BA s.RL=s.u s.RJ=s.vo s.RK=s.io s.Ec=s.be s=K.xM.prototype s.EC=s.ok s=Q.Ba.prototype s.TS=s.ag s.TT=s.ab s=E.dT.prototype s.SI=s.cB s.of=s.bM s.rt=s.cR s.m9=s.aD s=E.Bc.prototype s.rv=s.ag s.mc=s.ab s=E.Bd.prototype s.EJ=s.dA s=T.Be.prototype s.TU=s.ag s.TV=s.ab s=G.ob.prototype s.Tc=s.j s=F.Bg.prototype s.TW=s.ag s.TX=s.ab s=T.xW.prototype s.SJ=s.bM s=Q.jf.prototype s.TY=s.ag s.TZ=s.ab s=N.fa.prototype s.Tr=s.qg s.Tq=s.dl s=N.i4.prototype s.T2=s.uZ s=M.rU.prototype s.Tl=s.p s=Q.De.prototype s.R7=s.lu s=N.yo.prototype s.Ta=s.q0 s.Tb=s.ke s=A.lp.prototype s.Si=s.l1 s=L.pf.prototype s.E9=s.H s=T.vS.prototype s.RW=s.aP s=N.C3.prototype s.Uq=s.fo s.Ur=s.CK s=N.C4.prototype s.Us=s.fo s.Ut=s.iS s=N.C5.prototype s.Uu=s.fo s.Uv=s.iS s=N.C6.prototype s.Ux=s.fo s.Uw=s.q0 s=N.C7.prototype s.Uy=s.fo s=N.C8.prototype s.Uz=s.fo s.UA=s.iS s=D.A2.prototype s.Tx=s.aC s=D.A3.prototype s.Tz=s.p s.Ty=s.aG s=U.FH.prototype s.m7=s.abk s.RX=s.Aa s=A.fo.prototype s.RY=s.ux s.RZ=s.aC s=N.a2.prototype s.b_=s.aC s.bG=s.bd s.oh=s.e0 s.bh=s.p s.cq=s.aG s=N.au.prototype s.RU=s.ds s.Ej=s.dQ s.rq=s.b5 s.RT=s.zD s.Ei=s.q3 s.iw=s.hx s.wH=s.jH s.Eg=s.e0 s.od=s.ja s.wJ=s.uv s.Eh=s.aG s=N.vi.prototype s.rp=s.dQ s.RF=s.y0 s.Eb=s.hD s=N.dV.prototype s.Ti=s.bm s=N.eH.prototype s.Th=s.bm s.Tg=s.jH s=N.k4.prototype s.Ew=s.bm s.Ex=s.b5 s.Su=s.qN s=N.co.prototype s.S4=s.qN s.El=s.qj s=N.a_.prototype s.m8=s.dQ s.jm=s.b5 s.wQ=s.hD s.SH=s.ja s=N.y4.prototype s.EG=s.dQ s=G.q_.prototype s.S3=s.aC s=G.tC.prototype s.TE=s.p s=K.c4.prototype s.T0=s.kh s.SY=s.pA s.ST=s.px s.SZ=s.AJ s.T1=s.h8 s.SW=s.lg s.SX=s.n0 s.SU=s.py s.SV=s.pz s.SS=s.pg s.SR=s.uf s.T_=s.p s=K.Pb.prototype s.U1=s.uj s=K.B1.prototype s.TH=s.p s.TG=s.aG s=K.B2.prototype s.TJ=s.bd s.TI=s.aG s.TK=s.p s=U.xd.prototype s.Eo=s.nS s.En=s.dl s=L.tS.prototype s.TL=s.dl s=L.Cg.prototype s.UE=s.p s=K.cW.prototype s.SO=s.p s=K.iZ.prototype s.SQ=s.AL s=U.qR.prototype s.SP=s.sm s=U.il.prototype s.U_=s.nb s.U0=s.nN s=U.nP.prototype s.SN=s.q4 s.wR=s.p s=T.qs.prototype s.So=s.kh s.Sm=s.lg s.Sn=s.p s=T.d4.prototype s.Tp=s.kh s.To=s.pA s.Tm=s.px s.Tn=s.lg s=T.dE.prototype s.Sj=s.pz s=T.tN.prototype s.TF=s.h8 s=M.IT.prototype s.ru=s.p s=G.fH.prototype s.og=s.dl s=G.u0.prototype s.Uj=s.dl s=L.IY.prototype s.T3=s.tX s=A.j_.prototype s.T4=s.p2 s.wS=s.QB s.T5=s.mR s.T6=s.p8 s.T7=s.fR s.T9=s.p s.T8=s.dl s=F.Bp.prototype s.Ul=s.p s.Uk=s.aG s=F.Bq.prototype s.Un=s.bd s.Um=s.aG s.Uo=s.p s=E.iY.prototype s.EB=s.aC s.Sv=s.aG s.Sy=s.v3 s.EA=s.v5 s.Ez=s.v4 s.Sw=s.Bg s.Sx=s.Bh s.Ey=s.p s=E.tW.prototype s.TN=s.p s.TM=s.aG s=E.Cn.prototype s.UN=s.ag s.UO=s.ab s=F.z3.prototype s.Tk=s.C9 s=F.Cq.prototype s.US=s.p s=G.Dp.prototype s.R8=s.aa4 s=Y.ig.prototype s.Tw=s.p s.Tv=s.H s=Y.rw.prototype s.Te=s.bR s.Td=s.k s=Y.Ci.prototype s.UG=s.p})();(function installTearOffs(){var s=hunkHelpers._static_1,r=hunkHelpers._static_0,q=hunkHelpers._instance_0u,p=hunkHelpers._instance_1u,o=hunkHelpers._instance_1i,n=hunkHelpers._instance_0i,m=hunkHelpers._instance_2u,l=hunkHelpers._static_2,k=hunkHelpers.installStaticTearOff,j=hunkHelpers.installInstanceTearOff,i=hunkHelpers._instance_2i s(H,"aDm","axA",473) r(H,"aDn","aB0",0) s(H,"aDp","aE3",15) s(H,"aDo","aE2",43) s(H,"agH","aDl",28) q(H.D3.prototype,"gzo","a67",0) q(H.Fp.prototype,"gR1","kK",81) p(H.Jk.prototype,"ga_n","a_o",257) var h p(h=H.F2.prototype,"ga30","I_",200) p(h,"ga2F","a2G",6) p(H.Ge.prototype,"ga3e","a3f",170) o(H.x0.prototype,"gOa","Ca",8) o(H.ys.prototype,"gOa","Ca",8) p(H.HK.prototype,"gyV","a3g",250) n(H.y8.prototype,"gdJ","p",0) p(h=H.vw.prototype,"gom","ES",6) p(h,"goN","a2Y",6) m(H.KG.prototype,"gael","aem",365) l(J,"ald","aza",94) o(H.kp.prototype,"gjY","C",26) r(H,"aDU","aA2",60) s(H,"aDV","aDZ",475) s(H,"aDW","aEn",45) o(H.cU.prototype,"gOF","u","2?(z?)") s(P,"aEC","aBN",93) s(P,"aED","aBO",93) s(P,"aEE","aBP",93) r(P,"arU","aEk",0) s(P,"aEF","aE5",28) l(P,"aEG","aE7",32) r(P,"ahr","aE6",0) k(P,"aEM",5,null,["$5"],["RT"],477,0) k(P,"aER",4,null,["$1$4","$4"],["ahg",function(a,b,c,d){return P.ahg(a,b,c,d,t.z)}],478,1) k(P,"aET",5,null,["$2$5","$5"],["ahi",function(a,b,c,d,e){return P.ahi(a,b,c,d,e,t.z,t.z)}],479,1) k(P,"aES",6,null,["$3$6","$6"],["ahh",function(a,b,c,d,e,f){return P.ahh(a,b,c,d,e,f,t.z,t.z,t.z)}],480,1) k(P,"aEP",4,null,["$1$4","$4"],["arJ",function(a,b,c,d){return P.arJ(a,b,c,d,t.z)}],481,0) k(P,"aEQ",4,null,["$2$4","$4"],["arK",function(a,b,c,d){return P.arK(a,b,c,d,t.z,t.z)}],482,0) k(P,"aEO",4,null,["$3$4","$4"],["arI",function(a,b,c,d){return P.arI(a,b,c,d,t.z,t.z,t.z)}],483,0) k(P,"aEK",5,null,["$5"],["aEd"],484,0) k(P,"aEU",4,null,["$4"],["ahj"],485,0) k(P,"aEJ",5,null,["$5"],["aEc"],486,0) k(P,"aEI",5,null,["$5"],["aEb"],487,0) k(P,"aEN",4,null,["$4"],["aEe"],488,0) s(P,"aEH","aEa",53) k(P,"aEL",5,null,["$5"],["arH"],489,0) q(h=P.ox.prototype,"gtp","jy",0) q(h,"gtq","jz",0) n(h=P.lU.prototype,"gpj","aT",40) o(h,"gx9","hc",8) m(h,"grA","fD",32) q(h,"gxl","jq",0) j(P.zL.prototype,"gLu",0,1,function(){return[null]},["$2","$1"],["le","hZ"],287,0) m(P.a1.prototype,"gxs","es",32) n(h=P.u4.prototype,"gpj","aT",40) o(h,"gx9","hc",8) m(h,"grA","fD",32) q(h,"gxl","jq",0) q(h=P.lW.prototype,"gtp","jy",0) q(h,"gtq","jz",0) j(h=P.d_.prototype,"gCg",1,0,null,["$1","$0"],["kv","j_"],160,0) n(h,"gvJ","kz",0) n(h,"gud","aH",40) q(h,"gtp","jy",0) q(h,"gtq","jz",0) j(h=P.th.prototype,"gCg",1,0,null,["$1","$0"],["kv","j_"],160,0) n(h,"gvJ","kz",0) n(h,"gud","aH",40) q(h,"ga4Z","hk",0) q(h=P.tt.prototype,"gtp","jy",0) q(h,"gtq","jz",0) p(h,"ga07","a08",8) m(h,"ga0q","a0r",282) q(h,"ga0c","a0d",0) l(P,"alt","aDg",73) s(P,"alu","aDh",74) l(P,"aEZ","azl",94) l(P,"aF_","aDk",94) o(P.tG.prototype,"gOF","u","2?(z?)") o(P.lY.prototype,"gjY","C",26) o(P.hs.prototype,"gjY","C",26) o(P.wl.prototype,"gjY","C",26) o(P.fg.prototype,"gjY","C",26) o(P.ry.prototype,"gjY","C",26) s(P,"aF7","aDi",41) o(h=P.Lo.prototype,"ga6V","B",8) n(h,"gpj","aT",0) s(P,"arZ","aFx",74) l(P,"arY","aFw",73) l(P,"arX","ay7",490) s(P,"aF8","aBB",45) o(P.l.prototype,"gjY","C",26) k(W,"aFu",4,null,["$4"],["aC6"],105,0) k(W,"aFv",4,null,["$4"],["aC7"],105,0) i(W.iG.prototype,"gQD","QE",71) n(h=W.tp.prototype,"gud","aH",40) j(h,"gCg",1,0,null,["$1","$0"],["kv","j_"],260,0) n(h,"gvJ","kz",0) p(W.Es.prototype,"gaeu","aev",8) s(P,"aFM","RM",492) s(P,"aFL","al2",493) k(P,"aFT",2,null,["$1$2","$2"],["asp",function(a,b){return P.asp(a,b,t.Jy)}],494,1) k(P,"asI",3,null,["$3"],["aAV"],495,0) k(P,"asJ",3,null,["$3"],["aa"],496,0) k(P,"en",3,null,["$3"],["K"],497,0) p(P.BD.prototype,"gabl","bF",15) i(Y.bJ.prototype,"gacv","C7",234) m(h=U.EM.prototype,"ga9F","eC",73) o(h,"gaaW","dL",74) p(h,"gabD","abE",26) l(Y,"aFf","al0",498) p(L.FD.prototype,"gPx","Py",225) j(h=G.pa.prototype,"gadV",1,0,function(){return{from:null}},["$1$from","$0"],["OX","cT"],207,0) p(h,"gF6","XM",2) p(S.i1.prototype,"gmG","tJ",9) p(S.vs.prototype,"ga6n","Ka",9) p(h=S.or.prototype,"gmG","tJ",9) q(h,"gzG","a6F",0) p(h=S.ps.prototype,"gHX","a2X",9) q(h,"gHW","a2W",0) q(S.mp.prototype,"gcL","aa",0) p(S.kN.prototype,"gO4","qk",9) p(h=D.td.prototype,"ga4D","a4E",33) p(h,"ga4F","a4G",11) p(h,"ga4B","a4C",36) q(h,"ga0e","a0f",0) p(h,"ga4H","a4I",77) q(E.zU.prototype,"gN3","v3",0) p(h=N.zV.prototype,"ga5K","a5L",23) q(h,"gJH","a5H",0) p(h,"ga5M","a5N",79) q(h,"ga5I","a5J",0) p(h,"ga5D","a5E",33) p(h,"ga5F","a5G",11) p(h,"ga5B","a5C",36) s(U,"aEz","ayJ",499) k(U,"aEA",1,null,["$2$forceReport","$1"],["ao6",function(a){return U.ao6(a,!1)}],500,0) n(h=B.jv.prototype,"gdJ","p",0) q(h,"gcL","aa",0) p(B.I.prototype,"gCr","qE",165) s(R,"aG3","aB8",501) p(h=N.w3.prototype,"ga1l","a1m",168) p(h,"ga7H","a7I",104) q(h,"ga_8","y4",0) p(h,"ga1q","Hl",19) q(h,"ga1z","a1A",0) k(K,"aJv",3,null,["$3"],["ao9"],502,0) p(K.hM.prototype,"gpZ","kd",19) s(O,"alC","ayq",112) p(O.vE.prototype,"gpZ","kd",19) q(F.LL.prototype,"ga3j","a3k",0) p(h=F.hJ.prototype,"gt9","a0s",19) p(h,"ga47","oV",171) q(h,"ga31","mw",0) p(S.qC.prototype,"gpZ","kd",19) m(h=S.AK.prototype,"ga2v","a2w",175) m(h,"ga2R","a2S",157) q(h=E.zy.prototype,"ga0m","a0n",0) q(h,"ga0o","a0p",0) p(h=Z.B6.prototype,"ga0F","Hg",7) p(h,"ga0I","a0J",7) p(h,"ga0D","a0E",7) p(h=K.tm.prototype,"ga0v","a0w",7) q(h,"ga1h","a1i",0) q(h=K.tj.prototype,"gGl","Zn",0) p(h,"gGm","Zo",102) q(h,"gZp","xO",0) p(Y.lg.prototype,"ga_O","a_P",9) p(U.wf.prototype,"ga2p","a2q",9) p(h=R.q2.prototype,"gQ_","Q0",189) p(h,"ga8N","a8O",190) j(h=R.As.prototype,"gJp",0,0,function(){return[null]},["$1","$0"],["Jq","a5h"],149,0) p(h,"gHy","a2r",102) p(h,"ga0B","a0C",7) p(h,"ga21","a22",23) q(h,"ga2s","Hz",0) q(h,"ga2_","a20",0) p(h,"ga0Z","a1_",59) p(h,"ga10","a11",37) q(L.Ak.prototype,"gyB","yC",0) m(L.tZ.prototype,"ga3u","a3v",12) q(L.Aw.prototype,"gyB","yC",0) p(h=M.Aa.prototype,"ga1v","a1w",9) q(h,"ga3h","a3i",0) q(M.qV.prototype,"ga1S","a1T",0) p(h=N.AO.prototype,"ga5Q","a5R",33) p(h,"ga5S","a5T",11) p(h,"ga5O","a5P",36) p(h,"ga02","a03",210) q(N.BF.prototype,"ga0a","a0b",0) n(U.yR.prototype,"gdJ","p",0) q(E.Ao.prototype,"gdd","aw",0) q(h=E.BI.prototype,"gyq","a1W",0) q(h,"gyr","a1X",0) j(h,"ga4P",0,3,null,["$3"],["a4Q"],213,0) p(h=Z.Qg.prototype,"gacy","C9",54) p(h,"gacw","acx",54) p(h,"gacJ","acK",97) p(h,"gacP","acQ",79) p(h,"gacL","acM",96) m(h=Z.BJ.prototype,"ga5X","a5Y",218) q(h,"ga1E","a1F",0) q(E.u7.prototype,"gt8","a06",0) p(h=F.zd.prototype,"ga69","a6a",23) j(h,"gJY",0,0,null,["$1","$0"],["JZ","a68"],149,0) j(h,"ga23",0,0,null,["$1","$0"],["Hn","a24"],224,0) p(h,"ga0y","a0z",7) p(h,"ga0G","a0H",7) n(F.zc.prototype,"gdJ","p",0) q(h=S.BT.prototype,"gHj","a12",0) p(h,"ga6b","a6c",9) q(h,"ga9B","Mo",39) p(h,"gHk","a1p",19) q(h,"ga0R","a0S",0) j(N.Ho.prototype,"gabi",0,1,null,["$4$allowUpscaling$cacheHeight$cacheWidth","$1"],["Nl","abj"],226,0) m(X.EI.prototype,"ga0K","a0L",135) k(V,"aFd",3,null,["$3"],["hL"],503,0) s(L,"aFy","axx",504) o(L.nd.prototype,"gKT","aQ",131) p(h=L.GK.prototype,"ga04","a05",238) p(h,"ga_T","a_U",2) o(h,"gKT","aQ",131) k(A,"aGd",3,null,["$3"],["bu"],505,0) q(h=N.xZ.prototype,"ga1I","a1J",0) p(h,"ga2c","a2d",2) j(h,"ga1G",0,3,null,["$3"],["a1H"],240,0) q(h,"ga1K","a1L",0) q(h,"ga1M","a1N",0) p(h,"ga1j","a1k",2) q(S.A.prototype,"gvm","a1",0) m(S.cO.prototype,"ga8W","ps",12) p(h=D.nO.prototype,"ga39","a3a",129) p(h,"gxP","Zq",247) q(h,"gdd","aw",0) q(h,"goj","ok",0) q(h,"gtF","a5c",0) p(h,"ga1Q","a1R",53) p(h,"ga1O","a1P",128) p(h,"ga17","a18",7) p(h,"ga13","a14",7) p(h,"ga19","a1a",7) p(h,"ga15","a16",7) p(h,"gZv","Zw",23) q(h,"gZt","Zu",0) q(h,"gZr","Zs",0) m(h,"gZx","Gn",12) s(K,"asr","aAw",58) p(h=K.r.prototype,"ga9n","fX",8) q(h,"gdd","aw",0) m(h,"gfq","aD",12) q(h,"gNN","ao",0) j(h,"go5",0,0,null,["$4$curve$descendant$duration$rect","$0","$1$rect","$3$curve$duration$rect"],["eb","o6","m5","m6"],68,0) p(K.aD.prototype,"ga7N","a7O","aD.0?(z?)") q(Q.xU.prototype,"goj","ok",0) m(E.dT.prototype,"gfq","aD",12) q(E.xO.prototype,"gtN","zz",0) q(E.tY.prototype,"gtj","tk",0) q(h=E.k7.prototype,"ga3P","a3Q",0) q(h,"ga3R","a3S",0) q(h,"ga3T","a3U",0) q(h,"ga3N","a3O",0) q(h=E.xV.prototype,"ga3V","a3W",0) q(h,"ga3J","a3K",0) q(h,"ga3H","a3I",0) q(h,"ga3B","a3C",0) q(h,"ga3D","a3E",0) q(h,"ga3L","a3M",0) q(h,"ga3F","a3G",0) j(G.dj.prototype,"gab1",0,1,null,["$3$crossAxisPosition$mainAxisPosition","$1"],["Bt","ne"],261,0) m(K.qO.prototype,"gvw","lC",12) m(K.xT.prototype,"gvw","lC",12) p(A.xY.prototype,"gab3","ab4",265) m(h=Q.qP.prototype,"ga3t","Ia",12) j(h,"go5",0,0,null,["$4$curve$descendant$duration$rect","$0","$1$rect","$3$curve$duration$rect"],["eb","o6","m5","m6"],68,0) l(N,"aEW","aAG",506) k(N,"aEX",0,null,["$2$priority$scheduler","$0"],["as5",function(){return N.as5(null,null)}],507,0) p(h=N.i4.prototype,"gZK","ZL",116) q(h,"ga4L","a4M",0) q(h,"ga9D","AV",0) p(h,"ga_W","a_X",2) q(h,"ga0k","a0l",0) p(M.rU.prototype,"gzn","a64",2) n(A.r1.prototype,"gdJ","p",0) s(Q,"aEB","axw",508) s(N,"aEV","aAM",509) q(h=N.yo.prototype,"gXC","kP",275) p(h,"ga0P","yo",276) j(N.M4.prototype,"gN_",0,3,null,["$3"],["lp"],90,0) p(B.HW.prototype,"ga0O","yn",280) p(K.y2.prototype,"ga2Z","yP",281) p(h=K.cP.prototype,"gZl","Zm",106) p(h,"gIz","IA",106) p(N.K5.prototype,"ga27","ys",152) p(U.zv.prototype,"gH9","a_N",292) p(h=U.Ad.prototype,"gHf","a0A",102) p(h,"gXp","Xq",59) p(h,"gXr","Xs",37) p(h,"gXn","Xo",7) p(h=S.C2.prototype,"ga3c","a3d",294) p(h,"ga3l","a3m",295) p(L.zA.prototype,"gXx","Xy",296) p(T.AT.prototype,"gaay","aaz",37) q(h=N.KH.prototype,"gaaD","aaE",0) p(h,"ga1b","a1c",152) q(h,"ga_Y","a_Z",0) q(h=N.C9.prototype,"gaaI","Bj",0) q(h,"gaaL","Bl",0) q(h=D.pI.prototype,"gI6","I7",0) p(h,"ga0_","a00",129) q(h,"gI5","a3b",0) p(h,"gG4","Z_",76) p(h,"gZ0","Z1",76) q(h,"gxL","Zc",0) q(h,"gxQ","Zy",0) n(O.db.prototype,"gdJ","p",0) n(h=O.vZ.prototype,"gdJ","p",0) p(h,"gGF","a_a",19) p(h,"gHm","a1y",303) q(h,"gXQ","XR",0) q(L.tq.prototype,"gym","a0x",0) s(N,"ahL","aC8",13) l(N,"ahK","ayx",510) s(N,"asc","ayw",13) p(N.Nc.prototype,"ga6h","K3",13) p(h=D.qH.prototype,"ga_k","a_l",77) p(h,"ga6v","a6w",330) p(h=T.ku.prototype,"gY3","Y4",30) p(h,"ga_S","Ha",9) q(h,"gOd","acU",0) p(h=T.w8.prototype,"ga0t","a0u",333) j(h,"gZ4",0,5,null,["$5"],["Z5"],334,0) m(U.An.prototype,"ga0M","a0N",135) q(G.p9.prototype,"ga_Q","a_R",0) q(S.tD.prototype,"gtc","a2b",0) p(A.tF.prototype,"gHI","a2I",8) l(K,"aFU","azE",511) s(K,"alD","aCm",61) s(K,"asq","aCn",61) s(K,"aic","aCo",61) p(K.tP.prototype,"gqi","lz",62) p(K.AZ.prototype,"gqi","lz",62) p(K.B_.prototype,"gqi","lz",62) p(K.B0.prototype,"gqi","lz",62) p(h=K.iO.prototype,"ga1n","a1o",77) p(h,"ga1t","a1u",19) p(U.xd.prototype,"gCS","nS",25) m(X.u_.prototype,"gvw","lC",12) p(L.Ai.prototype,"ga3o","a3p",84) n(h=L.Ah.prototype,"gdJ","p",0) p(h,"gYh","Yi",9) p(h,"ga65","a66",2) p(L.tS.prototype,"gCS","nS",25) q(K.Bi.prototype,"gz1","a4q",0) n(K.cW.prototype,"gdJ","p",0) p(K.iZ.prototype,"ga6s","zA",353) n(U.nP.prototype,"gdJ","p",0) n(U.qQ.prototype,"gdJ","p",0) p(T.d4.prototype,"ga1U","a1V",9) p(h=T.dE.prototype,"gY_","Y0",30) p(h,"gY1","Y2",30) q(h=M.Dn.prototype,"gz7","z8",0) q(h,"gz5","z6",0) q(h=M.F6.prototype,"gz7","z8",0) q(h,"gz5","z6",0) n(F.qX.prototype,"gdJ","p",0) s(G,"aij","aFb",84) p(G.u0.prototype,"gCS","nS",25) n(A.j_.prototype,"gdJ","p",0) n(R.qY.prototype,"gdJ","p",0) p(h=F.yj.prototype,"gHd","a0g",361) p(h,"gJ8","a4U",33) p(h,"gJ9","a4V",11) p(h,"gJ7","a4T",36) q(h,"gJ5","J6",0) q(h,"gZh","Zi",0) q(h,"gZf","Zg",0) p(h,"ga43","a44",362) p(h,"ga1r","a1s",19) n(E.r_.prototype,"gdJ","p",0) q(h=E.iY.prototype,"gN3","v3",0) p(h,"ga29","a2a",23) p(h,"ga1B","a1C",84) m(X.Bs.prototype,"ga1f","a1g",369) q(h=E.Bf.prototype,"gte","a2f",0) j(h,"go5",0,0,null,["$4$curve$descendant$duration$rect","$0","$1$rect","$3$curve$duration$rect"],["eb","o6","m5","m6"],68,0) l(G,"aJI","art",512) p(G.rt.prototype,"gadC","OI",371) j(F.K8.prototype,"gJR",0,0,function(){return[null]},["$1","$0"],["JS","tM"],382,0) q(h=F.BN.prototype,"gyu","yv",0) p(h,"gyi","yj",33) p(h,"gyk","yl",11) q(h,"ga1Y","a1Z",0) p(h=F.z3.prototype,"gacS","acT",23) q(h,"gacN","acO",0) p(h,"gacH","acI",83) q(h,"gacD","acE",0) p(h,"gacF","acG",23) p(h,"gacn","aco",23) p(h,"gacr","acs",33) m(h,"gact","acu",383) p(h,"gacp","acq",36) p(h=F.BL.prototype,"ga60","a61",23) p(h,"ga25","a26",79) q(h,"ga5Z","a6_",0) p(h,"gyi","yj",33) p(h,"gyk","yl",11) q(h,"ga0j","He",0) p(h,"ga0h","a0i",36) p(h,"ga_e","a_f",54) p(h,"ga_c","a_d",54) p(h,"ga0X","a0Y",96) p(h,"ga0V","a0W",97) p(h,"ga0T","a0U",83) q(h,"gZj","Zk",0) q(K.zw.prototype,"gyh","a01",0) s(N,"aGm","asH",513) l(R,"aEY","axB",514) j(h=D.I0.prototype,"gN_",0,3,null,["$3"],["lp"],90,0) j(h,"gaaA",0,3,null,["$3"],["q_"],90,0) p(B.FF.prototype,"gaaG","Bi",389) s(T,"aFF","az6",3) s(T,"aFG","azH",515) q(Y.Al.prototype,"ga1d","a1e",0) k(D,"alH",1,null,["$2$wrapWidth","$1"],["as4",function(a){return D.as4(a,null)}],516,0) r(D,"aFZ","ard",0) l(N,"ai3","axT",143) l(N,"ai4","axU",143)})();(function inheritance(){var s=hunkHelpers.mixin,r=hunkHelpers.inheritMany,q=hunkHelpers.inherit r(null,[P.z,H.zJ,U.vx]) r(P.z,[H.e9,H.oI,H.D3,H.SP,H.pd,H.Wo,H.jt,H.iQ,H.Pk,H.UO,H.hC,H.Ua,H.ct,J.i,H.a1D,H.Jm,H.TQ,H.dG,H.YQ,H.a0I,H.nw,H.hZ,P.l,H.Xq,H.nB,H.h0,H.adD,H.oJ,H.Fp,H.a0s,H.Jk,H.tX,H.FY,H.l_,H.D6,H.G6,H.iJ,H.ex,H.a1w,H.a0S,H.Gg,H.a_a,H.a_b,H.XC,H.Uu,H.U5,H.E3,H.a1J,H.Jl,H.yN,H.rC,H.Ea,H.E2,H.vc,H.U6,H.m4,H.tT,P.bC,H.El,H.Ek,H.Uk,H.Fk,H.WK,H.F2,H.Pj,H.oK,H.Pi,H.a3M,H.fp,H.Eu,H.tb,H.a6B,H.tg,H.cM,H.aR,H.aT,H.h1,H.ade,H.a9w,H.LA,H.a9z,H.oe,H.aex,H.qx,H.nF,H.kw,H.a11,H.a10,H.m3,H.a22,H.cL,H.ad0,H.a37,H.afX,H.N3,H.N2,H.akL,H.rD,H.a6C,H.a0q,H.vL,H.J7,H.yp,H.nX,H.nG,H.m6,H.FU,H.yt,H.wa,H.ZO,H.Ge,H.jD,H.ZW,H.a_U,H.Tv,H.a7J,H.a1i,H.Fc,H.Fb,P.a1g,H.HK,H.a1s,H.a8Q,H.QY,H.kx,H.oy,H.tV,H.a1m,H.akg,H.ajH,H.Sx,H.zI,H.fF,H.a4E,H.J5,H.i2,H.cB,H.SA,H.n4,H.WC,H.vK,H.a4r,H.a4n,H.vw,P.AG,H.hX,H.G9,H.Ga,H.JL,H.a6j,H.a80,H.HY,H.a6G,H.DF,H.Fx,H.rB,H.TT,H.Xo,H.FJ,H.a78,H.xH,H.Gn,H.a_d,H.a66,H.bl,H.qa,H.dc,H.y8,H.a79,H.a_e,H.a_z,H.a7a,H.mQ,H.mM,H.vM,H.mR,H.Fe,H.VC,H.jZ,H.rO,H.rM,H.K4,H.iU,H.wT,H.zK,H.zl,H.Kp,H.cR,H.MM,H.Tp,H.Wq,H.rL,H.yX,H.Wk,H.Di,H.pJ,H.Zq,H.a6Y,H.YS,H.Wc,H.VY,H.zj,H.bt,H.a7O,H.KG,P.Xg,H.KJ,H.ajN,J.dA,H.DI,P.aC,H.bj,P.G7,H.iE,H.F8,H.FI,H.t1,H.vR,H.Kt,H.of,P.qg,H.pv,H.ZB,H.a7w,H.GW,H.vQ,H.BB,H.adB,H.a_g,H.Go,H.q6,H.tK,H.KU,H.ke,H.aeB,H.i3,H.MZ,H.BU,P.BR,P.L8,P.La,P.m_,P.d8,P.mu,P.bg,P.d_,P.lU,P.zL,P.jd,P.a1,P.L9,P.eg,P.JO,P.u4,P.Q4,P.Lb,P.t2,P.Od,P.M7,P.aa2,P.th,P.PS,P.dH,P.adR,P.adS,P.adQ,P.adp,P.adq,P.ado,P.oQ,P.ub,P.oP,P.N5,P.Co,P.hr,P.abr,P.fd,P.wl,P.tH,P.nm,P.J,P.Ny,P.BY,P.ih,P.Mk,P.Nt,P.cQ,P.QU,P.PM,P.PL,P.u3,P.Eo,P.a8P,P.DL,P.abk,P.afV,P.afU,P.bi,P.er,P.aK,P.H4,P.yH,P.Mt,P.h6,P.Fm,P.bm,P.a6,P.Je,P.PX,P.JN,P.a3K,P.c6,P.C_,P.a7D,P.ht,P.nW,W.UT,W.ajk,W.tA,W.az,W.xb,W.Bt,W.Q0,W.pP,W.Es,W.a9Q,W.adT,W.QW,P.aeD,P.a8d,P.jL,P.GU,P.fC,P.F9,P.Ed,P.Ht,P.BD,P.oz,P.U2,P.H_,P.x,P.c2,P.hc,P.aaO,P.ws,P.iL,P.C,P.yK,P.yL,P.Hp,P.c_,P.po,P.Ti,P.qi,P.pO,P.Z1,P.J8,P.HI,P.KC,P.jH,P.pb,P.jS,P.k_,P.lt,P.xy,P.qz,P.qA,P.cv,P.cp,P.a4F,P.ls,P.h5,P.kg,P.yV,P.yY,P.oi,P.oj,P.f8,P.yU,P.aV,P.eM,P.iT,P.Dx,P.Tn,P.rV,P.D1,P.DA,P.TI,P.a1j,F.Tb,X.ju,T.JQ,A.iy,A.SY,M.bf,U.EO,U.wk,U.qc,U.u9,U.tJ,U.wK,U.EM,Y.FR,B.EY,G.Ya,B.Ff,R.Y5,R.Y4,R.D9,R.eO,R.y6,R.IH,R.II,L.FD,Y.IK,Y.SJ,Y.IJ,Y.qU,Y.a3q,X.ep,B.aq,G.L3,G.D7,T.a4P,S.kO,S.QB,Z.xn,S.uB,S.uA,S.mp,S.kN,R.aJ,F.a7b,T.N9,K.EB,L.ey,L.EN,D.vp,K.c4,Y.M9,N.PQ,D.zS,Z.M3,Z.kS,B.I,R.LT,R.Qm,K.xa,K.LW,K.LU,A.V2,Y.cz,U.MQ,N.Dq,B.jv,Y.pC,Y.jz,Y.acX,Y.aw,Y.iD,D.ds,D.akP,F.f3,T.dW,G.a7Z,G.xK,R.i7,O.cX,D.FN,D.cT,D.FL,D.tw,D.XO,N.adC,N.w3,O.jB,O.h3,O.h4,O.hK,F.Os,F.fR,F.KP,F.LB,F.LI,F.LG,F.LE,F.LF,F.LD,F.LH,F.LK,F.LJ,F.LC,K.oC,K.n2,O.iF,O.u8,O.hN,T.qf,T.wF,T.qe,B.kB,B.akK,B.a1t,B.Gk,O.A_,F.LL,F.u6,O.a1o,G.a1r,S.F5,S.w4,S.hb,N.rH,N.lM,R.j7,R.t_,R.B5,R.j8,S.a7i,K.IU,T.a4Q,V.L5,D.t9,D.jb,Q.Nz,D.Lh,M.Li,X.Lj,M.Ll,A.Lm,A.AC,A.Ns,A.Nr,M.v_,M.TA,M.Ln,A.Lt,F.Lv,F.AA,K.Lx,A.Ly,Z.LZ,Z.AB,Y.Ma,G.Md,K.hq,K.acF,T.Mr,E.a9U,A.X3,A.WN,A.WM,A.X2,S.MO,M.lf,R.Zu,R.tz,Y.c5,L.vV,L.fc,L.M1,L.ads,L.wg,L.Nf,M.lm,U.EP,V.de,A.NL,V.fe,E.NZ,U.Oa,V.wR,K.jY,K.Oc,R.OG,T.OK,T.Az,M.fS,M.a3O,M.IP,K.UM,B.a01,X.Pq,X.AD,Q.PC,N.yB,K.PH,N.Q2,R.Q1,R.Ay,U.Q9,T.Qf,F.z3,R.Qk,R.Qn,X.GB,X.Qr,X.tB,X.MJ,X.QX,A.Qs,S.Qt,F.zd,T.Qv,U.yb,U.QP,K.D4,K.K3,G.qK,G.Dj,G.KA,G.pg,N.Ho,K.uS,Y.Du,Y.dL,F.Dz,U.js,U.Fv,Z.Ud,X.pX,X.EH,X.EI,V.dr,E.Z2,E.Lq,E.Oe,M.nb,M.hR,M.iw,L.Na,L.hQ,L.h7,L.Nb,L.pZ,G.D2,G.jJ,D.a4K,M.PZ,U.qy,U.Kb,U.a9g,U.K6,A.Ql,M.a6d,M.yE,M.a9y,M.acZ,M.afo,N.Kf,N.xZ,K.iV,S.cO,T.V7,D.rS,F.Fz,F.Gu,F.ll,F.mF,F.abp,T.uF,T.D8,T.ww,A.NM,A.Rg,K.a4q,K.HG,K.aG,K.eZ,K.aD,K.xM,K.ae_,K.ae0,Q.rR,E.dT,E.w9,E.xO,E.EJ,G.FQ,G.PD,G.a2X,F.jM,F.a32,K.a26,K.yG,K.a0H,S.rG,S.og,N.JY,A.a7Q,Q.TF,Q.nQ,N.yf,N.jh,N.tu,N.nS,N.i4,V.HR,M.rU,M.oo,M.z8,N.a4f,A.ym,A.Pr,A.kn,A.kz,A.r0,A.V8,A.Pu,E.a4o,Q.De,F.SX,Q.T6,N.yo,T.pp,G.Nn,F.hW,F.xx,F.wX,U.a6y,U.ZC,U.ZD,U.a6g,U.a6k,A.a_V,A.x_,A.kQ,A.lp,B.nk,B.fx,B.a1K,B.OL,B.HW,B.cD,K.cP,X.SK,X.lK,V.JV,B.GC,B.ol,N.Jw,N.Jx,N.z0,N.eL,N.a6X,N.a74,N.vU,N.bb,N.j2,N.a7c,N.a75,N.K5,U.Nj,U.KR,U.KQ,U.xd,L.pf,N.fb,N.KH,K.F0,D.Kg,O.li,O.Xh,O.Ko,O.MU,O.l9,O.vY,O.MS,U.tr,U.lQ,U.MY,U.tf,U.Mb,U.Vl,U.Rm,U.Rl,A.uM,N.aey,N.to,N.Nc,N.Tx,N.l5,N.q1,D.n5,D.a4p,T.pU,T.aaR,T.ku,K.lr,X.ch,M.DH,A.fE,L.tU,L.ET,F.H3,F.nu,F.GR,E.BS,K.qT,K.dU,K.a3p,K.Kk,K.ek,K.m1,K.Bj,K.Pb,L.tx,S.BC,S.qv,K.iZ,Z.a3o,T.Gs,M.IT,M.a42,K.R2,M.IX,M.MN,G.KD,L.IY,A.yg,Y.acT,B.J_,F.a46,F.IW,X.nj,G.a5Y,S.i8,S.eT,S.Rv,F.z4,F.Qj,F.K8,U.lG,U.dY,N.QZ,N.a7V,N.aah,N.Zs,X.Ta,R.pi,E.Kd,E.Ke,B.FF,E.T1,G.Dp,T.T4,E.ve,R.wU,T.a0x,T.acY,T.PU,B.qq,D.yr,M.UN,O.a6A,X.a0Z,X.Hs,Y.oA,Y.M8,Y.ig,Y.xB,V.r4,E.a4M,Y.a64,D.JD,Y.rw,U.Ym,U.ej,U.ij,V.i6,G.JF,X.a6z,E.b8,E.hm,E.ic,A.ms,N.mz,G.l1,U.nz,Y.lS,S.Da,T.us,T.dO,T.dN,T.eP,T.dZ,T.dS,T.eG,T.pt,O.f5,N.Kv,T.a3A,S.cw,B.jg]) r(H.e9,[H.ahZ,H.ai_,H.ahY,H.age,H.agf,H.SQ,H.SR,H.a1E,H.a1F,H.Xr,H.Xs,H.ahF,H.ah1,H.ah6,H.ahH,H.ahI,H.WO,H.a0u,H.a0t,H.a0w,H.a0v,H.a5V,H.a5W,H.a5U,H.U4,H.ahW,H.ahV,H.ahX,H.ahT,H.ahU,H.Zy,H.Zz,H.Zx,H.Zw,H.XD,H.XE,H.a6I,H.a6H,H.Ub,H.U9,H.U7,H.U8,H.agL,H.Un,H.Uo,H.Ul,H.Um,H.VE,H.VF,H.VG,H.VH,H.VI,H.VK,H.VL,H.a16,H.a6E,H.a6F,H.ahs,H.a15,H.YO,H.YP,H.YL,H.YK,H.YM,H.YN,H.ZP,H.ZQ,H.ZR,H.a_6,H.a_7,H.agQ,H.agR,H.agS,H.agT,H.agU,H.agV,H.agW,H.agX,H.ZS,H.ZT,H.ZU,H.ZV,H.ZX,H.ZY,H.ZZ,H.a__,H.a_1,H.a_2,H.a_3,H.a_4,H.a_0,H.a02,H.a4S,H.a4T,H.Yf,H.Yd,H.Yc,H.Ye,H.WB,H.Ww,H.Wx,H.Wy,H.Wz,H.WA,H.Wt,H.Wu,H.Wv,H.ai1,H.a8R,H.afY,H.ad4,H.ad3,H.ad5,H.ad6,H.ad7,H.ad8,H.ad9,H.afj,H.afk,H.afl,H.afm,H.afn,H.acO,H.acP,H.acQ,H.acR,H.acS,H.a1n,H.Sy,H.Sz,H.Zj,H.Zk,H.a4b,H.a4c,H.a4d,H.ah7,H.ah8,H.ah9,H.aha,H.ahb,H.ahc,H.ahd,H.ahe,H.a4x,H.a4w,H.WD,H.WF,H.WE,H.Vi,H.Vh,H.a_P,H.a_O,H.a6W,H.a7_,H.a70,H.a71,H.a6i,H.TV,H.TU,H.Xt,H.Xu,H.adb,H.ada,H.adc,H.add,H.a3I,H.a3H,H.a3J,H.VD,H.Wn,H.Wm,H.Wl,H.Vc,H.Vd,H.Ve,H.Vf,H.YY,H.YZ,H.YW,H.YX,H.SH,H.WZ,H.X_,H.WY,H.a6Z,H.YU,H.YT,H.ail,H.aik,H.a7S,H.Wp,H.a9h,H.U0,H.U_,H.TZ,H.aid,H.UK,H.UL,H.G5,H.a1A,H.a1z,H.K1,H.ZI,H.ZH,H.ZG,H.ahQ,H.ahR,H.ahS,P.a8A,P.a8z,P.a8B,P.a8C,P.afa,P.af9,P.agj,P.agk,P.ahm,P.agh,P.agi,P.a8E,P.a8F,P.a8H,P.a8I,P.a8G,P.a8D,P.aeG,P.aeI,P.aeH,P.XH,P.XG,P.XJ,P.XL,P.XI,P.XK,P.XN,P.XM,P.aaz,P.aaH,P.aaD,P.aaE,P.aaF,P.aaB,P.aaG,P.aaA,P.aaK,P.aaL,P.aaJ,P.aaI,P.a6n,P.a6p,P.a6o,P.a6u,P.a6v,P.a6s,P.a6t,P.a6w,P.a6x,P.a6q,P.a6r,P.aeA,P.aez,P.a8h,P.a8g,P.a8X,P.a8W,P.ad1,P.agn,P.agm,P.ago,P.a9N,P.a9P,P.a9M,P.a9O,P.ahf,P.adI,P.adH,P.adJ,P.aii,P.aih,P.aaP,P.a9L,P.abq,P.Y9,P.a_i,P.a_p,P.a_q,P.a69,P.a6c,P.a6b,P.abi,P.a7M,P.a7L,P.abl,P.a0n,P.VV,P.VW,P.a7E,P.a7F,P.a7G,P.afS,P.afR,P.agz,P.agA,P.agB,W.Wd,W.WG,W.WH,W.YR,W.a_J,W.a_K,W.a_L,W.a_M,W.a3E,W.a3F,W.a6l,W.a6m,W.aak,W.aal,W.a0p,W.a0o,W.aet,W.aeu,W.aeT,W.afW,P.aeE,P.aeF,P.a8e,P.agu,P.ahu,P.WS,P.WT,P.WU,P.ZJ,P.agx,P.agy,P.aho,P.ahp,P.ahq,P.aif,P.aig,P.U3,P.ais,P.SU,P.SV,Y.Tg,Y.Tf,Y.Th,M.TJ,M.TK,M.TL,M.TM,M.TN,M.TO,M.TP,Y.agr,Y.aib,L.Xa,L.X5,L.X6,L.X7,L.X9,L.X8,L.X4,Y.a3r,E.UX,D.UZ,D.V_,D.a9B,D.a9A,D.a9C,D.a9F,D.a9G,E.a9I,E.a9H,N.a9J,N.adr,K.V1,K.a0m,K.a9K,U.ahk,U.agl,U.Xc,U.Xd,U.Xe,U.Xf,U.ahw,N.T7,B.U1,R.a6e,O.a6J,D.aaM,D.XQ,D.XP,N.XR,N.XS,K.Xx,K.Xv,K.Xw,T.a_n,T.a_m,T.a_l,O.VO,O.VS,O.VT,O.VP,O.VQ,O.VR,O.a1q,O.a1p,S.a1y,N.a6R,N.a6S,N.a6T,N.a6U,S.a_s,S.acc,D.a_t,D.ah3,D.ah2,D.a_u,R.SZ,R.Uq,Z.adg,Z.adh,Z.adf,Z.adx,K.aac,K.aae,K.aaf,K.aag,K.aad,K.aaa,K.aab,K.aa4,K.aa5,K.aa8,K.aa6,K.aa7,K.aa9,U.agK,R.abb,R.abc,R.ab9,R.aba,L.aaQ,L.adw,L.adv,L.adu,L.adt,L.abe,M.acw,M.acd,M.ace,M.acf,K.a0R,M.a3N,M.adW,M.adV,M.aam,M.a3R,M.a3P,M.a3Q,M.adX,E.aci,E.ack,E.acm,E.ach,E.acj,E.acl,E.acn,E.acp,E.aco,E.acg,E.acv,E.acu,E.act,E.acr,E.acs,E.acq,N.acA,N.acx,N.acB,N.acy,N.acz,N.acC,U.a6N,E.aeL,E.aeJ,E.aeK,Z.aeV,Z.aeU,Z.aeX,Z.aeY,Z.aeZ,Z.af_,Z.af0,Z.aeW,Z.agd,E.a72,E.a73,K.a8t,X.a7h,F.a7o,F.a7p,F.a7m,F.a7n,S.aff,S.afe,S.afg,S.afh,Y.a9i,Y.a9j,Y.a9k,Z.Ue,Z.Uf,Z.Ug,E.Z4,E.Z3,E.Z5,E.a99,E.abs,M.Zc,M.Zd,M.Z9,M.Z7,M.Z8,M.Z6,M.Za,M.Zb,L.SN,L.SO,L.Zf,L.a04,L.a03,G.Zp,G.Zo,N.a3d,S.Tm,S.a2a,S.a29,S.a28,V.a2c,V.a2b,D.a2v,D.a2j,D.a2i,D.a2l,D.a2k,D.a2n,D.a2m,D.a2p,D.a2o,D.a2f,D.a2e,D.a2h,D.a2g,D.a2s,D.a2r,D.a2u,D.a2t,D.a2d,D.a2q,D.a2x,D.a2w,F.a2z,F.a2y,F.a2B,F.a2D,F.a2C,F.a2A,A.a_Y,A.a00,A.a0_,A.a_Z,A.a_W,A.a_X,K.a0V,K.a0U,K.a0T,K.a1c,K.a1b,K.a1d,K.a1e,K.a2L,K.a2P,K.a2N,K.a2O,K.a2M,Q.a2Q,Q.a2T,Q.a2S,Q.a2U,Q.a2V,Q.a2R,E.a3a,E.a2F,E.a2E,T.a2W,G.a2Y,U.a2Z,F.a3_,F.a31,F.a30,K.a34,K.a36,K.a33,K.a35,K.a2G,S.a38,S.a39,Q.a3c,Q.a3b,N.a3T,N.a3V,N.a3W,N.a3X,N.a3S,N.a3U,M.a7j,A.a4u,A.a4s,A.ae5,A.ae1,A.ae4,A.ae2,A.ae3,A.agq,A.a4z,A.a4A,A.a4B,A.a4y,A.a4g,A.a4j,A.a4h,A.a4k,A.a4i,A.a4l,A.a4m,Q.TH,N.a4H,N.a4I,N.a9R,N.a9S,U.a6h,A.T5,A.a_I,K.a3k,K.a3l,K.a3h,K.a3i,K.a3g,K.a3j,X.a6L,B.WW,B.WV,N.a77,U.agO,U.agN,U.agP,U.SD,U.SE,U.a8f,U.aay,U.aaw,U.aar,U.aas,U.aaq,U.aav,U.aat,U.aau,U.aax,S.ag_,S.afZ,S.acD,S.acE,L.a8J,L.a8O,L.a8N,L.a8L,L.a8M,L.a8K,T.a3n,N.ag1,N.ag2,N.ag0,N.a7W,N.a2J,N.a2K,D.Wa,D.W9,D.W1,D.W0,D.VZ,D.W_,D.W7,D.W6,D.W5,D.Wb,D.W2,D.W3,D.W4,D.W8,O.Xj,L.aan,L.aao,L.aap,U.agJ,U.Xm,U.Xl,U.adn,U.Vt,U.Vn,U.Vo,U.Vp,U.Vq,U.Vr,U.Vs,U.Vm,U.Vu,U.Vv,U.Vw,U.Vx,U.Vy,U.Vz,U.adk,U.adm,U.adl,U.adi,U.adj,U.a2_,U.a20,U.a21,A.XA,A.XB,A.Xz,A.Xy,N.ab7,N.Ty,N.Tz,N.Wh,N.Wi,N.We,N.Wg,N.Wf,N.Us,N.Ut,N.a0Y,N.a2H,N.a2I,D.XT,D.XU,D.XV,D.XX,D.XY,D.XZ,D.Y_,D.Y0,D.Y1,D.Y2,D.Y3,D.XW,D.a9Z,D.a9Y,D.a9V,D.a9W,D.a9X,D.aa_,D.aa0,D.aa1,T.Yi,T.Yj,T.aaV,T.aaU,T.aaS,T.aaT,T.Yh,T.Yg,Y.Z_,U.ab4,U.ab5,U.ab6,G.Zi,G.Zh,G.Zg,G.SI,G.a8n,G.a8m,G.a8o,G.a8p,G.a8q,G.a8r,M.Zm,M.Zn,A.abo,A.abm,A.abn,L.agZ,L.ah_,L.ah0,L.abu,L.abv,L.abt,X.a_R,X.a_Q,K.a3t,K.a3s,K.a3w,K.a3x,K.a3y,K.a3z,K.a3u,K.a3v,K.a0l,K.adO,K.adM,K.adL,K.adK,K.adN,K.adP,K.a0j,K.a0b,K.a0c,K.a0d,K.a0e,K.a0f,K.a0g,K.a0h,K.a0i,K.a0a,K.aaX,K.acV,X.a0J,X.ad_,X.a0N,X.a0M,X.a0O,X.a0L,X.a0K,X.adA,L.aaN,S.a0Q,K.adF,K.adE,K.a3m,K.agc,T.a7t,T.a7u,T.a7v,T.a7s,T.acH,T.acL,T.acM,T.acK,T.acI,T.acJ,T.a_T,T.a_S,Y.a4_,Y.a3Z,K.a40,K.a41,A.a43,B.a44,B.a45,F.adZ,F.a47,F.a48,F.a49,F.a4a,E.a1X,E.a1W,E.a1S,E.a1T,E.a1P,E.a1Q,E.a1R,E.a1U,E.a1V,E.a1Z,E.a1Y,E.a4R,E.adz,E.ady,G.a62,G.a60,G.a61,G.a6_,G.a63,S.a6O,S.a6P,S.aeP,S.aeO,S.aeQ,S.aeR,S.aeN,S.aeM,S.aeS,F.a7e,F.a7f,F.a7d,F.af1,F.af2,F.af3,F.af4,F.af5,F.af6,F.af7,F.af8,K.a8s,N.agE,N.agF,O.a8T,O.a8S,X.a8U,R.Te,R.Tc,R.Td,D.a25,G.T2,G.T3,O.Tt,O.Tr,O.Ts,O.Tu,Z.TE,Z.TX,Z.TY,R.a_E,R.a_G,R.a_F,N.ahy,T.a0y,D.acW,D.aev,D.aew,D.agb,M.UP,M.UQ,M.ahl,Y.ab8,Y.a1G,U.YG,U.Yo,U.Yn,U.Yp,U.Yr,U.Ys,U.Yt,U.Yq,U.YH,U.Yu,U.YB,U.YC,U.YD,U.YE,U.Yz,U.YA,U.Yv,U.Yw,U.Yx,U.Yy,U.YF,U.aaW,A.ahN,M.ahv,F.ai8,F.ai9,F.a06,F.a07,F.a08,F.a09,T.ahA,T.ahB,T.ahz,T.ahC,T.ahD,T.a7C,T.a7B,T.UG,T.UH,T.UI,T.UJ,T.UF,T.UA,T.UB,T.UC,T.UD,T.UE,T.Uv,T.Uw,T.Ux,T.Uy,T.Uz,T.a3B,T.a3C,T.a3D,F.a8i,F.a8j,F.a8l,F.a8k,S.a8v,S.a8w,S.a8x,S.a8u,S.a8y,B.a9_,B.a91,B.a92,B.a90,B.a93,B.a8Y,B.a8Z,B.a94,B.a95,B.a98,B.a97,B.a96,E.a9c,E.a9a,E.a9b,E.a9d,E.a9e,D.a9n,D.a9p,D.a9q,D.a9o,D.a9r,D.a9s,D.a9l,D.a9m,D.a9v,D.a9u,D.a9t,Y.aaZ,Y.aaY,Y.ab0,Y.ab_,Y.ab3,Y.ab2,Y.ab1,V.ac3,V.abz,V.abJ,V.abK,V.abL,V.abI,V.abS,V.abH,V.abT,V.abG,V.abU,V.abV,V.abF,V.abW,V.abX,V.abY,V.abE,V.abZ,V.abM,V.abD,V.abN,V.abO,V.abC,V.abP,V.abQ,V.abB,V.abR,V.ac0,V.ac1,V.ac_,V.ac2,V.abA,V.aby,V.abw,V.abx,V.ac6,V.ac5,V.ac4,D.ac7,D.ac8,D.ac9,D.acb,D.aca,R.ae8,R.ael,R.aem,R.aek,R.aen,R.ae6,R.ae7,R.aec,R.aed,R.aee,R.aeb,R.aef,R.aeg,R.aea,R.aeh,R.aei,R.ae9,R.aej,R.aeq,R.aep,R.aeo,B.afv,B.afu,B.afr,B.afs,B.aft,B.afI,B.afG,B.afE,B.afF,B.afC,B.afH,B.afD,B.afy,B.afz,B.afA,B.afx,B.afB,B.afw,B.afK,B.afL,B.afJ,B.afM,B.afP,B.afO,B.afN,Q.ag6,Q.ag5,Q.ag7,Q.ag4,Q.ag8,Q.ag3,Q.ag9,Q.aga,T.a85,T.a84,S.a86,S.a89,S.a88,S.a8a,S.a8b,S.a87,S.a81,S.a82,S.a83]) r(H.Wo,[H.jp,H.Mf]) q(H.a9f,H.Pk) q(H.I_,H.hC) r(H.ct,[H.E7,H.E4,H.E5,H.Ec,H.E9,H.E6,H.Eb,H.DP,H.DO,H.DN,H.DT,H.DU,H.DZ,H.DY,H.DR,H.DQ,H.DW,H.E_,H.DS,H.DV,H.DX,H.E8]) r(J.i,[J.P,J.wn,J.q5,J.o,J.lh,J.jK,H.nx,H.dg,W.ai,W.SB,W.ah,W.kR,W.uR,W.DG,W.vm,W.UR,W.cb,W.jx,W.l2,W.LN,W.eI,W.V5,W.VB,W.pF,W.Mg,W.vC,W.Mi,W.VN,W.vN,W.MK,W.WQ,W.n1,W.fq,W.YI,W.N7,W.Z0,W.wd,W.a_k,W.a_B,W.NF,W.NG,W.fw,W.NH,W.a0k,W.O0,W.a0G,W.iW,W.a13,W.fB,W.Oi,W.a1H,W.Ph,W.fJ,W.PI,W.fK,W.a68,W.PR,W.Qo,W.a7k,W.fN,W.Qw,W.a7r,W.a7H,W.a7R,W.R5,W.Ra,W.Rh,W.Rr,W.Rt,P.Zl,P.wt,P.a0A,P.hT,P.Np,P.i_,P.O7,P.a1l,P.a23,P.PV,P.i9,P.QC,P.ST,P.Ld,P.SF,P.PO]) r(J.P,[H.mB,H.TR,H.TS,H.Ur,H.a5T,H.a5H,H.a5h,H.a5f,H.a5e,H.a5g,H.rf,H.a4V,H.a4U,H.a5L,H.ro,H.a5I,H.rl,H.a5C,H.rh,H.a5D,H.ri,H.a5R,H.a5Q,H.a5B,H.a5A,H.a50,H.rc,H.a57,H.rd,H.a5w,H.a5v,H.a4Z,H.rb,H.a5F,H.rj,H.a5q,H.rg,H.a4Y,H.ra,H.a5G,H.rk,H.a5a,H.re,H.a5O,H.rp,H.a59,H.a58,H.a5o,H.a5n,H.a4X,H.a4W,H.a53,H.a52,H.o1,H.lH,H.a5E,H.k9,H.a5m,H.o4,H.o3,H.a51,H.o2,H.a5j,H.a5i,H.a5u,H.acU,H.a5b,H.o6,H.a55,H.a54,H.a5x,H.a5_,H.o7,H.a5s,H.a5r,H.a5t,H.Jh,H.o9,H.a5K,H.rn,H.a5J,H.rm,H.a5z,H.a5y,H.Jj,H.Ji,H.Jg,H.o8,H.yu,H.ka,H.a5c,H.Jf,H.a5l,H.o5,H.a5M,H.a5N,H.a5S,H.a5P,H.a5d,H.a7z,H.k8,H.ZF,H.a5p,H.a56,H.a5k,H.ni,J.HH,J.j6,J.iK,L.ZK]) q(H.a7y,H.Jf) r(H.dG,[H.ez,H.rq]) r(H.ez,[H.AI,H.DM,H.E1,H.pl,H.pm,H.vb,H.pn,H.va]) r(P.l,[H.x1,H.kp,H.M,H.ft,H.aO,H.fn,H.oh,H.kb,H.yx,H.n0,H.fP,H.zP,P.wi,H.PT,P.a7,P.vD,P.y9,T.hh,R.by,R.w7]) r(H.ex,[H.pw,H.HF]) r(H.pw,[H.IE,H.Ef,H.Ej,H.Eg,H.H2,H.zi,H.HD]) q(H.H0,H.zi) q(H.E0,H.pn) r(P.bC,[H.DE,H.jO,H.HX,H.xc,P.Kl,H.Gb,H.Ks,H.IN,H.Ms,P.wq,P.mt,P.GV,P.hx,P.jU,P.Ku,P.Kq,P.hg,P.Er,P.ED,U.MR]) q(H.VA,H.Mf) r(H.cM,[H.dv,H.Hz]) r(H.dv,[H.Og,H.Of,H.Oh,H.xo,H.xq,H.xr,H.xt,H.xu]) q(H.xp,H.Og) q(H.Hx,H.Of) q(H.xs,H.Oh) q(H.HA,H.Hz) r(H.cL,[H.vF,H.xl,H.Hj,H.Hn,H.Hl,H.Hk,H.Hm]) r(H.vF,[H.H9,H.H8,H.H7,H.Hd,H.Hh,H.Hg,H.Hb,H.Ha,H.Hf,H.Hi,H.Hc,H.He]) q(H.FP,H.vL) q(H.FT,H.FU) r(H.Tv,[H.x0,H.ys]) r(H.a7J,[H.Yb,H.V4]) q(H.Tw,H.a1i) q(H.Ws,P.a1g) r(H.a8Q,[H.Rk,H.afi,H.Rf]) q(H.ad2,H.Rk) q(H.acN,H.Rf) r(H.fF,[H.pk,H.pY,H.q0,H.q9,H.qd,H.qZ,H.rI,H.rN]) r(H.a4n,[H.Vg,H.a_N]) r(H.vw,[H.a4D,H.FO,H.a3L]) q(P.wB,P.AG) r(P.wB,[H.jl,H.rY,W.Lw,W.oD,W.dx,P.Ft,E.ki]) q(H.Nh,H.jl) q(H.Kn,H.Nh) r(H.rB,[H.DJ,H.IF]) q(H.OF,H.FJ) r(H.xH,[H.xw,H.oc]) q(H.a3G,H.y8) r(H.a79,[H.VM,H.TW]) r(H.Wq,[H.a76,H.a0z,H.V9,H.a18,H.Wj,H.a7I,H.a05]) r(H.FO,[H.YV,H.SG,H.WX]) q(P.mX,P.Xg) q(P.Jd,P.mX) q(H.Fa,P.Jd) q(H.Fd,H.Fa) q(J.ZE,J.o) r(J.lh,[J.q4,J.wo]) r(H.kp,[H.mC,H.Cc]) q(H.A5,H.mC) q(H.zH,H.Cc) q(H.cm,H.zH) q(P.wJ,P.aC) r(P.wJ,[H.mD,H.cU,P.ks,P.Nl,W.Lc]) q(H.hD,H.rY) r(H.M,[H.av,H.mO,H.wA,P.kt,P.AJ,P.ky,P.oN,P.Bw]) r(H.av,[H.fL,H.Z,H.bI,P.wC,P.Nm]) q(H.mN,H.ft) r(P.G7,[H.qh,H.hn,H.K0,H.Jn,H.Jo]) q(H.vG,H.oh) q(H.pK,H.kb) q(P.BZ,P.qg) q(P.kl,P.BZ) q(H.vk,P.kl) r(H.pv,[H.bs,H.cS]) q(H.wh,H.G5) q(H.xe,P.Kl) r(H.K1,[H.JM,H.pj]) r(P.wi,[H.KT,P.BH,T.aeC]) r(H.dg,[H.x2,H.qm]) r(H.qm,[H.AV,H.AX]) q(H.AW,H.AV) q(H.lq,H.AW) q(H.AY,H.AX) q(H.fy,H.AY) r(H.lq,[H.x3,H.x4]) r(H.fy,[H.GO,H.x5,H.GP,H.GQ,H.x6,H.x7,H.ny]) q(H.BV,H.Ms) r(P.bg,[P.oO,P.yJ,P.Af,W.jc,L.cI]) r(P.oO,[P.lV,P.Ag]) q(P.ko,P.lV) r(P.d_,[P.lW,P.tt]) q(P.ox,P.lW) r(P.lU,[P.BG,P.zz]) q(P.aH,P.zL) r(P.u4,[P.t4,P.m8]) q(P.BE,P.t2) r(P.Od,[P.Ax,P.m7]) r(P.M7,[P.ja,P.te]) q(P.oG,P.Af) r(P.oP,[P.LY,P.Pg]) r(P.ks,[P.oE,P.zW]) r(H.cU,[P.AF,P.tG]) q(P.oL,P.Co) r(P.oL,[P.lY,P.hs,P.Cs]) q(P.f0,P.ih) q(P.kr,P.f0) r(P.kr,[P.zZ,P.oB]) q(P.fg,P.Cs) r(P.PM,[P.c7,P.e1]) r(P.PL,[P.Bx,P.By]) q(P.yD,P.Bx) r(P.u3,[P.cE,P.BA,P.oM]) q(P.Bz,P.By) q(P.ry,P.Bz) r(P.Eo,[P.mP,P.T_,P.ZL,N.Yk]) r(P.mP,[P.Dd,P.Gf,P.Kx]) q(P.Et,P.JO) r(P.Et,[P.afq,P.afp,P.T0,P.ZN,P.ZM,P.a7N,P.Ky,R.Yl,A.Y8]) r(P.afq,[P.SM,P.a_9]) r(P.afp,[P.SL,P.a_8]) q(P.TC,P.DL) q(P.TD,P.TC) q(P.Lo,P.TD) q(P.Gc,P.wq) q(P.abj,P.abk) r(P.hx,[P.qF,P.G_]) q(P.M_,P.C_) r(W.ai,[W.a8,W.To,W.j9,W.WJ,W.Fs,W.WR,W.Xp,W.wb,W.a_A,W.GD,W.a_C,W.wV,W.wW,W.a0r,W.GZ,W.a14,W.a1x,W.a27,W.IL,W.y7,W.a3Y,W.a4G,W.fI,W.Bu,W.a67,W.fM,W.eN,W.BO,W.a7P,W.a7U,W.ov,P.V6,P.Do,P.SW]) r(W.a8,[W.aE,W.iA,W.jA,W.t5]) r(W.aE,[W.ab,P.am]) r(W.ab,[W.p7,W.Dc,W.ph,W.mv,W.DB,W.kX,W.EX,W.vz,W.F7,W.Fq,W.jF,W.FV,W.nc,W.nf,W.wu,W.wz,W.Gx,W.nt,W.lo,W.GY,W.H5,W.xm,W.Hq,W.yc,W.J0,W.Jv,W.rx,W.yM,W.yT,W.JZ,W.K_,W.rJ,W.rK]) r(W.ah,[W.ec,W.kj,W.ql,W.HL,W.f7,W.JI,P.Kz]) q(W.kP,W.ec) q(W.Dm,W.kP) q(W.px,W.cb) q(W.US,W.jx) r(W.l2,[W.vn,W.UU,W.UV]) q(W.py,W.LN) q(W.pz,W.eI) r(W.j9,[W.EL,W.J9]) q(W.Mh,W.Mg) q(W.vB,W.Mh) q(W.Mj,W.Mi) q(W.F4,W.Mj) r(W.vm,[W.WP,W.a1_]) q(W.et,W.kR) q(W.ML,W.MK) q(W.pN,W.ML) q(W.N8,W.N7) q(W.n9,W.N8) q(W.iG,W.wb) r(W.kj,[W.jN,W.eC,W.lP]) q(W.GF,W.NF) q(W.GG,W.NG) q(W.NI,W.NH) q(W.GH,W.NI) q(W.O1,W.O0) q(W.qp,W.O1) q(W.Oj,W.Oi) q(W.HJ,W.Oj) r(W.eC,[W.k1,W.ou]) q(W.IM,W.Ph) q(W.Bv,W.Bu) q(W.JB,W.Bv) q(W.PJ,W.PI) q(W.JH,W.PJ) q(W.yI,W.PR) q(W.Qp,W.Qo) q(W.K9,W.Qp) q(W.BP,W.BO) q(W.Ka,W.BP) q(W.Qx,W.Qw) q(W.zg,W.Qx) q(W.KB,W.nt) q(W.KF,W.eN) q(W.R6,W.R5) q(W.LM,W.R6) q(W.zY,W.vC) q(W.Rb,W.Ra) q(W.N_,W.Rb) q(W.Ri,W.Rh) q(W.AU,W.Ri) q(W.Rs,W.Rr) q(W.PK,W.Rs) q(W.Ru,W.Rt) q(W.Q_,W.Ru) q(W.A6,W.Lc) q(W.ii,W.jc) q(W.tp,P.eg) q(W.Qe,W.Bt) q(P.PY,P.aeD) q(P.fQ,P.a8d) r(P.jL,[P.wp,P.tE]) q(P.nh,P.tE) q(P.Nq,P.Np) q(P.Gl,P.Nq) q(P.O8,P.O7) q(P.GX,P.O8) q(P.qW,P.am) q(P.PW,P.PV) q(P.JR,P.PW) q(P.QD,P.QC) q(P.Kj,P.QD) r(P.H_,[P.m,P.Q]) r(P.Do,[P.Dg,P.a0B]) q(P.Dh,P.Ld) q(P.PP,P.PO) q(P.JK,P.PP) q(Y.bJ,L.cI) q(M.ia,X.ju) q(U.r3,U.u9) q(R.Vk,P.Je) q(V.a4J,A.Y8) q(V.aes,G.Ya) q(V.aer,V.aes) r(B.aq,[X.ca,V.EC,B.oH,N.Q5,E.vt]) r(X.ca,[G.L0,S.KV,S.KW,S.OH,S.Pd,S.LX,S.Qy,S.zM,R.Ca,E.R4,E.R7]) q(G.L1,G.L0) q(G.L2,G.L1) q(G.pa,G.L2) r(T.a4P,[G.abf,D.XF,M.JJ,Y.Tk,Y.Uc]) q(S.OI,S.OH) q(S.OJ,S.OI) q(S.xC,S.OJ) q(S.Pe,S.Pd) q(S.i1,S.Pe) q(S.vs,S.LX) q(S.Qz,S.Qy) q(S.QA,S.Qz) q(S.or,S.QA) q(S.zN,S.zM) q(S.zO,S.zN) q(S.ps,S.zO) r(S.ps,[S.uC,A.zx]) q(Z.hI,Z.xn) r(Z.hI,[Z.AE,Z.iI,Z.z7,Z.hH,Z.mU,Z.M0]) q(R.b3,R.Ca) r(R.aJ,[R.kq,R.aM,R.jy]) r(R.aM,[R.y3,R.hE,R.xL,R.q3,D.wQ,L.Av,M.nZ,K.on,G.EK,G.mx,G.om]) r(P.C,[E.LO,E.iB]) q(E.dq,E.LO) r(F.a7b,[L.a9D,F.V0,L.aa3,F.a_w]) q(T.eu,T.N9) q(T.LQ,T.eu) q(T.Ew,T.LQ) r(L.ey,[L.LR,U.NB,L.R0]) r(K.c4,[T.qs,K.O2]) q(T.d4,T.qs) q(T.tN,T.d4) q(T.dE,T.tN) r(T.dE,[V.fA,T.xA]) r(V.fA,[D.zT,V.AM,V.xk]) q(D.vo,D.zT) q(Y.EU,Y.M9) r(Y.EU,[N.h,N.au,G.iH,A.J6]) r(N.h,[N.ay,N.a0,N.ar,N.b2,N.O4]) r(N.ay,[D.Ex,D.Ev,K.EA,R.Dl,R.Dk,R.En,K.tn,K.Ml,E.FC,B.FW,R.q2,M.Br,B.wO,K.MI,M.Lf,N.JU,E.JX,K.z6,S.Qu,L.O5,T.HM,T.q8,T.kT,M.fl,D.FM,L.lc,M.Ls,X.wY,X.NK,E.GS,U.fz,S.qu,Q.HN,Q.IO,B.IZ,E.Jb,R.JG,L.O6,L.K2,U.z9,U.Kc,L.KE,D.o_,D.nA,D.m2,F.GM,Z.e_,V.ow,L.ho,L.KK,T.KL,S.KN,S.lT]) r(N.a0,[D.tc,E.qJ,N.vq,S.wM,E.uG,Z.xJ,K.tl,K.tk,K.pG,R.At,L.zF,K.uz,L.Aj,L.ne,M.wL,G.FZ,M.ya,M.A9,M.nR,E.yk,N.AN,E.yP,Z.ok,A.jG,S.ze,U.fZ,U.n_,S.zq,S.AQ,L.uL,T.hY,X.lD,D.pH,L.mY,U.w_,A.w1,D.k5,T.n6,U.pW,L.wD,K.x9,X.tR,X.xi,L.w5,K.lB,K.y5,T.tO,F.yi,F.BM,F.z2,F.zs,O.ix,D.lF,F.ut,S.uJ,B.v2,E.v4,D.vj,Y.n8,V.wE,D.nn,R.yn,B.zn,Q.zt]) q(N.a2,N.PQ) r(N.a2,[D.td,E.tW,N.Cd,S.AK,E.zy,Z.B6,K.tm,K.A0,K.Ce,R.Cj,L.Cb,L.Ch,L.Ck,M.Rd,G.tC,M.Bm,M.Cf,M.Bn,E.Pp,N.Cl,E.BI,Z.Cp,A.fo,S.Cr,U.zv,U.Ad,S.RI,S.Re,L.zA,T.AT,D.A2,L.tq,U.MX,A.pR,D.qH,T.ty,U.Rc,L.Nu,K.B1,X.B3,X.Ob,L.Cg,K.Rq,K.Bi,T.kv,F.Bp,X.Bs,F.Cq,F.BL,K.zw,F.R1,O.zB,D.r8,F.KS,S.L7,B.Lp,E.Lr,D.Lz,Y.Ci,V.Nv,D.Nx,R.Pv,B.QV,Q.R3]) q(Z.f_,Z.M3) r(Z.f_,[D.ie,T.lR,S.dM]) r(Z.kS,[D.LP,T.QQ,S.t7]) r(E.qJ,[E.pA,E.tL]) q(E.iY,E.tW) r(E.iY,[E.zU,E.NC]) q(N.zV,N.Cd) r(N.ar,[N.Gj,N.b9,L.zX,N.eD,N.ly,A.hG,G.Ju,S.yS]) r(N.Gj,[N.LS,T.HV,D.Mo,N.Fi,L.Hv]) r(B.I,[K.P0,T.No,A.Pt]) q(K.r,K.P0) r(K.r,[S.A,G.dj,A.P9]) r(S.A,[E.Bc,T.Be,L.tZ,F.OV,B.B7,D.B8,D.OU,V.Ib,U.If,Q.Ba,L.Io,K.P7,S.xX,Q.jf,A.Rn,X.Rp,E.Cn]) q(E.Bd,E.Bc) q(E.It,E.Bd) r(E.It,[E.xQ,K.P_,M.B9,V.I8,E.Iu,E.Ii,E.Im,E.OO,E.tY,E.Ia,E.IA,E.Ie,E.Ik,E.Iv,E.xS,E.Il,E.xN,E.xV,E.I4,E.Ij,E.Ic,E.Ig,E.Ih,E.Id,E.xP,F.P3]) q(N.OS,E.xQ) r(V.EC,[F.Qi,K.Mm,L.Ne,M.Px,E.Ao,F.Qh,L.N4]) q(R.Ez,R.LT) r(N.b2,[N.bq,N.du]) r(N.bq,[K.Ap,Z.FB,R.B4,M.Bl,M.Pm,M.ev,U.zu,T.h2,S.fs,U.ts,A.Ae,L.AH,F.ln,K.n7,E.qD,K.zm,T.AS,K.ye,F.u1,U.A4,Y.e0]) q(K.LV,K.xa) q(K.vr,K.LV) q(K.a9T,R.Ez) r(Y.cz,[Y.es,Y.mI]) r(Y.es,[U.lX,U.Fh,K.pD]) r(U.lX,[U.pL,U.vO,U.Fg]) q(U.bK,U.MQ) q(U.mV,U.MR) r(Y.mI,[U.MP,Y.EV,A.Ps]) q(B.bn,P.nm) r(B.jv,[B.cZ,L.Au,M.Pl,F.zc,U.yR,N.fa,F.qX,D.lx,A.GI,A.r1,K.y2,L.Gd,K.cW,X.jX,L.Ah,E.r_,X.Py]) r(D.ds,[D.jR,N.f2]) r(D.jR,[D.eQ,N.Kr]) q(F.wy,F.f3) q(N.vW,U.bK) q(F.br,F.Os) q(F.RA,F.KP) q(F.RB,F.RA) q(F.QI,F.RB) r(F.br,[F.Ok,F.Oz,F.Ov,F.Oq,F.Ot,F.Oo,F.Ox,F.OD,F.iX,F.Om]) q(F.Ol,F.Ok) q(F.nH,F.Ol) r(F.QI,[F.Rw,F.RF,F.RD,F.Rz,F.RC,F.Ry,F.RE,F.RH,F.RG,F.Rx]) q(F.QE,F.Rw) q(F.OA,F.Oz) q(F.nK,F.OA) q(F.QM,F.RF) q(F.Ow,F.Ov) q(F.k2,F.Ow) q(F.QK,F.RD) q(F.Or,F.Oq) q(F.lu,F.Or) q(F.QH,F.Rz) q(F.Ou,F.Ot) q(F.lv,F.Ou) q(F.QJ,F.RC) q(F.Op,F.Oo) q(F.k0,F.Op) q(F.QG,F.Ry) q(F.Oy,F.Ox) q(F.nJ,F.Oy) q(F.QL,F.RE) q(F.OE,F.OD) q(F.nM,F.OE) q(F.QO,F.RH) q(F.OB,F.iX) q(F.OC,F.OB) q(F.nL,F.OC) q(F.QN,F.RG) q(F.On,F.Om) q(F.nI,F.On) q(F.QF,F.Rx) q(S.N0,D.cT) q(S.cG,S.N0) r(S.cG,[S.xf,F.hJ]) r(S.xf,[K.hM,S.qC,O.vE]) r(O.u8,[O.AP,O.tQ]) r(S.qC,[T.f4,N.uN]) r(O.vE,[O.id,O.hO,O.i0]) r(N.uN,[N.eK,X.t3]) q(R.pV,R.j8) q(S.a_v,K.IU) r(T.a4Q,[E.afb,K.Mn,S.afd]) r(N.b9,[E.L6,Z.Ng,K.tM,M.Nd,X.uD,T.H1,T.vu,T.Ei,T.Ee,T.HB,T.HC,T.zh,T.pr,T.Eq,T.FK,T.ee,T.mo,T.l4,T.o0,T.hF,T.Gm,T.qr,T.Jt,T.Gr,T.OM,T.he,T.hP,T.D0,T.nV,T.GE,T.Ds,T.mT,T.G0,T.vh,M.EF,D.N1,F.Po,E.u2,K.Fn]) q(T.Iw,T.Be) r(T.Iw,[T.I2,Z.OY,T.In,T.I9]) r(T.I2,[E.OQ,T.Is]) q(V.uH,V.L5) q(D.qj,R.xL) q(Q.wN,Q.Nz) q(D.uT,D.Lh) q(M.uU,M.Li) q(X.uV,X.Lj) q(M.uZ,M.Ll) q(A.DC,A.Lm) q(M.DD,M.Ln) q(A.v6,A.Lt) q(F.v9,F.Lv) q(K.DK,K.Lx) q(A.pq,A.Ly) r(E.iB,[E.np,E.Gy]) q(Z.vv,Z.LZ) q(Y.vy,Y.Ma) q(G.vA,G.Md) q(K.A1,T.xA) q(K.jC,K.Ml) q(K.tj,K.Ce) q(T.vJ,T.Mr) q(A.a6f,A.X3) q(A.R8,A.a6f) q(A.R9,A.R8) q(A.aai,A.R9) q(A.adY,A.X2) q(S.vT,S.MO) q(R.ng,M.lf) r(R.ng,[Y.lg,U.wf]) q(U.abd,R.Zu) q(R.As,R.Cj) q(R.G3,R.q2) r(Y.c5,[F.hS,Y.jW,Y.hp,F.Dw]) q(F.kk,F.hS) q(L.Lg,L.Cb) r(K.uz,[L.Pw,E.Qc,K.Jp,K.IR,K.IG,K.EG,K.D5]) q(L.Ak,L.Ch) r(N.au,[N.a_,N.vi,N.O3]) r(N.a_,[L.M2,N.r7,N.y4,N.Gi,N.nv,A.tF,G.rt,S.Qd]) q(L.Aw,L.Ck) q(L.G4,L.Nf) q(M.ND,M.Rd) r(G.FZ,[M.AL,K.uy,G.uw,G.uv,G.ux]) q(G.q_,G.tC) r(G.q_,[G.p9,G.KY]) r(G.p9,[M.NA,K.L_,G.KX,G.KZ]) q(A.eB,A.NL) r(A.eB,[V.GA,A.M6,A.lJ]) q(V.A7,V.GA) q(E.x8,E.NZ) q(U.xh,U.Oa) q(V.nq,V.AM) r(K.jY,[K.Fo,K.Ey]) q(K.H6,K.Oc) q(R.xz,R.OG) q(T.xF,T.OK) q(D.HT,B.wO) q(M.IQ,M.Bm) r(K.UM,[S.aN,G.lI]) q(M.zE,S.aN) r(B.a01,[M.adU,E.afc]) q(M.Aa,M.Cf) q(M.Bo,M.Bn) q(M.qV,M.Bo) q(X.yl,X.Pq) q(Q.yz,Q.PC) q(K.yC,K.PH) q(N.Cm,N.Cl) q(N.AO,N.Cm) q(N.BF,F.zc) q(R.yO,R.Q1) q(U.yQ,U.Q9) q(F.OW,F.OV) q(F.OX,F.OW) q(F.qM,F.OX) q(E.Qb,F.qM) r(N.eD,[T.vS,T.mG,T.rz,T.ID,X.BQ,Q.Ja]) r(T.vS,[E.Qa,T.fG,T.Ep]) q(E.Lu,E.R4) q(E.ti,E.R7) q(A.Pn,N.fa) q(A.j_,A.Pn) q(R.qY,A.j_) q(E.Q8,R.qY) q(E.Q7,F.qX) q(T.yW,T.Qf) q(Z.Qg,F.z3) q(Z.BJ,Z.Cp) q(E.z_,A.jG) q(E.u7,A.fo) q(R.z5,R.Qk) q(R.dX,R.Qn) r(M.ev,[K.Ar,Y.na,L.pB]) q(X.hk,X.Qr) q(X.Gz,K.vr) q(X.t0,X.QX) q(A.za,A.Qs) q(S.zb,S.Qt) q(S.BT,S.Cr) q(T.zf,T.Qv) q(U.zk,U.QP) r(K.D4,[K.dK,K.iv,K.NJ]) r(K.uS,[K.d1,K.AR]) r(F.Dw,[F.da,F.e8]) q(O.bh,P.J8) r(Y.jW,[X.eY,X.ef,X.eS]) r(V.dr,[V.X,V.fm,V.m0]) r(E.Lq,[E.zG,E.tI]) r(M.hR,[M.Df,Y.yd]) q(L.nd,L.Na) r(L.nd,[M.aaj,L.GK]) q(L.uK,M.Df) q(L.Ze,L.Nb) q(D.Vb,D.a4K) q(M.JT,M.PZ) q(Q.rT,G.iH) q(A.w,A.Ql) q(M.nU,M.JJ) r(O.hN,[S.h_,G.rs]) r(O.iF,[S.uY,G.Jr]) r(K.iV,[S.fj,G.ob,G.yA]) r(S.fj,[S.zQ,S.lL]) q(S.vl,S.zQ) r(S.vl,[B.h9,F.dB,Q.j5,K.dl]) q(B.OT,B.B7) q(B.I7,B.OT) q(D.nO,D.B8) r(D.lx,[D.BK,D.Ab,D.t8]) q(T.wv,T.No) r(T.wv,[T.HE,T.Hw,T.dP]) r(T.dP,[T.jV,T.vg,T.Eh,T.vf,T.xg,T.xv,T.nl,T.w0,T.uE]) q(T.rW,T.jV) q(A.NN,A.Rg) q(K.qw,Z.Ud) r(K.ae_,[K.a9x,K.lZ]) r(K.lZ,[K.Pf,K.Q3,K.KO]) q(Q.P1,Q.Ba) q(Q.P2,Q.P1) q(Q.xU,Q.P2) q(E.OP,E.OO) q(E.I3,E.OP) q(E.nY,E.vt) r(E.tY,[E.I6,E.I5,E.Bb]) r(E.Bb,[E.Ip,E.Iq]) r(E.Iu,[E.Ir,E.k7,T.OR]) q(G.Jq,G.PD) r(G.ob,[G.PE,F.PF]) q(G.kc,G.PE) r(G.dj,[F.Bg,T.P4]) q(F.P5,F.Bg) q(F.P6,F.P5) q(F.qN,F.P6) q(U.Iy,F.qN) q(F.PG,F.PF) q(F.j3,F.PG) q(T.xW,T.P4) q(T.Iz,T.xW) q(K.P8,K.P7) q(K.qO,K.P8) q(K.xT,K.qO) r(S.rG,[S.Fw,S.Fy]) q(A.xY,A.P9) q(Q.qP,Q.jf) q(Q.Ix,Q.qP) q(A.J3,A.Pr) q(A.bM,A.Pt) q(A.im,P.bi) q(A.r2,A.Pu) q(A.nD,A.r2) r(E.a4o,[E.a7q,E.a_o,E.a6V]) q(Q.TG,Q.De) q(Q.a1f,Q.TG) r(Q.T6,[N.M4,D.I0]) q(G.a_5,G.Nn) r(G.a_5,[G.n,G.q]) q(A.Q6,A.x_) q(A.nC,A.lp) q(B.fD,B.OL) r(B.fD,[B.qI,B.xI]) r(B.a1K,[Q.a1L,B.a1M,A.a1N]) q(X.eh,P.eM) q(B.Fu,B.ol) q(U.aP,U.Nj) q(U.aX,U.KR) r(U.aX,[U.c0,U.iz,U.F1,U.F_,U.HQ,U.IB,U.GT,U.HO,U.EZ,F.IS]) q(U.SC,U.KQ) r(U.aP,[U.kM,U.kU,U.mK,U.qE,U.qo,U.qB,U.mJ,F.i5,M.mL]) q(S.C2,S.RI) q(S.NE,S.Re) r(U.xd,[L.q7,U.h8,L.tS]) q(T.v8,T.mo) r(N.du,[T.wx,T.nN,T.FA,G.wr]) q(T.O9,N.r7) q(T.G1,T.rz) q(T.Fl,T.FA) q(N.lz,N.y4) q(N.C3,N.Dq) q(N.C4,N.C3) q(N.C5,N.C4) q(N.C6,N.C5) q(N.C7,N.C6) q(N.C8,N.C7) q(N.C9,N.C8) q(N.KI,N.C9) q(E.EQ,U.fZ) q(Y.yZ,U.c0) r(Y.yZ,[E.Me,E.Mu,E.Mv,E.Mw,E.Mx,E.My,E.Mz,E.MA,E.MB,E.MC,E.MD,E.ME,E.MF,E.MG,E.MH,E.NO,E.NR,E.NU,E.NX,E.NP,E.NQ,E.NS,E.NT,E.NV,E.NW]) q(E.ER,X.lD) q(D.aL,B.cZ) q(D.Mp,D.A2) q(D.A3,D.Mp) q(D.Mq,D.A3) q(D.pI,D.Mq) q(O.MV,O.MU) q(O.db,O.MV) q(O.la,O.db) q(O.MT,O.MS) q(O.vZ,O.MT) q(L.FG,L.mY) q(L.MW,L.tq) r(S.fs,[L.Ac,X.Pz]) q(U.FH,U.MY) q(U.d7,U.Rm) q(U.je,U.Rl) q(U.ON,U.FH) q(U.HZ,U.ON) r(N.f2,[N.aY,N.lb]) r(N.vi,[N.dV,N.eH,N.k4]) r(N.k4,[N.nE,N.co]) r(D.n5,[D.cn,X.L4]) r(D.a4p,[D.M5,X.acG]) q(T.w8,K.lr) q(U.An,U.Rc) r(N.co,[S.tD,Y.oF]) q(A.Gh,A.hG) q(A.Ro,A.Rn) q(A.OZ,A.Ro) q(K.ES,K.Kk) q(K.dp,K.a3p) r(K.m1,[K.tP,K.AZ,K.B_,K.B0]) q(K.B2,K.B1) q(K.iO,K.B2) r(K.Pb,[K.NY,K.akC]) r(K.cW,[K.N6,U.qR,U.nP]) q(X.qt,X.Ob) q(X.Qq,N.nv) q(X.u_,X.Rp) q(L.Ai,L.Cg) q(L.a0P,L.tS) q(K.Pc,K.Rq) r(U.qR,[U.il,F.Pa]) q(U.Bh,U.il) r(U.Bh,[U.y0,U.y_]) q(U.qQ,U.nP) q(U.y1,U.qQ) q(T.Mc,U.F_) r(M.IT,[M.le,M.YJ,M.VU,M.Dn,M.F6]) q(M.X0,M.MN) q(G.u0,U.h8) q(G.fH,G.u0) r(G.fH,[G.yh,G.j0,G.iR,G.nT,G.Kw]) r(L.IY,[L.HU,L.Dv,L.vd,L.uu]) q(B.Dy,B.IZ) q(B.Gq,B.Dy) q(F.Bq,F.Bp) q(F.yj,F.Bq) q(E.ji,T.f4) r(N.eK,[E.jj,F.jk]) q(X.Nw,X.nj) q(X.hU,X.Nw) q(X.r6,X.Py) q(E.Bf,E.Cn) q(G.Bk,D.eQ) q(G.a5Z,G.a5Y) q(G.ru,G.Ju) q(G.Js,G.ru) q(S.u5,S.Rv) q(F.BN,F.Cq) q(U.R_,M.rU) q(O.uO,O.ix) q(X.hz,D.lF) q(X.zD,X.hz) q(X.uP,X.zD) q(X.zC,D.r8) r(D.o_,[R.Le,Y.we]) q(R.uQ,R.Le) q(Y.GL,D.nA) q(M.GJ,Y.GL) q(D.a1k,D.I0) r(E.T1,[O.Tq,O.a1a]) q(Z.v0,P.yJ) q(O.a3e,G.Dp) r(T.T4,[U.IC,X.rA]) q(Z.v7,M.bf) r(N.dV,[D.Rj,D.ik,D.PB]) q(D.O_,D.Rj) q(D.yq,D.PB) q(D.PA,N.eH) q(D.Jc,D.PA) q(B.Zv,O.a6A) r(B.Zv,[E.a1v,F.a7K,L.a7X]) q(Y.Aq,D.yq) q(Y.ta,Y.M8) q(Y.zR,Y.ig) r(E.a4M,[F.a_H,V.a4L]) q(Y.Fr,D.JD) r(Y.rw,[Y.A8,V.JE]) q(G.rv,G.JF) q(X.kd,V.JE) q(E.JS,G.rv) q(E.Ni,E.ki) q(E.Km,E.Ni) r(Y.bJ,[L.mq,M.my,O.mE,G.no,X.ot]) q(A.Db,A.ms) r(B.Ff,[V.eW,B.eX,X.ea,X.eE,Q.ei]) r(V.eW,[V.mr,V.uI]) q(N.v3,N.mz) r(B.eX,[B.mA,B.v1]) r(G.l1,[G.pu,G.eb]) r(X.ea,[X.iC,X.fk]) q(U.wG,U.nz) r(X.eE,[X.wH,X.Gv,X.wI]) r(Y.lS,[Y.zp,Y.zo]) r(Q.ei,[Q.ib,Q.rZ]) q(Y.Al,Y.Ci) s(H.Mf,H.a3M) s(H.Of,H.tg) s(H.Og,H.tg) s(H.Oh,H.tg) s(H.Rf,H.QY) s(H.Rk,H.QY) s(H.rY,H.Kt) s(H.Cc,P.J) s(H.AV,P.J) s(H.AW,H.vR) s(H.AX,P.J) s(H.AY,H.vR) s(P.t4,P.Lb) s(P.m8,P.Q4) s(P.AG,P.J) s(P.Bx,P.aC) s(P.By,P.wl) s(P.Bz,P.cQ) s(P.BZ,P.BY) s(P.Co,P.cQ) s(P.Cs,P.QU) s(W.LN,W.UT) s(W.Mg,P.J) s(W.Mh,W.az) s(W.Mi,P.J) s(W.Mj,W.az) s(W.MK,P.J) s(W.ML,W.az) s(W.N7,P.J) s(W.N8,W.az) s(W.NF,P.aC) s(W.NG,P.aC) s(W.NH,P.J) s(W.NI,W.az) s(W.O0,P.J) s(W.O1,W.az) s(W.Oi,P.J) s(W.Oj,W.az) s(W.Ph,P.aC) s(W.Bu,P.J) s(W.Bv,W.az) s(W.PI,P.J) s(W.PJ,W.az) s(W.PR,P.aC) s(W.Qo,P.J) s(W.Qp,W.az) s(W.BO,P.J) s(W.BP,W.az) s(W.Qw,P.J) s(W.Qx,W.az) s(W.R5,P.J) s(W.R6,W.az) s(W.Ra,P.J) s(W.Rb,W.az) s(W.Rh,P.J) s(W.Ri,W.az) s(W.Rr,P.J) s(W.Rs,W.az) s(W.Rt,P.J) s(W.Ru,W.az) s(P.tE,P.J) s(P.Np,P.J) s(P.Nq,W.az) s(P.O7,P.J) s(P.O8,W.az) s(P.PV,P.J) s(P.PW,W.az) s(P.QC,P.J) s(P.QD,W.az) s(P.Ld,P.aC) s(P.PO,P.J) s(P.PP,W.az) s(G.L0,S.uA) s(G.L1,S.mp) s(G.L2,S.kN) s(S.zM,S.uB) s(S.zN,S.mp) s(S.zO,S.kN) s(S.LX,S.kO) s(S.OH,S.uB) s(S.OI,S.mp) s(S.OJ,S.kN) s(S.Pd,S.uB) s(S.Pe,S.kN) s(S.Qy,S.uA) s(S.Qz,S.mp) s(S.QA,S.kN) s(R.Ca,S.kO) s(E.LO,Y.aw) s(T.LQ,Y.aw) s(D.zT,D.vp) s(N.Cd,U.dY) s(R.LT,Y.aw) s(K.LV,Y.aw) s(U.MR,Y.iD) s(U.MQ,Y.aw) s(Y.M9,Y.aw) s(F.Ok,F.fR) s(F.Ol,F.LB) s(F.Om,F.fR) s(F.On,F.LC) s(F.Oo,F.fR) s(F.Op,F.LD) s(F.Oq,F.fR) s(F.Or,F.LE) s(F.Os,Y.aw) s(F.Ot,F.fR) s(F.Ou,F.LF) s(F.Ov,F.fR) s(F.Ow,F.LG) s(F.Ox,F.fR) s(F.Oy,F.LH) s(F.Oz,F.fR) s(F.OA,F.LI) s(F.OB,F.fR) s(F.OC,F.LJ) s(F.OD,F.fR) s(F.OE,F.LK) s(F.Rw,F.LB) s(F.Rx,F.LC) s(F.Ry,F.LD) s(F.Rz,F.LE) s(F.RA,Y.aw) s(F.RB,F.fR) s(F.RC,F.LF) s(F.RD,F.LG) s(F.RE,F.LH) s(F.RF,F.LI) s(F.RG,F.LJ) s(F.RH,F.LK) s(S.N0,Y.iD) s(V.L5,Y.aw) s(Q.Nz,Y.aw) s(D.Lh,Y.aw) s(M.Li,Y.aw) s(X.Lj,Y.aw) s(M.Ll,Y.aw) s(A.Lm,Y.aw) s(M.Ln,Y.aw) s(A.Lt,Y.aw) s(F.Lv,Y.aw) s(K.Lx,Y.aw) s(A.Ly,Y.aw) s(Z.LZ,Y.aw) s(Y.Ma,Y.aw) s(G.Md,Y.aw) s(K.Ce,N.fb) s(T.Mr,Y.aw) s(A.R8,A.WM) s(A.R9,A.WN) s(S.MO,Y.aw) s(R.Cj,L.pf) s(L.Nf,Y.aw) s(L.Cb,U.dY) s(L.Ch,U.lG) s(L.Ck,U.dY) s(M.Rd,U.dY) s(E.NZ,Y.aw) s(U.Oa,Y.aw) s(V.AM,V.wR) s(K.Oc,Y.aw) s(R.OG,Y.aw) s(T.OK,Y.aw) s(M.Bm,U.dY) s(M.Bn,U.dY) s(M.Bo,K.iZ) s(M.Cf,U.dY) s(X.Pq,Y.aw) s(Q.PC,Y.aw) s(K.PH,Y.aw) s(N.Cl,U.dY) s(N.Cm,F.zd) s(R.Q1,Y.aw) s(U.Q9,Y.aw) s(E.R4,S.kO) s(E.R7,S.kO) s(T.Qf,Y.aw) s(Z.Cp,K.iZ) s(R.Qk,Y.aw) s(R.Qn,Y.aw) s(X.Qr,Y.aw) s(X.QX,Y.aw) s(A.Qs,Y.aw) s(S.Qt,Y.aw) s(S.Cr,U.lG) s(T.Qv,Y.aw) s(U.QP,Y.aw) s(Z.M3,Y.aw) s(L.Nb,Y.aw) s(L.Na,Y.aw) s(M.PZ,Y.aw) s(A.Ql,Y.aw) s(S.zQ,K.eZ) s(B.B7,K.aD) s(B.OT,S.cO) s(D.B8,K.xM) s(F.OV,K.aD) s(F.OW,S.cO) s(F.OX,T.V7) s(T.No,Y.iD) s(A.Rg,Y.aw) s(K.P0,Y.iD) s(Q.Ba,K.aD) s(Q.P1,S.cO) s(Q.P2,K.xM) s(E.OO,E.dT) s(E.OP,E.xO) s(E.Bc,K.aG) s(E.Bd,E.dT) s(T.Be,K.aG) s(G.PD,Y.aw) s(G.PE,K.eZ) s(F.Bg,K.aD) s(F.P5,G.a2X) s(F.P6,F.a32) s(F.PF,K.eZ) s(F.PG,F.jM) s(T.P4,K.aG) s(K.P7,K.aD) s(K.P8,S.cO) s(A.P9,K.aG) s(Q.jf,K.aD) s(A.Pr,Y.aw) s(A.Pt,Y.iD) s(A.Pu,Y.aw) s(G.Nn,Y.aw) s(A.NL,Y.aw) s(B.OL,Y.aw) s(U.KR,Y.aw) s(U.KQ,Y.aw) s(U.Nj,Y.aw) s(S.Re,N.fb) s(S.RI,N.fb) s(N.C3,N.w3) s(N.C4,N.i4) s(N.C5,N.yo) s(N.C6,N.Ho) s(N.C7,N.a4f) s(N.C8,N.xZ) s(N.C9,N.KH) s(D.A2,L.pf) s(D.Mp,N.fb) s(D.A3,U.dY) s(D.Mq,N.a7c) s(O.MS,Y.iD) s(O.MT,B.jv) s(O.MU,Y.iD) s(O.MV,B.jv) s(U.MY,Y.aw) s(U.ON,U.Vl) s(U.Rl,Y.aw) s(U.Rm,Y.aw) s(N.PQ,Y.aw) s(T.N9,Y.aw) s(U.Rc,N.fb) s(G.tC,U.lG) s(A.Rn,K.aG) s(A.Ro,A.fE) s(K.B1,U.dY) s(K.B2,K.iZ) s(X.Ob,U.dY) s(X.Rp,K.aD) s(L.tS,G.KD) s(L.Cg,U.dY) s(K.Rq,K.iZ) s(T.tN,T.Gs) s(M.MN,M.IX) s(G.u0,G.KD) s(A.Pn,M.IX) s(F.Bp,U.dY) s(F.Bq,K.iZ) s(E.tW,U.dY) s(X.Nw,Y.aw) s(X.Py,Y.aw) s(E.Cn,K.aG) s(S.Rv,Y.aw) s(F.Cq,U.lG) s(N.QZ,N.a7V) s(X.zD,X.Ta) s(R.Le,R.pi) s(D.PA,D.yr) s(D.PB,D.yr) s(D.Rj,D.yr) s(Y.Ci,U.lG)})() var v={typeUniverse:{eC:new Map(),tR:{},eT:{},tPV:{},sEA:[]},mangledGlobalNames:{p:"int",O:"double",bG:"num",f:"String",G:"bool",a6:"Null",v:"List"},mangledNames:{},getTypeFromName:getGlobalFromName,metadata:[],types:["~()","a6()","~(aK)","f*(f*)","a6(ah)","a6(@)","~(ah)","~(G)","~(z?)","~(ep)","a6(f*)","~(h4)","~(qw,m)","~(au)","G(h_,m?)","~(bX?)","~(f,@)","a6(p*)","G(db)","~(br)","l()","eh()","@(eh)","~(rH)","a6(~)","G(au)","G(z?)","G(jD)","~(@)","G(f)","h(S)","G(dp?)","~(z,bA)","~(h3)","O()","a6(aL*)","~(hK)","~(lv)","ay*(S*,ea*)","G()","ax<@>()","@(@)","@()","G(p)","@(ah)","f(f)","~(cW,~())","C(d3)","~(@,@)","@(O)","G(@)","p(db,db)","a6(eG*)","~(f)","~(n2)","G(iH)","a6(lP)","a6(z,bA)","~(r)","~(lu)","p()","G(dp)","~(lr)","a6(f7*)","G*(au*)","a6(k1)","p(r,r)","~(eC)","~({curve:hI,descendant:r?,duration:aK,rect:x?})","a6(G)","~(z?,z?)","~(f,f)","a6(@,@)","G(z?,z?)","p(z?)","h*(S*)","~(hl)","~(k0)","C(C)","~(lM)","f()","ax<~>()","G(ej)","~(qe)","G(fH)","~(hO)","hO()","G(n_)","a6(eC)","a6(dS*)","ax<~>(f,bX?,~(bX?)?)","p(bM,bM)","G(bM)","~(~())","p(@,@)","ax()","~(qf)","~(wF)","C()","@(C)","hE(@)","aM(@)","~(l9)","O(O,O)","~(p)","G(aE,f,f,tA)","~(cP)","~(ao,bF,ao,z,bA)","aM<@>?(aM<@>?,@,aM<@>(@))","@(z?)","ax(bX?)","f(p)","j8(br)","f*(hV*)","v(im)","~(id)","~(v)","~(fO,f,p)","G(a8)","~(lI)","id()","G(h_)","@(G)","G(iP)","v()","~(f4)","f4()","G(jJ)","~(eh)","~(x)","~()()","~(h7)","nd()","a6(v<@>*)","p(p)","~(hQ,G)","@(~())","p(d7,d7)","@(eg)","~(bG)","h*(S*,ca*,ca*,h*)","C?(d3)","~(n4)","Q(A,aN)","G(co)","v()","a6(dZ*)","O(A,O)","iL()","~([aP?])","h*(S*,ea*)","x()","ax<@>(hW)","eg()","er()","kW(@)","a6(dO*)","h(S,h?)","C?(C?)","W()","~([ax<~>?])","a6(dN*)","a6(G*)","pL(f)","dW()","~(I)","f(cT)","tw()","~(qA)","dW?()","G(iL)","~(u6)","ax(f,W)","~(~(br),b8?)","qj(x?,x?)","h(S,~())","G(nB)","nq<0^>(dU,h(S))","kW/(@)","O(jb)","p(m6,m6)","ax<~>(~)","l4(S)","~(ep)()","~(kM)","~(kU)","~(Q)","ar(h)","@(~(ep))","x()?(A)","G(S)","p(m3,m3)","f/(@)","rD()","G(lg?)","f?(f)","~(A?)","G(h_,m)","G(h8)","f(f,C)","~(ah?)","nZ(@)","jY?(dW)","@(x)","mG(S,h?)","~(p,G(jD))","a6(f)","oo({from:O?})","G(p,p)","O(d3)","~(G?)","~(ni?)","eB(d3)","~(v,oj,O)","f2>(h)","f(@)","h*(S*,ca*,ca*)","fA<@>*(dU*,W*>*)","~(eh,j2?)","ne(S,h?)","nV(S,h?)","ok(fo)","on(@)","hk()","~([lM?])","c4<@>*(dU*)","ax(fO{allowUpscaling:G,cacheHeight:p?,cacheWidth:p?})","dr(dr,c5)","c5(c5)","f(c5)","f*(z*)","tI()","~(hQ?,G)","ax<~>(z,bA?)","~(z*,bA*)","a6(W>?)","oz()","~(z,bA?)?(h7)","~(l0)","jL(@)","~(p,cv,bX?)","f(O,O,f)","Q()","O?()","@(W)","W()","nh<@>(@)","~(fD)","wp(@)","a6(bX)","~(l)","aE(a8)","x(x?,f8)","oy()","eB(iN)","~(iN,b8)","G(iN)","ax(@)","@(@,@)","~(a8,a8?)","~([ax<@>?])","G(rs{crossAxisPosition!O,mainAxisPosition!O})","~(f7)","~(pF)","G(A)","hN(m)","G(dj)","fO(@,@)","~(p,tu)","~(f,f?)","bM(kz)","p(p,p)","~(f[@])","p(bM)","bM(p)","bg()","ax(f?)","~(f,p)","ax<~>(bX?,~(bX?))","~(rE,@)","ax<@>(@)","ax(hW)","~(@,bA)","a1<@>(@)","v()","v(v)","f(hV)","~(z[bA?])","@(S)","S()","bA()","z()","~(aX)","@(bA)","c4<@>?(dU)","c4<@>(dU)","G(q7)","tV()","hN()","ax<~>(@)","bb(bb,ol)","pr(S,fa)","@(z)","G(fD)","~(tr)","G(tf)","q0(cB)","G(lQ)","d3

(d7)","G(G)","v

(S)","x(d7)","p(je,je)","v(d7,l)","G(d7)","G(fo<@>)","au?(au)","z?(p,au?)","eK()","~(eK)","hJ()","~(hJ)","a1<@>?()","~(p,@)","a6(@,bA)","o9()","a6(~())","@(f)","i0()","~(i0)","~(k7)","~(eH,z)","nN(S,h?)","~(ku)","h(S,ca,pU,S,S)","G(ku)","na(S)","@(@,f)","om(@)","mx(@)","ax<@>(tU)","W(v<@>)","W(W)","a6(W)","G(yN,hC)","G(c4<@>?)","G(jX)","qZ(cB)","q9(cB)","dp(c4<@>)","bm>(@,@)","~(mB)","a6(cP?)","~(cW)","lB(S,h?)","fZ(S)","hP(S,h?)","pV(br)","f(f,f)","h(S,fa)","G(j0)","~(jB)","~(iX)","ji()","~(ji)","~(f,G)","jj()","~(jj)","~(k2)","li(db,fD)","u2(S,fa)","~(A)","au?()","G(i8)","f_?(i8)","eT(i8)","au(h)","G(eT)","G(v)","l(eT)","A(au)","v(eT)","~([aK?])","~(h3,h4)","jk()","~(jk)","hM()","~(hM)","~(z*)","ax<@>*(hW*)","G*(f*,f*)","p*(f*)","rI(cB)","~(v*)","G*(f*)","wU*()","a6(f*,f*)","~(f?)","f*(qq*)","~(au*)","rN(cB)","f(f?)","a6(aK*)","f?()","p(ij)","~(pJ?)","km?(ij)","km?(ej)","p(ej,ej)","v(v)","kd()","p(p,z)","no*(S*)","ot*(S*)","mq*(S*)","my*(S*)","pk(cB)","W*(eP*)","eP*(@)","pY(cB)","~(f,jF)","W*(dO*)","W*(dN*)","W*(dZ*)","W*(dS*)","W*(eG*)","dO*(@)","dN*(@)","dZ*(@)","dS*(@)","eG*(@)","h*(S*,W*>*)","n8*(S*,W*>*)","nn*(S*,W*>*)","qd(cB)","~(f*,p*)","a6(cw*)","fG*(v*)","h*(cw*)","ow*(S*,eW*)","~(jN)","v*(dN*)","@(bt)","jC*(f*)","ay*(S*,eX*)","a6(k8)","v*(dO*)","fl*(f5*)","mE*(S*)","p(iU,iU)","a0*(S*,eE*)","a6(S*,ei*)","a6(v*)","f*(dZ*)","bt()","v*(dS*)","nR*(S*,ei*)","v*(eG*)","f*(dS*)","f*(dN*)","f*(dO*)","a6(eP*)","~(jZ,iU)","a6(jg*)","fG*(eP*)","fl*(jg*)","@(er)","v*(dZ*)","fG*(@)","a6(f*,O*)","fl*(f*)","a6(n1)","h*(@)","~(ab)","ab()","f?(hV)","@(ab)","~(ao?,bF?,ao,z,bA)","0^(ao?,bF?,ao,0^())","0^(ao?,bF?,ao,0^(1^),1^)","0^(ao?,bF?,ao,0^(1^,2^),1^,2^)","0^()(ao,bF,ao,0^())","0^(1^)(ao,bF,ao,0^(1^))","0^(1^,2^)(ao,bF,ao,0^(1^,2^))","mu?(ao,bF,ao,z,bA?)","~(ao?,bF?,ao,~())","hl(ao,bF,ao,aK,~())","hl(ao,bF,ao,aK,~(hl))","~(ao,bF,ao,f)","ao(ao?,bF?,ao,a8c?,W?)","p(bi<@>,bi<@>)","lH()","z?(z?)","z?(@)","0^(0^,0^)","Q?(Q?,Q?,O)","O?(bG?,bG?,O)","C?(C?,C?,O)","p*(p*,@)","~(bK)","~(bK{forceReport:G})","i7?(f)","O(O,O,O)","dr?(dr?,dr?,O)","ax>?>(f?)","w?(w?,w?,O)","p(jh<@>,jh<@>)","G({priority!p,scheduler!i4})","f(bX)","v(f)","p(au,au)","v>(iO,f)","p(h,p)","l(l)","~()*(G2*>*,cI<@>*)","G*(@)","~(f?{wrapWidth:p?})","W<~(br),b8?>()"],interceptorsByTag:null,leafTags:null,arrayRti:typeof Symbol=="function"&&typeof Symbol()=="symbol"?Symbol("$ti"):"$ti"} H.aCC(v.typeUniverse,JSON.parse('{"mB":"P","rf":"P","ro":"P","rl":"P","rh":"P","ri":"P","rc":"P","rd":"P","rb":"P","rj":"P","rg":"P","ra":"P","rk":"P","re":"P","rp":"P","o1":"P","lH":"P","k9":"P","o4":"P","o3":"P","o2":"P","o6":"P","o7":"P","o9":"P","rn":"P","rm":"P","o8":"P","yu":"P","ka":"P","o5":"P","k8":"P","ni":"P","TR":"P","TS":"P","Ur":"P","a5T":"P","a5H":"P","a5h":"P","a5f":"P","a5e":"P","a5g":"P","a4V":"P","a4U":"P","a5L":"P","a5I":"P","a5C":"P","a5D":"P","a5R":"P","a5Q":"P","a5B":"P","a5A":"P","a50":"P","a57":"P","a5w":"P","a5v":"P","a4Z":"P","a5F":"P","a5q":"P","a4Y":"P","a5G":"P","a5a":"P","a5O":"P","a59":"P","a58":"P","a5o":"P","a5n":"P","a4X":"P","a4W":"P","a53":"P","a52":"P","a5E":"P","a5m":"P","a51":"P","a5j":"P","a5i":"P","a5u":"P","acU":"P","a5b":"P","a55":"P","a54":"P","a5x":"P","a5_":"P","a5s":"P","a5r":"P","a5t":"P","Jh":"P","a5K":"P","a5J":"P","a5z":"P","a5y":"P","Jj":"P","Ji":"P","Jg":"P","a5c":"P","Jf":"P","a7y":"P","a5l":"P","a5M":"P","a5N":"P","a5S":"P","a5P":"P","a5d":"P","a7z":"P","ZF":"P","a5p":"P","a56":"P","a5k":"P","HH":"P","j6":"P","iK":"P","ZK":"P","aGu":"ah","aGs":"am","aH7":"am","aId":"f7","aGA":"ab","aHu":"a8","aGY":"a8","aH9":"jA","aGK":"kj","aGt":"ec","aHt":"j9","aGE":"iA","aHF":"iA","aHa":"n9","aGL":"cb","aGB":"kP","aGz":"nt","ez":{"dG":["1"]},"dv":{"cM":[]},"pk":{"fF":[]},"pY":{"fF":[]},"q0":{"fF":[]},"q9":{"fF":[]},"qd":{"fF":[]},"qZ":{"fF":[]},"rI":{"fF":[]},"rN":{"fF":[]},"pd":{"cc":[]},"I_":{"hC":[]},"E7":{"ct":[]},"E4":{"ct":[]},"E5":{"ct":[]},"Ec":{"ct":[]},"E9":{"ct":[]},"E6":{"ct":[]},"Eb":{"ct":[]},"DP":{"ct":[]},"DO":{"ct":[]},"DN":{"ct":[]},"DT":{"ct":[]},"DU":{"ct":[]},"DZ":{"ct":[]},"DY":{"ct":[]},"DR":{"ct":[]},"DQ":{"ct":[]},"DW":{"ct":[]},"E_":{"ct":[]},"DS":{"ct":[]},"DV":{"ct":[]},"DX":{"ct":[]},"E8":{"ct":[]},"Jm":{"bC":[]},"AI":{"ez":["o2"],"dG":["o2"]},"x1":{"l":["hZ"],"l.E":"hZ"},"FY":{"cc":[]},"DM":{"ez":["o1"],"dG":["o1"],"l0":[]},"D6":{"w2":[]},"pw":{"ex":[]},"IE":{"ex":[]},"Ef":{"ex":[],"Uh":[]},"Ej":{"ex":[],"Uj":[]},"Eg":{"ex":[],"Ui":[]},"H2":{"ex":[],"a0F":[]},"zi":{"ex":[],"Ki":[]},"H0":{"ex":[],"Ki":[],"a0C":[]},"HF":{"ex":[]},"HD":{"ex":[],"a19":[]},"E1":{"ez":["o3"],"dG":["o3"]},"pl":{"ez":["o4"],"dG":["o4"],"aka":[]},"pm":{"ez":["o6"],"dG":["o6"],"akb":[]},"vb":{"ez":["o7"],"dG":["o7"]},"pn":{"ez":["k9"],"dG":["k9"]},"E0":{"pn":[],"ez":["k9"],"dG":["k9"]},"rq":{"dG":["2"]},"va":{"ez":["o5"],"dG":["o5"]},"DE":{"bC":[]},"xp":{"dv":[],"cM":[],"Uj":[]},"Hx":{"dv":[],"cM":[],"Ui":[]},"xs":{"dv":[],"cM":[],"a19":[]},"xo":{"dv":[],"cM":[],"Uh":[]},"xq":{"dv":[],"cM":[],"a0C":[]},"xr":{"dv":[],"cM":[],"a0F":[]},"aR":{"aka":[]},"oe":{"akb":[]},"HA":{"cM":[]},"vF":{"cL":[]},"xl":{"cL":[]},"Hj":{"cL":[]},"Hn":{"cL":[]},"Hl":{"cL":[]},"Hk":{"cL":[]},"Hm":{"cL":[]},"H9":{"cL":[]},"H8":{"cL":[]},"H7":{"cL":[]},"Hd":{"cL":[]},"Hh":{"cL":[]},"Hg":{"cL":[]},"Hb":{"cL":[]},"Ha":{"cL":[]},"Hf":{"cL":[]},"Hi":{"cL":[]},"Hc":{"cL":[]},"He":{"cL":[]},"xt":{"dv":[],"cM":[]},"FP":{"vL":[]},"Hz":{"cM":[]},"xu":{"dv":[],"cM":[],"Ki":[]},"FU":{"l0":[]},"FT":{"l0":[]},"yt":{"w2":[]},"jl":{"J":["1"],"v":["1"],"M":["1"],"l":["1"]},"Nh":{"jl":["p"],"J":["p"],"v":["p"],"M":["p"],"l":["p"]},"Kn":{"jl":["p"],"J":["p"],"v":["p"],"M":["p"],"l":["p"],"J.E":"p","jl.E":"p"},"DF":{"Wr":[]},"Fx":{"aoX":[]},"DJ":{"rB":[]},"IF":{"rB":[]},"oc":{"xH":[]},"mM":{"Wr":[]},"Fa":{"mX":[]},"Fd":{"mX":[]},"P":{"ajJ":[],"mB":[],"rf":[],"ro":[],"rl":[],"rh":[],"ri":[],"rc":[],"rd":[],"rb":[],"rj":[],"rg":[],"ra":[],"rk":[],"re":[],"rp":[],"o1":[],"lH":[],"k9":[],"o4":[],"o3":[],"o2":[],"o6":[],"o7":[],"o9":[],"rn":[],"rm":[],"o8":[],"yu":[],"ka":[],"o5":[],"k8":[],"ni":[]},"wn":{"G":[]},"q5":{"a6":[]},"o":{"v":["1"],"M":["1"],"l":["1"],"aQ":["1"]},"ZE":{"o":["1"],"v":["1"],"M":["1"],"l":["1"],"aQ":["1"]},"lh":{"O":[],"bG":[],"bi":["bG"]},"q4":{"O":[],"p":[],"bG":[],"bi":["bG"]},"wo":{"O":[],"bG":[],"bi":["bG"]},"jK":{"f":[],"bi":["f"],"Hu":[],"aQ":["@"]},"M":{"l":["1"]},"kp":{"l":["2"]},"mC":{"kp":["1","2"],"l":["2"],"l.E":"2"},"A5":{"mC":["1","2"],"kp":["1","2"],"M":["2"],"l":["2"],"l.E":"2"},"zH":{"J":["2"],"v":["2"],"kp":["1","2"],"M":["2"],"l":["2"]},"cm":{"zH":["1","2"],"J":["2"],"v":["2"],"kp":["1","2"],"M":["2"],"l":["2"],"J.E":"2","l.E":"2"},"mD":{"aC":["3","4"],"W":["3","4"],"aC.K":"3","aC.V":"4"},"jO":{"bC":[]},"HX":{"bC":[]},"hD":{"J":["p"],"v":["p"],"M":["p"],"l":["p"],"J.E":"p"},"xc":{"bC":[]},"av":{"M":["1"],"l":["1"]},"fL":{"av":["1"],"M":["1"],"l":["1"],"av.E":"1","l.E":"1"},"ft":{"l":["2"],"l.E":"2"},"mN":{"ft":["1","2"],"M":["2"],"l":["2"],"l.E":"2"},"Z":{"av":["2"],"M":["2"],"l":["2"],"av.E":"2","l.E":"2"},"aO":{"l":["1"],"l.E":"1"},"fn":{"l":["2"],"l.E":"2"},"oh":{"l":["1"],"l.E":"1"},"vG":{"oh":["1"],"M":["1"],"l":["1"],"l.E":"1"},"kb":{"l":["1"],"l.E":"1"},"pK":{"kb":["1"],"M":["1"],"l":["1"],"l.E":"1"},"yx":{"l":["1"],"l.E":"1"},"mO":{"M":["1"],"l":["1"],"l.E":"1"},"n0":{"l":["1"],"l.E":"1"},"fP":{"l":["1"],"l.E":"1"},"rY":{"J":["1"],"v":["1"],"M":["1"],"l":["1"]},"bI":{"av":["1"],"M":["1"],"l":["1"],"av.E":"1","l.E":"1"},"of":{"rE":[]},"vk":{"kl":["1","2"],"qg":["1","2"],"BY":["1","2"],"W":["1","2"]},"pv":{"W":["1","2"]},"bs":{"pv":["1","2"],"W":["1","2"]},"zP":{"l":["1"],"l.E":"1"},"cS":{"pv":["1","2"],"W":["1","2"]},"G5":{"n3":[]},"wh":{"n3":[]},"xe":{"jU":[],"bC":[]},"Gb":{"jU":[],"bC":[]},"Ks":{"bC":[]},"GW":{"cc":[]},"BB":{"bA":[]},"e9":{"n3":[]},"K1":{"n3":[]},"JM":{"n3":[]},"pj":{"n3":[]},"IN":{"bC":[]},"cU":{"aC":["1","2"],"a_f":["1","2"],"W":["1","2"],"aC.K":"1","aC.V":"2"},"wA":{"M":["1"],"l":["1"],"l.E":"1"},"q6":{"api":[],"Hu":[]},"tK":{"a24":[],"hV":[]},"KT":{"l":["a24"],"l.E":"a24"},"ke":{"hV":[]},"PT":{"l":["hV"],"l.E":"hV"},"nx":{"kW":[]},"dg":{"cC":[]},"x2":{"dg":[],"bX":[],"cC":[]},"qm":{"b1":["1"],"dg":[],"cC":[],"aQ":["1"]},"lq":{"J":["O"],"b1":["O"],"v":["O"],"dg":[],"M":["O"],"cC":[],"aQ":["O"],"l":["O"]},"fy":{"J":["p"],"b1":["p"],"v":["p"],"dg":[],"M":["p"],"cC":[],"aQ":["p"],"l":["p"]},"x3":{"lq":[],"J":["O"],"b1":["O"],"v":["O"],"dg":[],"M":["O"],"cC":[],"aQ":["O"],"l":["O"],"J.E":"O"},"x4":{"lq":[],"J":["O"],"X1":[],"b1":["O"],"v":["O"],"dg":[],"M":["O"],"cC":[],"aQ":["O"],"l":["O"],"J.E":"O"},"GO":{"fy":[],"J":["p"],"b1":["p"],"v":["p"],"dg":[],"M":["p"],"cC":[],"aQ":["p"],"l":["p"],"J.E":"p"},"x5":{"fy":[],"J":["p"],"Zt":[],"b1":["p"],"v":["p"],"dg":[],"M":["p"],"cC":[],"aQ":["p"],"l":["p"],"J.E":"p"},"GP":{"fy":[],"J":["p"],"b1":["p"],"v":["p"],"dg":[],"M":["p"],"cC":[],"aQ":["p"],"l":["p"],"J.E":"p"},"GQ":{"fy":[],"J":["p"],"b1":["p"],"v":["p"],"dg":[],"M":["p"],"cC":[],"aQ":["p"],"l":["p"],"J.E":"p"},"x6":{"fy":[],"J":["p"],"b1":["p"],"v":["p"],"dg":[],"M":["p"],"cC":[],"aQ":["p"],"l":["p"],"J.E":"p"},"x7":{"fy":[],"J":["p"],"b1":["p"],"v":["p"],"dg":[],"M":["p"],"cC":[],"aQ":["p"],"l":["p"],"J.E":"p"},"ny":{"fy":[],"J":["p"],"fO":[],"b1":["p"],"v":["p"],"dg":[],"M":["p"],"cC":[],"aQ":["p"],"l":["p"],"J.E":"p"},"BU":{"f9":[]},"Ms":{"bC":[]},"BV":{"bC":[]},"mu":{"bC":[]},"a1":{"ax":["1"]},"d_":{"eg":["1"],"d_.T":"1"},"BR":{"hl":[]},"BH":{"l":["1"],"l.E":"1"},"ko":{"lV":["1"],"oO":["1"],"bg":["1"],"bg.T":"1"},"ox":{"lW":["1"],"d_":["1"],"eg":["1"],"d_.T":"1"},"BG":{"lU":["1"]},"zz":{"lU":["1"]},"aH":{"zL":["1"]},"yJ":{"bg":["1"]},"t4":{"Lb":["1"],"u4":["1"]},"m8":{"u4":["1"]},"lV":{"oO":["1"],"bg":["1"],"bg.T":"1"},"lW":{"d_":["1"],"eg":["1"],"d_.T":"1"},"BE":{"t2":["1"]},"oO":{"bg":["1"]},"Ag":{"oO":["1"],"bg":["1"],"bg.T":"1"},"th":{"eg":["1"]},"Af":{"bg":["2"]},"tt":{"d_":["2"],"eg":["2"],"d_.T":"2"},"oG":{"Af":["1","2"],"bg":["2"],"bg.T":"2"},"oQ":{"a8c":[]},"ub":{"bF":[]},"oP":{"ao":[]},"LY":{"ao":[]},"Pg":{"ao":[]},"f0":{"ih":["f0<1>"]},"e1":{"bm":["1","2"]},"ks":{"aC":["1","2"],"W":["1","2"],"aC.K":"1","aC.V":"2"},"oE":{"ks":["1","2"],"aC":["1","2"],"W":["1","2"],"aC.K":"1","aC.V":"2"},"zW":{"ks":["1","2"],"aC":["1","2"],"W":["1","2"],"aC.K":"1","aC.V":"2"},"kt":{"M":["1"],"l":["1"],"l.E":"1"},"AF":{"cU":["1","2"],"aC":["1","2"],"a_f":["1","2"],"W":["1","2"],"aC.K":"1","aC.V":"2"},"tG":{"cU":["1","2"],"aC":["1","2"],"a_f":["1","2"],"W":["1","2"],"aC.K":"1","aC.V":"2"},"lY":{"oL":["1"],"cQ":["1"],"d3":["1"],"M":["1"],"l":["1"],"cQ.E":"1"},"hs":{"oL":["1"],"cQ":["1"],"d3":["1"],"M":["1"],"l":["1"],"cQ.E":"1"},"wi":{"l":["1"]},"a7":{"l":["1"],"l.E":"1"},"wB":{"J":["1"],"v":["1"],"M":["1"],"l":["1"]},"wJ":{"aC":["1","2"],"W":["1","2"]},"aC":{"W":["1","2"]},"AJ":{"M":["2"],"l":["2"],"l.E":"2"},"qg":{"W":["1","2"]},"kl":{"qg":["1","2"],"BY":["1","2"],"W":["1","2"]},"kr":{"f0":["1"],"ih":["f0<1>"]},"zZ":{"kr":["1"],"f0":["1"],"ih":["f0<1>"],"ih.0":"f0<1>"},"oB":{"kr":["1"],"f0":["1"],"ih":["f0<1>"],"ih.0":"f0<1>"},"vD":{"M":["1"],"l":["1"],"l.E":"1"},"wC":{"av":["1"],"M":["1"],"l":["1"],"av.E":"1","l.E":"1"},"oL":{"cQ":["1"],"d3":["1"],"M":["1"],"l":["1"]},"fg":{"oL":["1"],"cQ":["1"],"d3":["1"],"M":["1"],"l":["1"],"cQ.E":"1"},"yD":{"aC":["1","2"],"W":["1","2"],"aC.K":"1","aC.V":"2"},"ky":{"M":["1"],"l":["1"],"l.E":"1"},"oN":{"M":["2"],"l":["2"],"l.E":"2"},"Bw":{"M":["bm<1,2>"],"l":["bm<1,2>"],"l.E":"bm<1,2>"},"cE":{"u3":["1","2","1"]},"BA":{"u3":["1","e1<1,2>","2"]},"oM":{"u3":["1","e1<1,2>","bm<1,2>"]},"ry":{"cQ":["1"],"d3":["1"],"wl":["1"],"M":["1"],"l":["1"],"cQ.E":"1"},"Nl":{"aC":["f","@"],"W":["f","@"],"aC.K":"f","aC.V":"@"},"Nm":{"av":["f"],"M":["f"],"l":["f"],"av.E":"f","l.E":"f"},"Dd":{"mP":[]},"wq":{"bC":[]},"Gc":{"bC":[]},"Gf":{"mP":[]},"Kx":{"mP":[]},"er":{"bi":["er"]},"O":{"bG":[],"bi":["bG"]},"aK":{"bi":["aK"]},"p":{"bG":[],"bi":["bG"]},"v":{"M":["1"],"l":["1"]},"bG":{"bi":["bG"]},"a24":{"hV":[]},"d3":{"M":["1"],"l":["1"]},"f":{"bi":["f"],"Hu":[]},"mt":{"bC":[]},"Kl":{"bC":[]},"GV":{"bC":[]},"hx":{"bC":[]},"qF":{"bC":[]},"G_":{"bC":[]},"jU":{"bC":[]},"Ku":{"bC":[]},"Kq":{"bC":[]},"hg":{"bC":[]},"Er":{"bC":[]},"H4":{"bC":[]},"yH":{"bC":[]},"ED":{"bC":[]},"Mt":{"cc":[]},"h6":{"cc":[]},"PX":{"bA":[]},"y9":{"l":["p"],"l.E":"p"},"C_":{"km":[]},"ht":{"km":[]},"M_":{"km":[]},"ab":{"aE":[],"a8":[]},"kX":{"ab":[],"aE":[],"a8":[]},"aE":{"a8":[]},"et":{"kR":[]},"jF":{"ab":[],"aE":[],"a8":[]},"jN":{"ah":[]},"lo":{"ab":[],"aE":[],"a8":[]},"eC":{"ah":[]},"k1":{"eC":[],"ah":[]},"f7":{"ah":[]},"lP":{"ah":[]},"kj":{"ah":[]},"tA":{"iP":[]},"p7":{"ab":[],"aE":[],"a8":[]},"Dc":{"ab":[],"aE":[],"a8":[]},"Dm":{"ah":[]},"kP":{"ah":[]},"ph":{"ab":[],"aE":[],"a8":[]},"mv":{"ab":[],"aE":[],"a8":[]},"DB":{"ab":[],"aE":[],"a8":[]},"iA":{"a8":[]},"px":{"cb":[]},"pz":{"eI":[]},"EL":{"j9":[]},"EX":{"ab":[],"aE":[],"a8":[]},"vz":{"ab":[],"aE":[],"a8":[]},"jA":{"a8":[]},"vB":{"J":["hd"],"az":["hd"],"v":["hd"],"b1":["hd"],"M":["hd"],"l":["hd"],"aQ":["hd"],"az.E":"hd","J.E":"hd"},"vC":{"hd":["bG"]},"F4":{"J":["f"],"az":["f"],"v":["f"],"b1":["f"],"M":["f"],"l":["f"],"aQ":["f"],"az.E":"f","J.E":"f"},"Lw":{"J":["aE"],"v":["aE"],"M":["aE"],"l":["aE"],"J.E":"aE"},"oD":{"J":["1"],"v":["1"],"M":["1"],"l":["1"],"J.E":"1"},"F7":{"ab":[],"aE":[],"a8":[]},"ec":{"ah":[]},"Fq":{"ab":[],"aE":[],"a8":[]},"pN":{"J":["et"],"az":["et"],"v":["et"],"b1":["et"],"M":["et"],"l":["et"],"aQ":["et"],"az.E":"et","J.E":"et"},"n9":{"J":["a8"],"az":["a8"],"v":["a8"],"b1":["a8"],"M":["a8"],"l":["a8"],"aQ":["a8"],"az.E":"a8","J.E":"a8"},"FV":{"ab":[],"aE":[],"a8":[]},"nc":{"ab":[],"aE":[],"a8":[]},"nf":{"ab":[],"aE":[],"a8":[]},"wu":{"ab":[],"aE":[],"a8":[]},"wz":{"ab":[],"aE":[],"a8":[]},"Gx":{"ab":[],"aE":[],"a8":[]},"nt":{"ab":[],"aE":[],"a8":[]},"ql":{"ah":[]},"GF":{"aC":["f","@"],"W":["f","@"],"aC.K":"f","aC.V":"@"},"GG":{"aC":["f","@"],"W":["f","@"],"aC.K":"f","aC.V":"@"},"GH":{"J":["fw"],"az":["fw"],"v":["fw"],"b1":["fw"],"M":["fw"],"l":["fw"],"aQ":["fw"],"az.E":"fw","J.E":"fw"},"dx":{"J":["a8"],"v":["a8"],"M":["a8"],"l":["a8"],"J.E":"a8"},"qp":{"J":["a8"],"az":["a8"],"v":["a8"],"b1":["a8"],"M":["a8"],"l":["a8"],"aQ":["a8"],"az.E":"a8","J.E":"a8"},"GY":{"ab":[],"aE":[],"a8":[]},"H5":{"ab":[],"aE":[],"a8":[]},"xm":{"ab":[],"aE":[],"a8":[]},"Hq":{"ab":[],"aE":[],"a8":[]},"HJ":{"J":["fB"],"az":["fB"],"v":["fB"],"b1":["fB"],"M":["fB"],"l":["fB"],"aQ":["fB"],"az.E":"fB","J.E":"fB"},"HL":{"ah":[]},"IM":{"aC":["f","@"],"W":["f","@"],"aC.K":"f","aC.V":"@"},"yc":{"ab":[],"aE":[],"a8":[]},"J0":{"ab":[],"aE":[],"a8":[]},"J9":{"j9":[]},"Jv":{"ab":[],"aE":[],"a8":[]},"JB":{"J":["fI"],"az":["fI"],"v":["fI"],"b1":["fI"],"M":["fI"],"l":["fI"],"aQ":["fI"],"az.E":"fI","J.E":"fI"},"rx":{"ab":[],"aE":[],"a8":[]},"JH":{"J":["fJ"],"az":["fJ"],"v":["fJ"],"b1":["fJ"],"M":["fJ"],"l":["fJ"],"aQ":["fJ"],"az.E":"fJ","J.E":"fJ"},"JI":{"ah":[]},"yI":{"aC":["f","f"],"W":["f","f"],"aC.K":"f","aC.V":"f"},"yM":{"ab":[],"aE":[],"a8":[]},"yT":{"ab":[],"aE":[],"a8":[]},"JZ":{"ab":[],"aE":[],"a8":[]},"K_":{"ab":[],"aE":[],"a8":[]},"rJ":{"ab":[],"aE":[],"a8":[]},"rK":{"ab":[],"aE":[],"a8":[]},"K9":{"J":["eN"],"az":["eN"],"v":["eN"],"b1":["eN"],"M":["eN"],"l":["eN"],"aQ":["eN"],"az.E":"eN","J.E":"eN"},"Ka":{"J":["fM"],"az":["fM"],"v":["fM"],"b1":["fM"],"M":["fM"],"l":["fM"],"aQ":["fM"],"az.E":"fM","J.E":"fM"},"zg":{"J":["fN"],"az":["fN"],"v":["fN"],"b1":["fN"],"M":["fN"],"l":["fN"],"aQ":["fN"],"az.E":"fN","J.E":"fN"},"KB":{"ab":[],"aE":[],"a8":[]},"KF":{"eN":[]},"ou":{"eC":[],"ah":[]},"t5":{"a8":[]},"LM":{"J":["cb"],"az":["cb"],"v":["cb"],"b1":["cb"],"M":["cb"],"l":["cb"],"aQ":["cb"],"az.E":"cb","J.E":"cb"},"zY":{"hd":["bG"]},"N_":{"J":["fq?"],"az":["fq?"],"v":["fq?"],"b1":["fq?"],"M":["fq?"],"l":["fq?"],"aQ":["fq?"],"az.E":"fq?","J.E":"fq?"},"AU":{"J":["a8"],"az":["a8"],"v":["a8"],"b1":["a8"],"M":["a8"],"l":["a8"],"aQ":["a8"],"az.E":"a8","J.E":"a8"},"PK":{"J":["fK"],"az":["fK"],"v":["fK"],"b1":["fK"],"M":["fK"],"l":["fK"],"aQ":["fK"],"az.E":"fK","J.E":"fK"},"Q_":{"J":["eI"],"az":["eI"],"v":["eI"],"b1":["eI"],"M":["eI"],"l":["eI"],"aQ":["eI"],"az.E":"eI","J.E":"eI"},"Lc":{"aC":["f","f"],"W":["f","f"]},"A6":{"aC":["f","f"],"W":["f","f"],"aC.K":"f","aC.V":"f"},"jc":{"bg":["1"],"bg.T":"1"},"ii":{"jc":["1"],"bg":["1"],"bg.T":"1"},"tp":{"eg":["1"]},"xb":{"iP":[]},"Bt":{"iP":[]},"Qe":{"iP":[]},"Q0":{"iP":[]},"Ft":{"J":["aE"],"v":["aE"],"M":["aE"],"l":["aE"],"J.E":"aE"},"Kz":{"ah":[]},"nh":{"J":["1"],"v":["1"],"M":["1"],"l":["1"],"J.E":"1"},"GU":{"cc":[]},"hd":{"aIc":["1"]},"Gl":{"J":["hT"],"az":["hT"],"v":["hT"],"M":["hT"],"l":["hT"],"az.E":"hT","J.E":"hT"},"GX":{"J":["i_"],"az":["i_"],"v":["i_"],"M":["i_"],"l":["i_"],"az.E":"i_","J.E":"i_"},"qW":{"am":[],"aE":[],"a8":[]},"JR":{"J":["f"],"az":["f"],"v":["f"],"M":["f"],"l":["f"],"az.E":"f","J.E":"f"},"am":{"aE":[],"a8":[]},"Kj":{"J":["i9"],"az":["i9"],"v":["i9"],"M":["i9"],"l":["i9"],"az.E":"i9","J.E":"i9"},"bX":{"cC":[]},"az5":{"v":["p"],"M":["p"],"l":["p"],"cC":[]},"fO":{"v":["p"],"M":["p"],"l":["p"],"cC":[]},"aBx":{"v":["p"],"M":["p"],"l":["p"],"cC":[]},"az4":{"v":["p"],"M":["p"],"l":["p"],"cC":[]},"aBv":{"v":["p"],"M":["p"],"l":["p"],"cC":[]},"Zt":{"v":["p"],"M":["p"],"l":["p"],"cC":[]},"aBw":{"v":["p"],"M":["p"],"l":["p"],"cC":[]},"ayF":{"v":["O"],"M":["O"],"l":["O"],"cC":[]},"X1":{"v":["O"],"M":["O"],"l":["O"],"cC":[]},"Jd":{"mX":[]},"Dh":{"aC":["f","@"],"W":["f","@"],"aC.K":"f","aC.V":"@"},"JK":{"J":["W<@,@>"],"az":["W<@,@>"],"v":["W<@,@>"],"M":["W<@,@>"],"l":["W<@,@>"],"az.E":"W<@,@>","J.E":"W<@,@>"},"bJ":{"cI":["2*"],"bg":["2*"]},"ju":{"ju.0":"1"},"cI":{"bg":["1*"]},"ia":{"ju":["2*"],"ju.0":"2*"},"hh":{"anC":[],"l":["f"],"l.E":"f"},"bf":{"W":["2","3"]},"r3":{"u9":["1","d3<1>?"],"u9.E":"1"},"II":{"cc":[]},"ca":{"aq":[]},"pa":{"ca":["O"],"aq":[]},"KV":{"ca":["O"],"aq":[]},"KW":{"ca":["O"],"aq":[]},"xC":{"ca":["O"],"aq":[]},"i1":{"ca":["O"],"aq":[]},"vs":{"ca":["O"],"aq":[]},"or":{"ca":["O"],"aq":[]},"ps":{"ca":["1"],"aq":[]},"uC":{"ca":["1"],"aq":[]},"AE":{"hI":[]},"iI":{"hI":[]},"z7":{"hI":[]},"hH":{"hI":[]},"mU":{"hI":[]},"M0":{"hI":[]},"aM":{"aJ":["1"],"aJ.T":"1","aM.T":"1"},"hE":{"aM":["C?"],"aJ":["C?"],"aJ.T":"C?","aM.T":"C?"},"xL":{"aM":["x?"],"aJ":["x?"],"aJ.T":"x?","aM.T":"x?"},"b3":{"ca":["1"],"aq":[]},"kq":{"aJ":["1"],"aJ.T":"1"},"y3":{"aM":["1"],"aJ":["1"],"aJ.T":"1","aM.T":"1"},"q3":{"aM":["p"],"aJ":["p"],"aJ.T":"p","aM.T":"p"},"jy":{"aJ":["O"],"aJ.T":"O"},"dq":{"C":[]},"ayd":{"bq":[],"b2":[],"h":[]},"LR":{"ey":["UY"],"ey.T":"UY"},"EN":{"UY":[]},"tc":{"a0":[],"h":[]},"vo":{"vp":["1"],"dE":["1"],"d4":["1"],"c4":["1"],"dE.T":"1"},"Ex":{"ay":[],"h":[]},"Ev":{"ay":[],"h":[]},"td":{"a2":["tc<1>"]},"ie":{"f_":[]},"LP":{"kS":[]},"pA":{"a0":[],"h":[]},"zU":{"iY":["pA"],"a2":["pA"]},"vq":{"a0":[],"h":[]},"zV":{"a2":["vq"]},"LS":{"ar":[],"h":[]},"OS":{"A":[],"aG":["A"],"r":[],"I":[]},"Qi":{"aq":[]},"Ap":{"bq":[],"b2":[],"h":[]},"EA":{"ay":[],"h":[]},"lX":{"es":["v"],"cz":[]},"pL":{"lX":[],"es":["v"],"cz":[]},"vO":{"lX":[],"es":["v"],"cz":[]},"Fg":{"lX":[],"es":["v"],"cz":[]},"Fh":{"es":["~"],"cz":[]},"mV":{"mt":[],"bC":[]},"MP":{"mI":["bK"],"cz":[]},"bn":{"nm":["bn"],"nm.E":"bn"},"jv":{"aq":[]},"cZ":{"aq":[]},"oH":{"aq":[]},"es":{"cz":[]},"mI":{"cz":[]},"EV":{"mI":["EU"],"cz":[]},"jR":{"ds":[]},"eQ":{"jR":[],"ds":[],"eQ.T":"1"},"wy":{"f3":[]},"by":{"l":["1"],"l.E":"1"},"w7":{"l":["1"],"l.E":"1"},"cX":{"ax":["1"]},"vW":{"bK":[]},"k2":{"br":[]},"lu":{"br":[]},"lv":{"br":[]},"k0":{"br":[]},"iX":{"br":[]},"KP":{"br":[]},"QI":{"br":[]},"nH":{"br":[]},"QE":{"nH":[],"br":[]},"nK":{"br":[]},"QM":{"nK":[],"br":[]},"QK":{"k2":[],"br":[]},"QH":{"lu":[],"br":[]},"QJ":{"lv":[],"br":[]},"QG":{"k0":[],"br":[]},"nJ":{"br":[]},"QL":{"nJ":[],"br":[]},"nM":{"br":[]},"QO":{"nM":[],"br":[]},"nL":{"iX":[],"br":[]},"QN":{"nL":[],"iX":[],"br":[]},"nI":{"br":[]},"QF":{"nI":[],"br":[]},"hM":{"cG":[],"cT":[]},"AP":{"u8":[]},"tQ":{"u8":[]},"f4":{"cG":[],"cT":[]},"vE":{"cG":[],"cT":[]},"id":{"cG":[],"cT":[]},"hO":{"cG":[],"cT":[]},"i0":{"cG":[],"cT":[]},"hJ":{"cG":[],"cT":[]},"cG":{"cT":[]},"xf":{"cG":[],"cT":[]},"qC":{"cG":[],"cT":[]},"uN":{"cG":[],"cT":[]},"eK":{"cG":[],"cT":[]},"pV":{"j8":[]},"wM":{"a0":[],"h":[]},"AK":{"a2":["wM"]},"uG":{"a0":[],"h":[]},"zy":{"a2":["uG"]},"L6":{"b9":[],"ar":[],"h":[]},"OQ":{"A":[],"aG":["A"],"r":[],"I":[]},"qj":{"aM":["x?"],"aJ":["x?"],"aJ.T":"x?","aM.T":"x?"},"wQ":{"aM":["m"],"aJ":["m"],"aJ.T":"m","aM.T":"m"},"Dl":{"ay":[],"h":[]},"Dk":{"ay":[],"h":[]},"En":{"ay":[],"h":[]},"xJ":{"a0":[],"h":[]},"B6":{"a2":["xJ"]},"Ng":{"b9":[],"ar":[],"h":[]},"OY":{"A":[],"aG":["A"],"r":[],"I":[]},"AC":{"df":["1?"]},"Ns":{"df":["dL?"]},"Nr":{"df":["jW?"]},"axP":{"ev":[],"bq":[],"b2":[],"h":[]},"AA":{"df":["1"]},"np":{"iB":["p"],"C":[],"iB.T":"p"},"Gy":{"iB":["p"],"C":[],"iB.T":"p"},"AB":{"df":["1"]},"tl":{"a0":[],"h":[]},"tk":{"a0":[],"h":[]},"tn":{"ay":[],"h":[]},"tM":{"b9":[],"ar":[],"h":[]},"Ml":{"ay":[],"h":[]},"jC":{"ay":[],"h":[]},"ayt":{"bq":[],"b2":[],"h":[]},"pG":{"a0":[],"h":[]},"Mm":{"aq":[]},"tm":{"a2":["tl<1>"]},"A0":{"a2":["tk<1>"]},"A1":{"dE":["hq<1>"],"d4":["hq<1>"],"c4":["hq<1>"],"dE.T":"hq<1>"},"P_":{"A":[],"aG":["A"],"r":[],"I":[]},"tj":{"a2":["pG<1>"],"fb":[]},"FB":{"bq":[],"b2":[],"h":[]},"FC":{"ay":[],"h":[]},"zx":{"ca":["1"],"aq":[]},"FW":{"ay":[],"h":[]},"lg":{"ng":[],"lf":[]},"wf":{"ng":[],"lf":[]},"ng":{"lf":[]},"B4":{"bq":[],"b2":[],"h":[]},"At":{"a0":[],"h":[]},"q2":{"ay":[],"h":[]},"As":{"a2":["At"],"akM":[]},"G3":{"ay":[],"h":[]},"hS":{"c5":[]},"kk":{"hS":[],"c5":[]},"zF":{"a0":[],"h":[]},"Aj":{"a0":[],"h":[]},"ne":{"a0":[],"h":[]},"Au":{"aq":[]},"Av":{"aM":["hS"],"aJ":["hS"],"aJ.T":"hS","aM.T":"hS"},"Ne":{"aq":[]},"Lg":{"a2":["zF"]},"Pw":{"a0":[],"h":[]},"Ak":{"a2":["Aj"]},"tZ":{"A":[],"r":[],"I":[]},"M2":{"a_":[],"au":[],"S":[]},"zX":{"ar":[],"h":[]},"Aw":{"a2":["ne"]},"wL":{"a0":[],"h":[]},"B9":{"A":[],"aG":["A"],"r":[],"I":[]},"nZ":{"aM":["c5?"],"aJ":["c5?"],"aJ.T":"c5?","aM.T":"c5?"},"AL":{"a0":[],"h":[]},"ND":{"a2":["wL"]},"Nd":{"b9":[],"ar":[],"h":[]},"NA":{"a2":["AL"]},"Br":{"ay":[],"h":[]},"Px":{"aq":[]},"wO":{"ay":[],"h":[]},"NB":{"ey":["wP"],"ey.T":"wP"},"EP":{"wP":[]},"GA":{"eB":[],"df":["eB"]},"A7":{"eB":[],"df":["eB"]},"fe":{"df":["1"]},"nq":{"wR":["1"],"dE":["1"],"d4":["1"],"c4":["1"],"dE.T":"1"},"MI":{"ay":[],"h":[]},"Fo":{"jY":[]},"Ey":{"jY":[]},"Az":{"df":["1"]},"HT":{"ay":[],"h":[]},"ya":{"a0":[],"h":[]},"Bl":{"bq":[],"b2":[],"h":[]},"A9":{"a0":[],"h":[]},"nR":{"a0":[],"h":[]},"qV":{"a2":["nR"]},"aCq":{"a0":[],"h":[]},"IQ":{"a2":["ya"]},"Pl":{"aq":[]},"zE":{"aN":[]},"Lf":{"ay":[],"h":[]},"Aa":{"a2":["A9"]},"Pm":{"bq":[],"b2":[],"h":[]},"yk":{"a0":[],"h":[]},"tL":{"a0":[],"h":[]},"Pp":{"a2":["yk"]},"NC":{"iY":["tL"],"a2":["tL"]},"AD":{"df":["1"]},"aB2":{"a0":[],"h":[]},"AN":{"a0":[],"h":[]},"JU":{"ay":[],"h":[]},"AO":{"a2":["AN"]},"BF":{"aq":[]},"Ay":{"df":["1"]},"aCr":{"bq":[],"b2":[],"h":[]},"yR":{"aq":[]},"lR":{"f_":[]},"QQ":{"kS":[]},"yP":{"a0":[],"h":[]},"JX":{"ay":[],"h":[]},"Qc":{"a0":[],"h":[]},"Qb":{"cO":["A","dB"],"A":[],"aD":["A","dB"],"r":[],"I":[],"aD.1":"dB","cO.1":"dB","aD.0":"A"},"Qa":{"eD":[],"ar":[],"h":[]},"Ao":{"aq":[]},"Lu":{"ca":["O"],"aq":[]},"ti":{"ca":["O"],"aq":[]},"Q8":{"j_":[],"fa":[],"aq":[]},"Q7":{"aq":[]},"BI":{"a2":["yP"]},"ok":{"a0":[],"h":[]},"BJ":{"a2":["ok"]},"z_":{"jG":["f"],"a0":[],"h":[],"jG.T":"f"},"u7":{"fo":["f"],"a2":["jG"]},"Qh":{"aq":[]},"aBl":{"ev":[],"bq":[],"b2":[],"h":[]},"Ar":{"ev":[],"bq":[],"b2":[],"h":[]},"on":{"aM":["hk"],"aJ":["hk"],"aJ.T":"hk","aM.T":"hk"},"uy":{"a0":[],"h":[]},"z6":{"ay":[],"h":[]},"L_":{"a2":["uy"]},"zc":{"aq":[]},"ze":{"a0":[],"h":[]},"BT":{"a2":["ze"]},"Qu":{"ay":[],"h":[]},"aBr":{"ev":[],"bq":[],"b2":[],"h":[]},"Q5":{"aq":[]},"jW":{"c5":[]},"hp":{"c5":[]},"Dw":{"c5":[]},"da":{"c5":[]},"e8":{"c5":[]},"dM":{"f_":[]},"t7":{"kS":[]},"eY":{"jW":[],"c5":[]},"iB":{"C":[]},"X":{"dr":[]},"fm":{"dr":[]},"m0":{"dr":[]},"Df":{"hR":["iw"]},"uK":{"hR":["iw"],"hR.T":"iw"},"ef":{"jW":[],"c5":[]},"eS":{"jW":[],"c5":[]},"rT":{"iH":[],"iN":[]},"h_":{"hN":[]},"vl":{"fj":[],"eZ":["1"]},"A":{"r":[],"I":[]},"uY":{"iF":[]},"h9":{"fj":[],"eZ":["A"]},"I7":{"cO":["A","h9"],"A":[],"aD":["A","h9"],"r":[],"I":[],"aD.1":"h9","cO.1":"h9","aD.0":"A"},"EC":{"aq":[]},"I8":{"A":[],"aG":["A"],"r":[],"I":[]},"lx":{"aq":[]},"nO":{"A":[],"r":[],"I":[]},"OU":{"A":[],"r":[],"I":[]},"BK":{"lx":[],"aq":[]},"Ab":{"lx":[],"aq":[]},"t8":{"lx":[],"aq":[]},"Ib":{"A":[],"r":[],"I":[]},"dB":{"fj":[],"eZ":["A"]},"qM":{"cO":["A","dB"],"A":[],"aD":["A","dB"],"r":[],"I":[],"aD.1":"dB","cO.1":"dB","aD.0":"A"},"If":{"A":[],"r":[],"I":[]},"wv":{"I":[]},"dP":{"I":[]},"HE":{"I":[]},"Hw":{"I":[]},"jV":{"dP":[],"I":[]},"vg":{"dP":[],"I":[]},"Eh":{"dP":[],"I":[]},"vf":{"dP":[],"I":[]},"rW":{"jV":[],"dP":[],"I":[]},"xg":{"dP":[],"I":[]},"xv":{"dP":[],"I":[]},"nl":{"dP":[],"I":[]},"w0":{"dP":[],"I":[]},"uE":{"dP":[],"I":[]},"GI":{"aq":[]},"r":{"I":[]},"Pf":{"lZ":[]},"Q3":{"lZ":[]},"KO":{"lZ":[]},"pD":{"es":["z"],"cz":[]},"j5":{"fj":[],"eZ":["A"]},"xU":{"cO":["A","j5"],"A":[],"aD":["A","j5"],"r":[],"I":[],"aD.1":"j5","cO.1":"j5","aD.0":"A"},"Io":{"A":[],"r":[],"I":[]},"It":{"A":[],"aG":["A"],"r":[],"I":[]},"Iu":{"A":[],"aG":["A"],"r":[],"I":[]},"vt":{"aq":[]},"nY":{"aq":[]},"xN":{"A":[],"aG":["A"],"r":[],"I":[]},"k7":{"A":[],"aG":["A"],"r":[],"I":[]},"xQ":{"A":[],"aG":["A"],"r":[],"I":[]},"Ii":{"A":[],"aG":["A"],"r":[],"I":[]},"Im":{"A":[],"aG":["A"],"r":[],"I":[]},"I3":{"A":[],"aG":["A"],"r":[],"I":[]},"tY":{"A":[],"aG":["A"],"r":[],"I":[]},"I6":{"A":[],"aG":["A"],"r":[],"I":[]},"I5":{"A":[],"aG":["A"],"r":[],"I":[]},"Bb":{"A":[],"aG":["A"],"r":[],"I":[]},"Ip":{"A":[],"aG":["A"],"r":[],"I":[]},"Iq":{"A":[],"aG":["A"],"r":[],"I":[]},"Ia":{"A":[],"aG":["A"],"r":[],"I":[]},"IA":{"A":[],"aG":["A"],"r":[],"I":[]},"Ie":{"A":[],"aG":["A"],"r":[],"I":[]},"Ir":{"A":[],"aG":["A"],"r":[],"I":[]},"Ik":{"A":[],"aG":["A"],"r":[],"iN":[],"I":[]},"Iv":{"A":[],"aG":["A"],"r":[],"I":[]},"xS":{"A":[],"aG":["A"],"r":[],"I":[]},"Il":{"A":[],"aG":["A"],"r":[],"I":[]},"xV":{"A":[],"aG":["A"],"r":[],"I":[]},"I4":{"A":[],"aG":["A"],"r":[],"I":[]},"Ij":{"A":[],"aG":["A"],"r":[],"I":[]},"Ic":{"A":[],"aG":["A"],"r":[],"I":[]},"Ig":{"A":[],"aG":["A"],"r":[],"I":[]},"Ih":{"A":[],"aG":["A"],"r":[],"I":[]},"Id":{"A":[],"aG":["A"],"r":[],"I":[]},"xP":{"A":[],"aG":["A"],"r":[],"I":[]},"Iw":{"A":[],"aG":["A"],"r":[],"I":[]},"In":{"A":[],"aG":["A"],"r":[],"I":[]},"I2":{"A":[],"aG":["A"],"r":[],"I":[]},"Is":{"A":[],"aG":["A"],"r":[],"I":[]},"I9":{"A":[],"aG":["A"],"r":[],"I":[]},"rs":{"hN":[]},"kc":{"ob":[],"eZ":["dj"]},"dj":{"r":[],"I":[]},"Jr":{"iF":[]},"Iy":{"qN":[],"dj":[],"aD":["A","j3"],"r":[],"I":[],"aD.1":"j3","aD.0":"A"},"j3":{"ob":[],"eZ":["A"],"jM":[]},"qN":{"dj":[],"aD":["A","j3"],"r":[],"I":[]},"xW":{"dj":[],"aG":["dj"],"r":[],"I":[]},"Iz":{"dj":[],"aG":["dj"],"r":[],"I":[]},"dl":{"fj":[],"eZ":["A"]},"qO":{"cO":["A","dl"],"A":[],"aD":["A","dl"],"r":[],"I":[],"aD.1":"dl","cO.1":"dl","aD.0":"A"},"xT":{"cO":["A","dl"],"A":[],"aD":["A","dl"],"r":[],"I":[],"aD.1":"dl","cO.1":"dl","aD.0":"A"},"lL":{"fj":[]},"Fw":{"rG":[]},"Fy":{"rG":[]},"xX":{"A":[],"r":[],"I":[]},"xY":{"aG":["A"],"r":[],"I":[]},"qP":{"jf":["1"],"A":[],"aD":["dj","1"],"I1":[],"r":[],"I":[]},"Ix":{"jf":["kc"],"A":[],"aD":["dj","kc"],"I1":[],"r":[],"I":[],"aD.1":"kc","jf.0":"kc","aD.0":"dj"},"fa":{"aq":[]},"oo":{"ax":["~"]},"z8":{"cc":[]},"bM":{"I":[]},"kn":{"bi":["kn"]},"im":{"bi":["im"]},"kz":{"bi":["kz"]},"r2":{"bi":["r2"]},"Ps":{"mI":["bM"],"cz":[]},"r1":{"aq":[]},"nD":{"bi":["r2"]},"xx":{"cc":[]},"wX":{"cc":[]},"M6":{"eB":[]},"Q6":{"x_":[]},"lJ":{"eB":[]},"qI":{"fD":[]},"xI":{"fD":[]},"y2":{"aq":[]},"Fu":{"ol":[]},"fZ":{"a0":[],"h":[]},"zu":{"bq":[],"b2":[],"h":[]},"n_":{"a0":[],"h":[]},"ayn":{"aP":[]},"aym":{"aP":[]},"kM":{"aP":[]},"kU":{"aP":[]},"mK":{"aP":[]},"qE":{"aP":[]},"c0":{"aX":["1"]},"iz":{"aX":["1"]},"zv":{"a2":["fZ"]},"Ad":{"a2":["n_"]},"F1":{"aX":["aP"]},"F_":{"aX":["mK"]},"HQ":{"aX":["qE"]},"uD":{"b9":[],"ar":[],"h":[]},"zq":{"a0":[],"h":[]},"AQ":{"a0":[],"h":[]},"C2":{"a2":["zq"],"fb":[]},"NE":{"a2":["AQ"],"fb":[]},"uL":{"a0":[],"h":[]},"zA":{"a2":["uL"]},"Gd":{"aq":[]},"O5":{"ay":[],"h":[]},"h2":{"bq":[],"b2":[],"h":[]},"pr":{"b9":[],"ar":[],"h":[]},"l4":{"b9":[],"ar":[],"h":[]},"wx":{"du":["h9"],"b2":[],"h":[],"du.T":"h9"},"mG":{"eD":[],"ar":[],"h":[]},"nN":{"du":["dl"],"b2":[],"h":[],"du.T":"dl"},"vS":{"eD":[],"ar":[],"h":[]},"fG":{"eD":[],"ar":[],"h":[]},"ayi":{"bq":[],"b2":[],"h":[]},"hY":{"a0":[],"h":[]},"hP":{"b9":[],"ar":[],"h":[]},"nV":{"b9":[],"ar":[],"h":[]},"H1":{"b9":[],"ar":[],"h":[]},"vu":{"b9":[],"ar":[],"h":[]},"Ei":{"b9":[],"ar":[],"h":[]},"Ee":{"b9":[],"ar":[],"h":[]},"HB":{"b9":[],"ar":[],"h":[]},"HC":{"b9":[],"ar":[],"h":[]},"zh":{"b9":[],"ar":[],"h":[]},"Eq":{"b9":[],"ar":[],"h":[]},"FK":{"b9":[],"ar":[],"h":[]},"ee":{"b9":[],"ar":[],"h":[]},"mo":{"b9":[],"ar":[],"h":[]},"v8":{"b9":[],"ar":[],"h":[]},"o0":{"b9":[],"ar":[],"h":[]},"hF":{"b9":[],"ar":[],"h":[]},"Gm":{"b9":[],"ar":[],"h":[]},"qr":{"b9":[],"ar":[],"h":[]},"O9":{"a_":[],"au":[],"S":[]},"Jt":{"b9":[],"ar":[],"h":[]},"rz":{"eD":[],"ar":[],"h":[]},"G1":{"eD":[],"ar":[],"h":[]},"HM":{"ay":[],"h":[]},"Ep":{"eD":[],"ar":[],"h":[]},"FA":{"du":["dB"],"b2":[],"h":[],"du.T":"dB"},"Fl":{"du":["dB"],"b2":[],"h":[],"du.T":"dB"},"ID":{"eD":[],"ar":[],"h":[]},"HV":{"ar":[],"h":[]},"Gr":{"b9":[],"ar":[],"h":[]},"AT":{"a2":["hY"]},"OM":{"b9":[],"ar":[],"h":[]},"he":{"b9":[],"ar":[],"h":[]},"D0":{"b9":[],"ar":[],"h":[]},"GE":{"b9":[],"ar":[],"h":[]},"Ds":{"b9":[],"ar":[],"h":[]},"mT":{"b9":[],"ar":[],"h":[]},"G0":{"b9":[],"ar":[],"h":[]},"q8":{"ay":[],"h":[]},"kT":{"ay":[],"h":[]},"vh":{"b9":[],"ar":[],"h":[]},"OR":{"A":[],"aG":["A"],"r":[],"I":[]},"ly":{"ar":[],"h":[]},"lz":{"a_":[],"au":[],"S":[]},"KI":{"i4":[]},"fl":{"ay":[],"h":[]},"EF":{"b9":[],"ar":[],"h":[]},"EQ":{"a0":[],"h":[]},"Me":{"c0":["mL"],"aX":["mL"]},"Mu":{"c0":["ajl"],"aX":["ajl"]},"Mv":{"c0":["ajm"],"aX":["ajm"]},"Mw":{"c0":["ajn"],"aX":["ajn"]},"Mx":{"c0":["ajo"],"aX":["ajo"]},"My":{"c0":["ajp"],"aX":["ajp"]},"Mz":{"c0":["ajq"],"aX":["ajq"]},"MA":{"c0":["ajr"],"aX":["ajr"]},"MB":{"c0":["ajs"],"aX":["ajs"]},"MC":{"c0":["ajt"],"aX":["ajt"]},"MD":{"c0":["aju"],"aX":["aju"]},"ME":{"c0":["ajv"],"aX":["ajv"]},"MF":{"c0":["ajw"],"aX":["ajw"]},"MG":{"c0":["ajx"],"aX":["ajx"]},"MH":{"c0":["ajy"],"aX":["ajy"]},"NO":{"c0":["ajZ"],"aX":["ajZ"]},"NR":{"c0":["ak1"],"aX":["ak1"]},"NU":{"c0":["ak4"],"aX":["ak4"]},"NX":{"c0":["ak7"],"aX":["ak7"]},"NP":{"c0":["ak_"],"aX":["ak_"]},"NQ":{"c0":["ak0"],"aX":["ak0"]},"NS":{"c0":["ak2"],"aX":["ak2"]},"NT":{"c0":["ak3"],"aX":["ak3"]},"NV":{"c0":["ak5"],"aX":["ak5"]},"NW":{"c0":["ak6"],"aX":["ak6"]},"ER":{"a0":[],"h":[]},"aL":{"cZ":["bb"],"aq":[]},"pH":{"a0":[],"h":[]},"pI":{"a2":["pH"],"fb":[],"apL":[]},"Mo":{"ar":[],"h":[]},"db":{"aq":[]},"la":{"db":[],"aq":[]},"vZ":{"aq":[]},"mY":{"a0":[],"h":[]},"Ac":{"fs":["db"],"bq":[],"b2":[],"h":[],"fs.T":"db"},"tq":{"a2":["mY"]},"FG":{"a0":[],"h":[]},"MW":{"a2":["mY"]},"w_":{"a0":[],"h":[]},"ts":{"bq":[],"b2":[],"h":[]},"apq":{"aP":[]},"qo":{"aP":[]},"qB":{"aP":[]},"mJ":{"aP":[]},"MX":{"a2":["w_"]},"IB":{"aX":["apq"]},"GT":{"aX":["qo"]},"HO":{"aX":["qB"]},"EZ":{"aX":["mJ"]},"w1":{"a0":[],"h":[]},"pR":{"a2":["w1"]},"Ae":{"bq":[],"b2":[],"h":[]},"jG":{"a0":[],"h":[]},"fo":{"a2":["jG<1>"]},"f2":{"ds":[]},"aY":{"f2":["1"],"ds":[]},"ay":{"h":[]},"a0":{"h":[]},"b2":{"h":[]},"du":{"b2":[],"h":[]},"bq":{"b2":[],"h":[]},"ar":{"h":[]},"b9":{"ar":[],"h":[]},"eD":{"ar":[],"h":[]},"au":{"S":[]},"vi":{"au":[],"S":[]},"dV":{"au":[],"S":[]},"eH":{"au":[],"S":[]},"k4":{"au":[],"S":[]},"co":{"au":[],"S":[]},"Kr":{"jR":[],"ds":[]},"lb":{"f2":["1"],"ds":[]},"Gj":{"ar":[],"h":[]},"Fi":{"ar":[],"h":[]},"nE":{"au":[],"S":[]},"a_":{"au":[],"S":[]},"y4":{"a_":[],"au":[],"S":[]},"Gi":{"a_":[],"au":[],"S":[]},"r7":{"a_":[],"au":[],"S":[]},"nv":{"a_":[],"au":[],"S":[]},"O3":{"au":[],"S":[]},"O4":{"h":[]},"k5":{"a0":[],"h":[]},"qH":{"a2":["k5"]},"cn":{"n5":["1"]},"FM":{"ay":[],"h":[]},"N1":{"b9":[],"ar":[],"h":[]},"n6":{"a0":[],"h":[]},"ty":{"a2":["n6"]},"w8":{"lr":[]},"lc":{"ay":[],"h":[]},"na":{"ev":[],"bq":[],"b2":[],"h":[]},"pW":{"a0":[],"h":[]},"An":{"a2":["pW"],"fb":[]},"mx":{"aM":["d1"],"aJ":["d1"],"aJ.T":"d1","aM.T":"d1"},"om":{"aM":["w"],"aJ":["w"],"aJ.T":"w","aM.T":"w"},"FZ":{"a0":[],"h":[]},"uw":{"a0":[],"h":[]},"uv":{"a0":[],"h":[]},"ux":{"a0":[],"h":[]},"EK":{"aM":["f_"],"aJ":["f_"],"aJ.T":"f_","aM.T":"f_"},"q_":{"a2":["1"]},"p9":{"a2":["1"]},"KY":{"a2":["uw"]},"KX":{"a2":["uv"]},"KZ":{"a2":["ux"]},"fs":{"bq":[],"b2":[],"h":[]},"tD":{"co":[],"au":[],"S":[]},"ev":{"bq":[],"b2":[],"h":[]},"Ls":{"ay":[],"h":[]},"hG":{"ar":[],"h":[]},"tF":{"a_":[],"au":[],"S":[]},"Gh":{"hG":["aN"],"ar":[],"h":[],"hG.0":"aN"},"OZ":{"fE":["aN","A"],"A":[],"aG":["A"],"r":[],"I":[],"fE.0":"aN"},"AH":{"bq":[],"b2":[],"h":[]},"wD":{"a0":[],"h":[]},"R0":{"ey":["zr"],"ey.T":"zr"},"ET":{"zr":[]},"Nu":{"a2":["wD"]},"ln":{"bq":[],"b2":[],"h":[]},"t3":{"cG":[],"cT":[]},"wY":{"ay":[],"h":[]},"L4":{"n5":["t3"]},"NK":{"ay":[],"h":[]},"GS":{"ay":[],"h":[]},"aoS":{"dU":[]},"n7":{"bq":[],"b2":[],"h":[]},"x9":{"a0":[],"h":[]},"iO":{"a2":["x9"]},"O2":{"c4":["~"]},"tP":{"m1":[]},"AZ":{"m1":[]},"B_":{"m1":[]},"B0":{"m1":[]},"N6":{"cW":["W>?"],"aq":[]},"fz":{"ay":[],"h":[]},"jX":{"aq":[]},"tR":{"a0":[],"h":[]},"B3":{"a2":["tR"]},"xi":{"a0":[],"h":[]},"qt":{"a2":["xi"]},"BQ":{"eD":[],"ar":[],"h":[]},"Qq":{"a_":[],"au":[],"S":[]},"u_":{"A":[],"aD":["A","dl"],"r":[],"I":[],"aD.1":"dl","aD.0":"A"},"w5":{"a0":[],"h":[]},"Ai":{"a2":["w5"]},"Ah":{"aq":[]},"N4":{"aq":[]},"aoU":{"eQ":["1"],"jR":[],"ds":[]},"qu":{"ay":[],"h":[]},"fA":{"dE":["1"],"d4":["1"],"c4":["1"]},"xk":{"dE":["1"],"d4":["1"],"c4":["1"],"dE.T":"1"},"Hv":{"ar":[],"h":[]},"HN":{"ay":[],"h":[]},"qD":{"bq":[],"b2":[],"h":[]},"lB":{"a0":[],"h":[]},"zm":{"bq":[],"b2":[],"h":[]},"y5":{"a0":[],"h":[]},"cW":{"aq":[]},"Pc":{"a2":["lB"]},"Bi":{"a2":["y5"]},"qR":{"cW":["1"],"aq":[]},"il":{"cW":["1"],"aq":[]},"Bh":{"il":["1"],"cW":["1"],"aq":[]},"y0":{"il":["1"],"cW":["1"],"aq":[],"il.T":"1"},"y_":{"il":["G"],"cW":["G"],"aq":[],"il.T":"G"},"nP":{"cW":["1"],"aq":[]},"qQ":{"cW":["1"],"aq":[]},"y1":{"cW":["aL"],"aq":[]},"qs":{"c4":["1"]},"d4":{"c4":["1"]},"AS":{"bq":[],"b2":[],"h":[]},"tO":{"a0":[],"h":[]},"kv":{"a2":["tO<1>"]},"dE":{"d4":["1"],"c4":["1"]},"Mc":{"aX":["mK"]},"xA":{"dE":["1"],"d4":["1"],"c4":["1"]},"IO":{"ay":[],"h":[]},"yd":{"hR":["1"],"hR.T":"1"},"ye":{"bq":[],"b2":[],"h":[]},"qX":{"aq":[]},"fH":{"h8":[]},"j0":{"fH":[],"h8":[]},"iR":{"fH":[],"h8":[]},"yh":{"fH":[],"h8":[]},"nT":{"fH":[],"h8":[]},"Kw":{"fH":[],"h8":[]},"j_":{"fa":[],"aq":[]},"qY":{"j_":[],"fa":[],"aq":[]},"IZ":{"ay":[],"h":[]},"Dy":{"ay":[],"h":[]},"Gq":{"ay":[],"h":[]},"yi":{"a0":[],"h":[]},"u1":{"bq":[],"b2":[],"h":[]},"i5":{"aP":[]},"yj":{"a2":["yi"]},"Po":{"b9":[],"ar":[],"h":[]},"P3":{"A":[],"aG":["A"],"r":[],"I":[]},"IS":{"aX":["i5"]},"Pa":{"cW":["O?"],"aq":[]},"qJ":{"a0":[],"h":[]},"ji":{"f4":[],"cG":[],"cT":[]},"jj":{"eK":[],"cG":[],"cT":[]},"r_":{"aq":[]},"iY":{"a2":["1"]},"hU":{"nj":["n"],"nj.T":"n"},"r6":{"aq":[]},"lD":{"a0":[],"h":[]},"Bs":{"a2":["lD"]},"Pz":{"fs":["r6"],"bq":[],"b2":[],"h":[],"fs.T":"r6"},"u2":{"b9":[],"ar":[],"h":[]},"Jb":{"ay":[],"h":[]},"Bf":{"A":[],"aG":["A"],"I1":[],"r":[],"I":[]},"Bk":{"eQ":["ds"],"jR":[],"ds":[],"eQ.T":"ds"},"Ju":{"ar":[],"h":[]},"ru":{"ar":[],"h":[]},"Js":{"ru":[],"ar":[],"h":[]},"rt":{"a_":[],"au":[],"S":[]},"wr":{"du":["jM"],"b2":[],"h":[],"du.T":"jM"},"JG":{"ay":[],"h":[]},"yS":{"ar":[],"h":[]},"Qd":{"a_":[],"au":[],"S":[]},"pB":{"ev":[],"bq":[],"b2":[],"h":[]},"ayk":{"ev":[],"bq":[],"b2":[],"h":[]},"O6":{"ay":[],"h":[]},"K2":{"ay":[],"h":[]},"yZ":{"c0":["1"],"aX":["1"]},"mL":{"aP":[]},"ajl":{"aP":[]},"ajm":{"aP":[]},"ajn":{"aP":[]},"ajo":{"aP":[]},"ajp":{"aP":[]},"ajq":{"aP":[]},"ajr":{"aP":[]},"ajs":{"aP":[]},"ajt":{"aP":[]},"aju":{"aP":[]},"ajv":{"aP":[]},"ajw":{"aP":[]},"ajx":{"aP":[]},"ajy":{"aP":[]},"ajZ":{"aP":[]},"ak_":{"aP":[]},"ak0":{"aP":[]},"ak1":{"aP":[]},"ak6":{"aP":[]},"ak2":{"aP":[]},"ak3":{"aP":[]},"ak4":{"aP":[]},"ak5":{"aP":[]},"ak7":{"aP":[]},"BM":{"a0":[],"h":[]},"z2":{"a0":[],"h":[]},"jk":{"eK":[],"cG":[],"cT":[]},"BN":{"a2":["BM"]},"BL":{"a2":["z2"]},"A4":{"bq":[],"b2":[],"h":[]},"z9":{"ay":[],"h":[]},"Kc":{"ay":[],"h":[]},"uz":{"a0":[],"h":[]},"zw":{"a2":["uz"]},"Jp":{"a0":[],"h":[]},"IR":{"a0":[],"h":[]},"IG":{"a0":[],"h":[]},"Fn":{"b9":[],"ar":[],"h":[]},"EG":{"a0":[],"h":[]},"D5":{"a0":[],"h":[]},"Ja":{"eD":[],"ar":[],"h":[]},"KE":{"ay":[],"h":[]},"zs":{"a0":[],"h":[]},"R1":{"a2":["zs"]},"ix":{"a0":[],"h":[]},"uO":{"ix":["1*","2*"],"a0":[],"h":[],"ix.C":"1*","ix.S":"2*"},"zB":{"a2":["ix<1*,2*>*"]},"hz":{"lF":[],"a0":[],"h":[]},"uP":{"hz":["1*","2*"],"lF":[],"a0":[],"h":[],"hz.C":"1*","hz.S":"2*"},"zC":{"r8":["hz<1*,2*>*"],"a2":["hz<1*,2*>*"]},"pi":{"h":[]},"uQ":{"o_":[],"pi":[],"ay":[],"h":[]},"GJ":{"nA":[],"ay":[],"h":[]},"v0":{"bg":["v*"],"bg.T":"v*"},"ve":{"cc":[]},"v7":{"bf":["f*","f*","1*"],"W":["f*","1*"],"bf.V":"1*","bf.K":"f*","bf.C":"f*"},"aeC":{"l":["f*"],"l.E":"f*"},"ik":{"au":[],"S":[]},"lF":{"a0":[],"h":[]},"nA":{"ay":[],"h":[]},"O_":{"au":[],"S":[]},"m2":{"ay":[],"h":[]},"o_":{"ay":[],"h":[]},"yq":{"au":[],"S":[]},"r8":{"a2":["1*"]},"Jc":{"eH":[],"au":[],"S":[]},"Hs":{"cc":[]},"G2":{"S":[]},"e0":{"bq":[],"b2":[],"h":[]},"we":{"o_":[],"ay":[],"h":[]},"Aq":{"au":[],"S":[]},"oF":{"co":[],"au":[],"G2":["1*"],"S":[]},"zR":{"ig":["1*","ta<1*>*"],"ig.D":"ta<1*>*"},"GL":{"nA":[],"ay":[],"h":[]},"xB":{"cc":[]},"Fr":{"i6":[],"bi":["i6"]},"A8":{"ao5":[],"kd":[],"j4":[],"bi":["j4"]},"i6":{"bi":["i6"]},"JD":{"i6":[],"bi":["i6"]},"j4":{"bi":["j4"]},"JE":{"j4":[],"bi":["j4"]},"JF":{"cc":[]},"rv":{"h6":[],"cc":[]},"rw":{"j4":[],"bi":["j4"]},"kd":{"j4":[],"bi":["j4"]},"JS":{"h6":[],"cc":[]},"ki":{"J":["1"],"v":["1"],"M":["1"],"l":["1"]},"Ni":{"ki":["p"],"J":["p"],"v":["p"],"M":["p"],"l":["p"]},"Km":{"ki":["p"],"J":["p"],"v":["p"],"M":["p"],"l":["p"],"J.E":"p","ki.E":"p"},"mq":{"bJ":["ms*","eW*"],"cI":["eW*"],"bg":["eW*"],"bg.T":"eW*","cI.0":"eW*","bJ.0":"ms*","bJ.1":"eW*"},"Db":{"ms":[]},"mr":{"eW":[]},"uI":{"eW":[]},"my":{"bJ":["mz*","eX*"],"cI":["eX*"],"bg":["eX*"],"bg.T":"eX*","cI.0":"eX*","bJ.0":"mz*","bJ.1":"eX*"},"v3":{"mz":[]},"mA":{"eX":[]},"v1":{"eX":[]},"mE":{"bJ":["l1*","ea*"],"cI":["ea*"],"bg":["ea*"],"bg.T":"ea*","cI.0":"ea*","bJ.0":"l1*","bJ.1":"ea*"},"pu":{"l1":[]},"eb":{"l1":[]},"iC":{"ea":[]},"fk":{"ea":[]},"no":{"bJ":["nz*","eE*"],"cI":["eE*"],"bg":["eE*"],"bg.T":"eE*","cI.0":"eE*","bJ.0":"nz*","bJ.1":"eE*"},"wG":{"nz":[]},"wH":{"eE":[]},"Gv":{"eE":[]},"wI":{"eE":[]},"ot":{"bJ":["lS*","ei*"],"cI":["ei*"],"bg":["ei*"],"bg.T":"ei*","cI.0":"ei*","bJ.0":"lS*","bJ.1":"ei*"},"zp":{"lS":[]},"zo":{"lS":[]},"ib":{"ei":[]},"rZ":{"ei":[]},"GM":{"ay":[],"h":[]},"ut":{"a0":[],"h":[]},"KS":{"a2":["ut*"]},"uJ":{"a0":[],"h":[]},"L7":{"a2":["uJ*"]},"v2":{"a0":[],"h":[]},"Lp":{"a2":["v2*"]},"v4":{"a0":[],"h":[]},"Lr":{"a2":["v4*"]},"vj":{"a0":[],"h":[]},"Lz":{"a2":["vj*"]},"n8":{"a0":[],"h":[]},"Al":{"a2":["n8*"]},"wE":{"a0":[],"h":[]},"Nv":{"a2":["wE*"]},"nn":{"a0":[],"h":[]},"Nx":{"a2":["nn*"]},"yn":{"a0":[],"h":[]},"Pv":{"a2":["yn*"]},"zn":{"a0":[],"h":[]},"QV":{"a2":["zn*"]},"zt":{"a0":[],"h":[]},"R3":{"a2":["zt*"]},"e_":{"ay":[],"h":[]},"ow":{"ay":[],"h":[]},"ho":{"ay":[],"h":[]},"KK":{"ay":[],"h":[]},"KL":{"ay":[],"h":[]},"KN":{"ay":[],"h":[]},"lT":{"ay":[],"h":[]},"ayr":{"a0":[],"h":[]},"ays":{"a2":["ayr"]},"azL":{"iH":[]},"aBR":{"bq":[],"b2":[],"h":[]}}')) H.aCB(v.typeUniverse,JSON.parse('{"dG":1,"ez":1,"vR":1,"Kt":1,"rY":1,"Cc":2,"qm":1,"Od":1,"yJ":1,"JO":2,"Q4":1,"M7":1,"PM":2,"wi":1,"wB":1,"wJ":2,"QU":1,"PL":2,"AG":1,"Bx":2,"By":1,"Bz":1,"BZ":2,"Co":1,"Cs":1,"Eo":2,"DL":1,"Et":2,"bi":1,"G7":1,"Je":1,"tE":1,"kO":1,"ps":1,"zM":1,"zN":1,"zO":1,"xn":1,"Ca":1,"zT":1,"Ce":1,"AM":1,"zd":1,"vl":1,"zQ":1,"eZ":1,"vt":1,"dT":1,"xO":1,"tY":1,"Bb":1,"qP":1,"pf":1,"q_":1,"p9":1,"tC":1,"aoS":1,"Kk":1,"aoU":1,"fA":1,"cW":1,"iZ":1,"qR":1,"Bh":1,"nP":1,"qQ":1,"qs":1,"tN":1,"Gs":1,"xA":1,"tW":1,"yZ":1,"lG":1,"dY":1,"zD":2,"G2":1,"M8":1}')) var u={q:"\x10@\x100@@\xa0\x80 0P`pPP\xb1\x10@\x100@@\xa0\x80 0P`pPP\xb0\x11@\x100@@\xa0\x80 0P`pPP\xb0\x10@\x100@@\xa0\x80 1P`pPP\xb0\x10A\x101AA\xa1\x81 1QaqQQ\xb0\x10@\x100@@\xa0\x80 1Q`pPP\xb0\x10@\x100@@\xa0\x80 1QapQP\xb0\x10@\x100@@\xa0\x80 1PaqQQ\xb0\x10\xe0\x100@@\xa0\x80 1P`pPP\xb0\xb1\xb1\xb1\xb1\x91\xb1\xc1\x81\xb1\xb1\xb1\xb1\xb1\xb1\xb1\xb1\x10@\x100@@\xd0\x80 1P`pPP\xb0\x11A\x111AA\xa1\x81!1QaqQQ\xb1\x10@\x100@@\x90\x80 1P`pPP\xb0",S:" 0\x10000\xa0\x80\x10@P`p`p\xb1 0\x10000\xa0\x80\x10@P`p`p\xb0 0\x10000\xa0\x80\x11@P`p`p\xb0 1\x10011\xa0\x80\x10@P`p`p\xb0 1\x10111\xa1\x81\x10AQaqaq\xb0 1\x10011\xa0\x80\x10@Qapaq\xb0 1\x10011\xa0\x80\x10@Paq`p\xb0 1\x10011\xa0\x80\x10@P`q`p\xb0 \x91\x100\x811\xa0\x80\x10@P`p`p\xb0 1\x10011\xa0\x81\x10@P`p`p\xb0 1\x100111\x80\x10@P`p`p\xb0!1\x11111\xa1\x81\x11AQaqaq\xb1",D:" must not be greater than the number of characters in the file, ",p:'" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">33333\xb3\xbb\xbb\xbb\xbb\xbb\xbb\xbb;3\xc3\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc334343C33333333333SET333333333333333EDTETD433333333CD33333333333333CD33333CDD4333333333333333333333333CDTDDDCTE43C4CD3C333333333333333D3C33333\x99\x99\x9933333DDDDD42333333333333333333CDDD4333333333333333333333333DDDD433334333C53333333333333333333333C33TEDCSUUU433333333S533333333333333333333333333333CD4DDDDD3D5333333333333333333333333333CSEUCUSE4333D33333C43333333333333CDDD9DDD3DCD433333333CDCDDDDDDEDDD33433C3E433#""""\x82" """"""""2333333333333333CDUUDU53SEUUUD43SDD3U3U4333C43333C43333333333333SE43CD33333333DD33333CDDDDDDDDDD3333333343333333B!233333333333#"""333333s3CD533333333333333333333333333CESEU3333333333333333333DDDD433333CD2333333333333333333333333""""23333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333CDD33333333333333333333333333333CDDD3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333SUDDDDUDT43333333333343333333333333333333333333333333333333333TEDDTTEETD333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333CUDD3UUDE43333333333333D33333333333333333333333333333333333333333UEDDDTEE43333333333333333333333333333333333333333333333333333CEUDDDE33333333333333333333333333333333333333333333333333CDUDDEDD3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333D#"2333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333CSUUUUUUUUUUUUUUUUUUUUUUUUUUU333CD4333333333333333333333333333333333333333333333333333333""""""33EDDCTSE3333333333D33333333333DDDDDDD\x94DDDDDDDDDDDDDDDDDDDDDDDDDDDDDCDDDDDDDD3DDD4DCDD3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333CDDD33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333CD4333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333CDDDDD333333333333333333333333333333333333333333333333333333333333333333333333333333333333333s73333s33333333333""""""""3333333373s333333333333333333333333333333CTDDDTU5D4DD333C433333D33333333333333DU433333333333333333333DDDUDUD3333S3333333333333333334333333333333s733333s33333333333CD4DDDD4D4DD4333333333sww73333333w3333333333sw3333s33333337333333sw333333333s733333333333333333UTEUS433333333C433333333333333C433333333333334443SUE4333333333333CDDDDDDDD4333333DDDDDT533333\xa3\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa3SDDDDUUT5DDD43333C43333333333333333C33333333333EEDDDCC3DDDDUUUDDDDD3T5333333333333333333333333333CSDDD433E533333333333333333333333333DDDDDDD4333333333333333333333333333CD53333333333333333333333UEDTE4\x933333333\x933333333333333333333333333D433333333333333333CDDEDDD43333333S5333333333333333333333C333333D533333333333333333333333SUDDDDT5\x9933CD433333333333333333333333333333333333333333333333UEDUTD33343333333333333333333333333333333333333333333333333333333333333333333333333333333CUEDDD43333333333DU333333333333333333333333333C4TTU5S5SU3333C33333U3DDD43DD4333333333333333333333333333333333333333333333333333333333333333333333DDDDDDD533333333333333333333333DDDTTU43333333333333333333333333333DDD733333s373ss33w7733333ww733333333333ss33333333333333333333333333333ww3333333333333333333333333333wwww33333www33333333333333333333wwww333333333333333wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww333333wwwwwwwwwwwwwwwwwwwwwww7wwwwwswwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww7333swwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww733333333333333333333333swwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww7333333333333333333333333333333333333333333333333333333333swwwww7333333333333333333333333333333333333333333wwwwwwwwwwwwwwwwwwwww7wwwwwwswwwwwwwwwwwwwwwwwwwww73333swwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww7333333w7333333333333333733333333333333333333333333333sww733333s7333333s3wwwww333333333wwwwwwwwwwwwwwwwwwwwwwwwwwwwgffffffffffff6wwwwwww73333s33333333337swwwwsw73333wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwDDDDDDDDDDDDDDDDDDDDDDDD33333333DDDDDDDD33333333DDDDDDDDDDDDDDDD43333333DC44333333333333333333333333333SUDDDDTD33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333UED4CTUE3S33333333333333DDDDD33333333333333333333DDD\x95DD333343333DDDUD43333333333333333333\x93\x99\x99IDDDDDDE4333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333CDDDDDDDDDDDDDDDDDDDDDDDDDDD33DDDDDDDDDDDDDDDDDDDDDDDDD33334333333C33333333333DD4DDDDDDD43333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333TD43EDD""""DDDD3DDD433333333333333CD43333333333333333333333333333333333333333333333333333333333333333333333333CD33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333C33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333433333333333333333333333333333333333333333333333333333333333333333333333333DD4333333333333333333333333333333333333333333333333333333333333333333EDDDCDDT43333333333333333333333333333333333333333CDDDDDDDDDD4EDDDETD3333333333333333333333333333333333333333333333333333333333333DDD3CC4DDD\x94433333333333333333333333333333333SUUC4UT433333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333DU333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333CDDD333333333333333333333333333333333333333333333333333333CDDD3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333CDC433DD33333333333333333333D43C3333333333333333333333333333333333333333333333333333333333333333333333333333333333C4333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333334EDDDD3\x03',u:'"),so:s("ca"),m:s("ca"),ph:s("uD"),vp:s("mt"),M1:s("Di"),C_:s("ph"),qY:s("kQ<@>"),jj:s("kR"),C4:s("mv"),m_:s("d1"),k:s("aN"),q:s("fj"),Xj:s("axP"),pI:s("kW"),V4:s("bX"),wY:s("iz"),nz:s("iz"),d0:s("kX"),p7:s("cm?,c4<@>>"),vg:s("jv"),lF:s("anC"),XY:s("l_"),qo:s("pl"),z7:s("va"),m6:s("E2"),E_:s("pm"),Bn:s("vb"),wW:s("E3"),BQ:s("vc"),Hz:s("hD"),hP:s("l0"),n8:s("C"),b8:s("bi<@>"),qO:s("vk"),Hw:s("bs"),W1:s("bs"),uI:s("bs"),Jz:s("bs"),vn:s("pw"),pU:s("aD>"),eN:s("Eu"),IP:s("pz"),EY:s("vo<@>"),My:s("vp<@>"),H5:s("ayd"),HY:s("jy"),ip:s("vu"),I7:s("aGO"),TD:s("l5"),l4:s("ayi"),uy:s("ayk"),yS:s("pB"),EX:s("cz"),I:s("h2"),uZ:s("F0>"),VF:s("jA"),uL:s("h3"),zk:s("h4"),U2:s("ayt"),pZ:s("pG"),JV:s("jC"),Tu:s("aK"),Ee:s("M<@>"),h:s("aE"),t:s("au"),GB:s("aH_"),i7:s("vL"),ia:s("Wr"),IH:s("vM"),S9:s("Fb"),X8:s("Fc"),Q4:s("mR"),Lt:s("bC"),I3:s("ah"),VI:s("cc"),IX:s("fn"),rq:s("et"),yX:s("pN"),GH:s("ao5"),US:s("dB"),OE:s("X1"),mx:s("db"),l5:s("la"),Y8:s("n1"),gx:s("fo<@>"),Uy:s("w2"),Nh:s("fp"),_8:s("n3"),v7:s("ax"),Ev:s("ax()"),L0:s("ax<@>"),uz:s("ax<~>"),XK:s("cS"),r9:s("cS"),o:s("FL"),cD:s("cG"),uA:s("cn"),C1:s("cn"),Uv:s("cn"),jn:s("cn"),YC:s("cn"),UN:s("cn"),ok:s("cn"),ff:s("cn"),Bk:s("cn"),m4:s("cn"),xR:s("n5"),yi:s("f2>"),TX:s("lb"),bT:s("lb>"),op:s("w7<~(l9)>"),G7:s("FR>"),rA:s("n6"),mS:s("n7"),Fn:s("hN"),zE:s("aH8"),C:s("ab"),gc:s("wa"),Gf:s("iG"),Oh:s("na"),J2:s("wd"),_0:s("nc"),dW:s("h7"),Bc:s("q1"),IS:s("co"),og:s("ev"),WB:s("bq"),U1:s("hS"),Zb:s("nf"),XO:s("Zt"),gD:s("q3"),vz:s("aP"),nQ:s("ng"),K9:s("wk<@>"),JY:s("l<@>"),sq:s("o"),r3:s("o"),Ns:s("o"),AT:s("o"),Cz:s("o"),t_:s("o"),td:s("o

"),KV:s("o"),qe:s("o"),vl:s("o

"),lX:s("o"),CE:s("o"),bk:s("o"),bp:s("o"),kZ:s("o>"),no:s("o"),L5:s("o>"),mo:s("o>"),iQ:s("o"),_K:s("o"),XZ:s("o"),fJ:s("o"),VB:s("o"),O_:s("o"),k5:s("o"),s9:s("o"),Y4:s("o"),Aw:s("o"),Eo:s("o"),ss:s("o"),a9:s("o>"),n4:s("o>"),Xr:s("o"),rE:s("o"),YE:s("o"),tc:s("o"),f2:s("o"),qF:s("o"),Qg:s("o"),jl:s("o"),yv:s("o"),fy:s("o"),g8:s("o>"),EO:s("o"),zY:s("o"),wc:s("o"),g:s("o"),tZ:s("o"),TP:s("o"),v:s("o"),Y2:s("o"),kG:s("o"),Kd:s("o"),xT:s("o"),TT:s("o"),QT:s("o"),ZP:s("o"),QF:s("o"),o4:s("o"),zz:s("o"),fe:s("o"),N_:s("o"),Jl:s("o"),tA:s("o"),TZ:s("o"),Iu:s("o>"),s:s("o"),PL:s("o"),G:s("o"),VS:s("o
    "),fm:s("o"),Ne:s("o"),J:s("o"),GA:s("o"),TV:s("o"),Kj:s("o"),_Y:s("o"),CZ:s("o"),Kx:s("o"),Ah:s("o"),YD:s("o"),bY:s("o"),ML:s("o"),m2:s("o"),Ei:s("o"),jE:s("o"),qi:s("o"),nG:s("o"),Zh:s("o"),uD:s("o"),EM:s("o"),au:s("o"),_u:s("o"),YK:s("o"),kc:s("o"),lD:s("o"),PN:s("o"),cR:s("o"),NM:s("o"),HZ:s("o"),up:s("o"),ee:s("o<@>"),_:s("o

    "),tk:s("o"),QZ:s("o"),T:s("o"),IG:s("o"),gU:s("o"),J1:s("o*>"),yc:s("o"),Uj:s("o*>"),Hv:s("o*>"),Lr:s("o*>"),vS:s("o*>"),_p:s("o"),vA:s("o"),E0:s("o"),Q:s("o"),ws:s("o"),Ve:s("o"),i:s("o"),w2:s("o"),Jw:s("o"),Wb:s("o"),nM:s("o"),Y:s("o"),iJ:s("o"),L2:s("o"),g5:s("o"),a:s("o"),zR:s("o"),Rl:s("o"),JK:s("o"),cA:s("o"),iG:s("o"),ny:s("o?>"),eE:s("o"),Fi:s("o"),_m:s("o"),_n:s("o"),Z:s("o"),a0:s("o"),Zt:s("o()>"),iL:s("o()>"),U9:s("o<~(n4)?>"),u:s("o<~()>"),ot:s("o<~(aX)>"),e:s("o<~(ep)>"),j1:s("o<~(aK)>"),Jh:s("o<~(v)>"),RP:s("aQ<@>"),bz:s("q5"),lZ:s("ajJ"),lT:s("iK"),dC:s("b1<@>"),sW:s("nh<@>"),Hf:s("cU"),RK:s("cU*>"),Cl:s("jM"),D2:s("ds"),X_:s("wt"),JG:s("jN"),LE:s("nk"),bR:s("aY"),NE:s("aY"),ku:s("aY"),hA:s("aY"),A:s("aY>"),Ts:s("aY>"),af:s("aY"),Xu:s("aY"),L6:s("ex"),h_:s("Gg"),rf:s("nl"),hz:s("f3"),KM:s("a_f"),V:s("a7"),wO:s("qc<@>"),Gs:s("v"),pN:s("v"),Px:s("v"),qC:s("v"),UX:s("v"),I1:s("v"),V1:s("v"),OI:s("v"),yp:s("v"),j:s("v<@>"),BK:s("v"),Dn:s("v"),I_:s("aq"),f0:s("jR"),da:s("jS"),bh:s("ey<@>"),bd:s("n"),qE:s("bm>"),Dx:s("wK<@,@>"),b:s("W"),e3:s("W"),f:s("W<@,@>"),j7:s("W>>"),pE:s("W"),rr:s("W<~(br),b8?>"),C9:s("ft"),cj:s("Z"),rB:s("Z"),qn:s("Z"),T9:s("Z*,fG*>"),IK:s("Z"),ys:s("Z*>"),mF:s("Z"),c4:s("wP"),Le:s("wR<@>"),ui:s("de"),xV:s("b8"),w:s("ln"),oh:s("ql"),tB:s("wV"),np:s("fx"),Pb:s("eB"),ZA:s("x_"),Tl:s("eC"),_h:s("iN"),Wz:s("h9"),Lb:s("eD"),RZ:s("nx"),jW:s("lq"),A4:s("fy"),F4:s("dg"),u9:s("ny"),uK:s("iO"),_A:s("a8"),Jd:s("fz"),Tm:s("fz"),WA:s("fz"),kj:s("fz"),Te:s("nB"),P:s("a6"),K:s("z"),yw:s("by"),wi:s("by<~()>"),wS:s("by<~(aX)>"),l:s("by<~(ep)>"),EP:s("m"),gY:s("jV"),kY:s("qr"),Ms:s("jX"),N1:s("qt"),K3:s("xk<@>"),Mf:s("qu"),UY:s("jZ"),R3:s("iU"),Fw:s("du"),vH:s("qx"),lq:s("Hu"),zM:s("dv"),IF:s("xt"),ix:s("cM"),v3:s("q"),jP:s("qy"),i6:s("fC"),ge:s("nH"),Ko:s("nI"),kf:s("qA"),r:s("lt"),pY:s("k0"),qL:s("br"),GG:s("aHf"),W2:s("k1"),XA:s("k2"),n2:s("nJ"),PB:s("nK"),Mj:s("nL"),ks:s("iX"),oN:s("nM"),bb:s("qD"),Y6:s("f7"),yH:s("b2"),mz:s("qJ"),YT:s("x"),Bb:s("hd"),bN:s("api"),MY:s("xN"),NW:s("I1"),x:s("A"),E:s("nO"),f1:s("xS"),F:s("r"),Cg:s("ly"),F5:s("ar"),GM:s("aG"),Wx:s("k7"),nl:s("dj"),Ss:s("qN"),Jc:s("xX"),dZ:s("y0

    "),yb:s("cW"),z4:s("cP"),k2:s("y3"),H8:s("bI"),o_:s("bI"),Zg:s("i2"),oj:s("qT"),pO:s("c4<@>(S,z?)"),Dc:s("y9"),BL:s("aHm"),Np:s("qV"),MF:s("qW"),JE:s("yd"),Cy:s("ye"),gt:s("j_"),sm:s("r_"),_S:s("cv"),bu:s("bM"),UF:s("cB"),g3:s("ym"),HS:s("nW"),n5:s("r3<@>"),Ro:s("d3<@>"),RY:s("c5"),jH:s("nY"),Mp:s("b9"),FW:s("Q"),im:s("rq"),Ws:s("yx"),p:s("lI"),Xp:s("ob"),Gt:s("rt"),D:s("j3"),M0:s("ru"),jB:s("yA"),y3:s("i6"),wq:s("j4"),D_:s("kd"),ul:s("rx"),B:s("dl"),Km:s("bA"),Nw:s("eH"),lb:s("a0"),Iz:s("ay"),N:s("f"),NU:s("rC"),Vh:s("aR"),Ci:s("oe"),_P:s("rD"),ry:s("am"),WT:s("cX"),u4:s("cX"),Je:s("cX>"),az:s("cX"),E8:s("cX"),Zl:s("cX>?>"),hr:s("cX"),ZC:s("lJ"),lu:s("lK"),On:s("yS"),o3:s("lL"),aW:s("rJ"),S0:s("rK"),W7:s("yV"),MN:s("apL"),mr:s("z_"),mi:s("K6"),tq:s("j5"),bZ:s("aBl"),em:s("w"),we:s("hk"),ZM:s("on"),Ce:s("hl"),U4:s("aBr"),wv:s("lP"),Ly:s("aM"),H7:s("aM"),wr:s("aM"),n:s("f9"),e2:s("cC"),H3:s("fO"),kk:s("j6"),lQ:s("zm"),po:s("kl"),Jv:s("km"),xc:s("eQ"),uh:s("cZ"),XR:s("cZ"),GY:s("j8"),V6:s("ou"),Hd:s("aO"),ZK:s("fP"),Ri:s("fP"),ow:s("fP"),u8:s("fP"),kE:s("fP<~(z,bA?)>"),Pi:s("t1"),l7:s("h"),X5:s("fb"),Uh:s("zr"),VW:s("ov"),uS:s("j9"),KU:s("zu"),h8:s("aH"),eG:s("aH"),rj:s("aH"),r7:s("aH>"),A0:s("aH"),VY:s("aH"),zh:s("aH<@>"),uP:s("aH"),Wq:s("aH"),aa:s("aH"),yB:s("aH"),EZ:s("aH"),gR:s("aH<~>"),pq:s("t5"),BY:s("aBR"),ZW:s("oy"),B6:s("zG"),A3:s("dx"),uC:s("fc"),mV:s("zX"),Pd:s("jb"),UJ:s("Mb"),l3:s("A4"),L:s("ii"),rM:s("ii"),J0:s("ii"),uu:s("jc"),ky:s("Ac"),fk:s("tr"),ag:s("ts"),Jp:s("Ae"),h1:s("tu"),xl:s("oD"),Lv:s("a1"),qc:s("a1"),_T:s("a1"),ND:s("a1>"),fB:s("a1"),tr:s("a1"),LR:s("a1<@>"),wJ:s("a1

    "),Wy:s("a1"),LS:s("a1"),ov:s("a1"),gg:s("a1"),X6:s("a1"),U:s("a1<~>"),cK:s("tw"),Qu:s("ku"),U3:s("ty"),UR:s("ej"),R9:s("tz"),Rp:s("oE<@,@>"),WD:s("Ap"),Nr:s("Ar"),pp:s("lZ"),Sx:s("bn"),pt:s("tI"),Gk:s("AH"),PJ:s("tJ"),h2:s("fe"),pj:s("fe"),_s:s("fe"),Fe:s("AS"),xg:s("NM"),Tp:s("m1"),sZ:s("B4"),Sc:s("Oe"),mm:s("tV"),h7:s("je"),zP:s("d7"),c:s("tZ"),zd:s("B9"),_2:s("u_"),V0:s("oJ"),Ez:s("dp"),F7:s("oK"),Pu:s("Bl"),jF:s("u1"),S8:s("BD"),oq:s("aCr"),HE:s("u6"),iN:s("u7"),sG:s("BQ"),Ji:s("fg"),vt:s("fg"),DH:s("R_"),sL:s("dH<~(ao,bF,ao,z,bA)>"),y:s("G"),d:s("O"),z:s("@"),lG:s("@(ah)"),N2:s("@(z)"),Hg:s("@(z,bA)"),S:s("p"),wm:s("p7*"),Xq:s("mq*"),x1:s("mr*"),mJ:s("ms*"),Zq:s("eW*"),z8:s("kR*"),Id:s("my*"),JF:s("dN*"),rC:s("mz*"),PX:s("eX*"),eR:s("dO*"),R:s("mE*"),h4:s("iC*"),YR:s("l1*"),Wc:s("ea*"),E2:s("ah*"),IT:s("cc*"),QK:s("pR*"),Py:s("h6*"),rD:s("l<@>*"),TN:s("v<@>*"),gP:s("v*"),_w:s("v*"),UZ:s("dS*"),_l:s("no*"),bO:s("W<@,@>*"),xS:s("W*"),_U:s("nz*"),oL:s("eE*"),To:s("nA*"),s5:s("0&*"),s4:s("jU*"),ub:s("z*"),Ip:s("f7*"),Ni:s("IC*"),J9:s("qU*"),Jg:s("IJ*"),Is:s("fG*"),AQ:s("eG*"),gZ:s("r4*"),_g:s("r8*"),yt:s("lF*"),uH:s("o_*"),GI:s("rA*"),X:s("f*"),PV:s("rG*"),RH:s("cC*"),NG:s("fO*"),OB:s("dZ*"),hY:s("eP*"),Uq:s("ot*"),OG:s("lS*"),WJ:s("ei*"),ib:s("h*"),A7:s("m2*"),eQ:s("ik*"),yq:s("G*"),t0:s("O*"),Em:s("p*"),ZU:s("jp?"),Vx:s("da?"),sa:s("e8?"),dk:s("d1?"),eJ:s("mx?"),ls:s("kS?"),CD:s("bX?"),yf:s("pl?"),MB:s("pn?"),Ax:s("Uh?"),ts:s("vf?"),cW:s("Ui?"),e4:s("Uj?"),VX:s("vg?"),Vz:s("pp?"),MH:s("C?"),YJ:s("hE?"),Hb:s("dP?"),V2:s("h2?"),pc:s("dr?"),Dv:s("au?"),ro:s("aE?"),pk:s("db?"),RC:s("w0?"),ZY:s("ax?"),_I:s("n7?"),GK:s("hO?"),Pr:s("lg?"),LO:s("ds?"),qA:s("f4?"),Xw:s("W<@,@>?"),wd:s("W>?"),qd:s("W?"),iD:s("b8?"),iI:s("lo?"),WV:s("eB?"),ZR:s("a8?"),O:s("z?"),Ff:s("a0C?"),dJ:s("jV?"),Zr:s("a0F?"),Jq:s("xg?"),KX:s("jW?"),uR:s("i0?"),xO:s("nE?"),fF:s("xo?"),p9:s("xp?"),Gr:s("xq?"),Ll:s("xr?"),aw:s("xs?"),mc:s("cM?"),wb:s("xu?"),EA:s("xv?"),_c:s("a19?"),W:s("HG?"),Qv:s("A?"),CA:s("nO?"),Rn:s("r?"),c_:s("a_?"),NT:s("lz?"),ym:s("k7?"),kR:s("fF?"),LQ:s("bM?"),lk:s("cB?"),m5:s("r1?"),Zi:s("c5?"),rY:s("nZ?"),tW:s("Q?"),Ep:s("k8?"),MR:s("j3?"),lE:s("eH?"),ob:s("f?"),aE:s("aR?"),f3:s("eK?"),p8:s("w?"),Dh:s("om?"),qf:s("Ki?"),zV:s("rW?"),ir:s("aM?"),nc:s("fO?"),KJ:s("km?"),Wn:s("id?"),zH:s("ts?"),Z4:s("N3?"),Xk:s("ej?"),av:s("B5?"),gB:s("tX?"),zr:s("u1?"),JI:s("jh<@>?"),PM:s("O?"),bo:s("p?"),Jy:s("bG"),H:s("~"),M:s("~()"),TM:s("~(ep)"),Vu:s("~(aK)"),Su:s("~(l9)"),xt:s("~(v)"),mX:s("~(z)"),hK:s("~(z,bA)"),Ld:s("~(br)"),iS:s("~(fD)"),HT:s("~(z?)")}})();(function constants(){var s=hunkHelpers.makeConstList C.j6=W.mv.prototype C.cU=W.kX.prototype C.oI=W.DG.prototype C.e=W.py.prototype C.dZ=W.vz.prototype C.qv=W.Fs.prototype C.jW=W.jF.prototype C.jY=W.iG.prototype C.r6=W.nc.prototype C.k5=W.nf.prototype C.ra=J.i.prototype C.b=J.o.prototype C.d3=J.wn.prototype C.f=J.q4.prototype C.rf=J.q5.prototype C.d=J.lh.prototype C.c=J.jK.prototype C.rg=J.iK.prototype C.rj=W.wu.prototype C.rl=W.wz.prototype C.l0=W.GD.prototype C.xe=W.lo.prototype C.l7=H.nx.prototype C.et=H.x2.prototype C.xj=H.x3.prototype C.xk=H.x4.prototype C.eu=H.x5.prototype C.hs=H.x6.prototype C.a0=H.ny.prototype C.l8=W.qp.prototype C.xm=W.GZ.prototype C.lj=W.xm.prototype C.lm=J.HH.prototype C.lG=W.yc.prototype C.Cl=W.yI.prototype C.m5=W.yM.prototype C.m6=W.yT.prototype C.dA=W.zg.prototype C.ik=J.j6.prototype C.il=W.ou.prototype C.aB=W.ov.prototype C.HT=new H.SA("AccessibilityMode.unknown") C.iN=new K.iv(-1,0) C.ca=new K.iv(-1,-1) C.ar=new K.dK(0,0) C.mS=new K.dK(0,1) C.mT=new K.dK(0,-1) C.mU=new K.dK(1,0) C.cO=new K.dK(-1,-1) C.mV=new L.uu(null) C.mW=new G.D7("AnimationBehavior.normal") C.mX=new G.D7("AnimationBehavior.preserve") C.N=new X.ep("AnimationStatus.dismissed") C.aC=new X.ep("AnimationStatus.forward") C.as=new X.ep("AnimationStatus.reverse") C.a7=new X.ep("AnimationStatus.completed") C.mY=new V.uH(null,null,null,null,null,null,null,null,null,null,null,null,null,null) C.iO=new P.pb("AppLifecycleState.resumed") C.iP=new P.pb("AppLifecycleState.inactive") C.iQ=new P.pb("AppLifecycleState.paused") C.iR=new P.pb("AppLifecycleState.detached") C.mZ=new P.SL(!1,127) C.iS=new P.SM(127) C.dL=new A.uM("AutovalidateMode.disabled") C.iT=new A.uM("AutovalidateMode.always") C.iU=new A.uM("AutovalidateMode.onUserInteraction") C.A=new G.pg("AxisDirection.up") C.P=new G.pg("AxisDirection.right") C.y=new G.pg("AxisDirection.down") C.L=new G.pg("AxisDirection.left") C.o=new G.Dj("Axis.horizontal") C.n=new G.Dj("Axis.vertical") C.n_=new R.Dl(null) C.n0=new R.Dk(null) C.aj=new U.a6g() C.iV=new A.kQ("flutter/accessibility",C.aj,t.qY) C.bO=new U.ZC() C.n1=new A.kQ("flutter/keyevent",C.bO,t.qY) C.fy=new U.a6y() C.n2=new A.kQ("flutter/lifecycle",C.fy,H.T("kQ")) C.n3=new A.kQ("flutter/system",C.bO,t.qY) C.iW=new P.c_(0,"BlendMode.clear") C.fh=new P.c_(1,"BlendMode.src") C.fi=new P.c_(10,"BlendMode.dstATop") C.fj=new P.c_(11,"BlendMode.xor") C.fk=new P.c_(12,"BlendMode.plus") C.dM=new P.c_(13,"BlendMode.modulate") C.iX=new P.c_(14,"BlendMode.screen") C.dN=new P.c_(15,"BlendMode.overlay") C.iY=new P.c_(16,"BlendMode.darken") C.iZ=new P.c_(17,"BlendMode.lighten") C.dO=new P.c_(18,"BlendMode.colorDodge") C.dP=new P.c_(19,"BlendMode.colorBurn") C.j_=new P.c_(2,"BlendMode.dst") C.j0=new P.c_(20,"BlendMode.hardLight") C.j1=new P.c_(21,"BlendMode.softLight") C.j2=new P.c_(22,"BlendMode.difference") C.j3=new P.c_(23,"BlendMode.exclusion") C.j4=new P.c_(24,"BlendMode.multiply") C.fl=new P.c_(25,"BlendMode.hue") C.dQ=new P.c_(26,"BlendMode.saturation") C.fm=new P.c_(27,"BlendMode.color") C.fn=new P.c_(28,"BlendMode.luminosity") C.cb=new P.c_(3,"BlendMode.srcOver") C.j5=new P.c_(4,"BlendMode.dstOver") C.fo=new P.c_(5,"BlendMode.srcIn") C.fp=new P.c_(6,"BlendMode.dstIn") C.fq=new P.c_(7,"BlendMode.srcOut") C.fr=new P.c_(8,"BlendMode.dstOut") C.fs=new P.c_(9,"BlendMode.srcATop") C.ft=new P.Ti(0,"BlurStyle.normal") C.a5=new P.c2(0,0) C.ba=new K.d1(C.a5,C.a5,C.a5,C.a5) C.c_=new P.c2(4,4) C.j7=new K.d1(C.c_,C.c_,C.a5,C.a5) C.dR=new K.d1(C.c_,C.c_,C.c_,C.c_) C.t=new P.C(4278190080) C.a8=new Y.Du("BorderStyle.none") C.q=new Y.dL(C.t,0,C.a8) C.a_=new Y.Du("BorderStyle.solid") C.n7=new D.uT(null,null,null) C.n8=new M.uU(null,null,null,null,null,null,null,null,null,null,null,null) C.n9=new X.uV(null,null,null,null,null,null) C.lp=new L.HU(null) C.na=new L.Dv(C.lp) C.nb=new S.aN(40,40,40,40) C.nc=new S.aN(59,59,39,39) C.j8=new S.aN(1/0,1/0,1/0,1/0) C.fu=new S.aN(0,1/0,0,1/0) C.HU=new S.aN(88,1/0,36,1/0) C.ne=new S.aN(0,1/0,48,1/0) C.nd=new S.aN(48,1/0,48,1/0) C.jD=new P.C(4290624957) C.n5=new Y.dL(C.jD,0,C.a_) C.n6=new F.da(C.q,C.q,C.n5,C.q) C.ac=new F.Dz("BoxShape.rectangle") C.nf=new S.dM(null,null,C.n6,null,null,null,C.ac) C.ng=new U.js("BoxFit.fill") C.nh=new U.js("BoxFit.contain") C.ni=new U.js("BoxFit.cover") C.nj=new U.js("BoxFit.fitWidth") C.nk=new U.js("BoxFit.fitHeight") C.nl=new U.js("BoxFit.none") C.j9=new U.js("BoxFit.scaleDown") C.cP=new P.Dx(0,"BoxHeightStyle.tight") C.ja=new P.Dx(5,"BoxHeightStyle.strut") C.bb=new F.Dz("BoxShape.circle") C.bu=new P.Tn() C.a2=new P.DA("Brightness.dark") C.a3=new P.DA("Brightness.light") C.bv=new H.jt("BrowserEngine.blink") C.W=new H.jt("BrowserEngine.webkit") C.bw=new H.jt("BrowserEngine.firefox") C.jb=new H.jt("BrowserEngine.edge") C.cQ=new H.jt("BrowserEngine.ie11") C.bN=new H.jt("BrowserEngine.samsung") C.jc=new H.jt("BrowserEngine.unknown") C.nS=new M.TA() C.nT=new M.uZ(null,null,null,null,null,null,null,null,null) C.cc=new M.v_("ButtonTextTheme.normal") C.cR=new M.v_("ButtonTextTheme.accent") C.cS=new M.v_("ButtonTextTheme.primary") C.nU=new H.wh(P.aFT(),H.T("wh")) C.nV=new P.D1() C.nW=new U.SC() C.aM=new P.Dd() C.nY=new H.SP() C.nZ=new P.T0() C.jd=new P.T_() C.HV=new H.Tw() C.o_=new U.kU() C.o0=new H.E4() C.o1=new H.E7() C.o2=new W.Es() C.j=new P.C(4294967295) C.pO=new P.C(637534208) C.bF=new P.m(0,3) C.nv=new O.bh(0,C.pO,C.bF,8) C.oU=new P.C(251658240) C.nw=new O.bh(0,C.oU,C.bF,1) C.tb=H.b(s([C.nv,C.nw]),t.T) C.o3=new A.V2() C.o4=new H.V9() C.o7=new U.EO(H.T("EO<0&*>")) C.o5=new U.EM() C.o6=new L.EN() C.o8=new U.EP() C.I5=new P.Q(100,100) C.o9=new D.Vb() C.HW=new K.ES(H.T("ES<@>")) C.oa=new L.ET() C.ob=new U.mK() C.K=new M.mL() C.oc=new H.Wj() C.cd=new H.F8(H.T("F8<0&*>")) C.jf=new P.F9() C.af=new P.F9() C.dS=new K.Fo() C.jg=new S.Fy() C.fv=new H.Yb() C.od=new N.Yk() C.oe=new R.Yl() C.jT=new L.vV("FloatingLabelBehavior.auto") C.of=new L.G4() C.ad=new H.G9() C.aN=new H.Ga() C.jh=function getTagFallback(o) { var s = Object.prototype.toString.call(o); return s.substring(8, s.length - 1); } C.og=function() { var toStringFunction = Object.prototype.toString; function getTag(o) { var s = toStringFunction.call(o); return s.substring(8, s.length - 1); } function getUnknownTag(object, tag) { if (/^HTML[A-Z].*Element$/.test(tag)) { var name = toStringFunction.call(object); if (name == "[object Object]") return null; return "HTMLElement"; } } function getUnknownTagGenericBrowser(object, tag) { if (self.HTMLElement && object instanceof HTMLElement) return "HTMLElement"; return getUnknownTag(object, tag); } function prototypeForTag(tag) { if (typeof window == "undefined") return null; if (typeof window[tag] == "undefined") return null; var constructor = window[tag]; if (typeof constructor != "function") return null; return constructor.prototype; } function discriminator(tag) { return null; } var isBrowser = typeof navigator == "object"; return { getTag: getTag, getUnknownTag: isBrowser ? getUnknownTagGenericBrowser : getUnknownTag, prototypeForTag: prototypeForTag, discriminator: discriminator }; } C.ol=function(getTagFallback) { return function(hooks) { if (typeof navigator != "object") return hooks; var ua = navigator.userAgent; if (ua.indexOf("DumpRenderTree") >= 0) return hooks; if (ua.indexOf("Chrome") >= 0) { function confirm(p) { return typeof window == "object" && window[p] && window[p].name == p; } if (confirm("Window") && confirm("HTMLElement")) return hooks; } hooks.getTag = getTagFallback; }; } C.oh=function(hooks) { if (typeof dartExperimentalFixupGetTag != "function") return hooks; hooks.getTag = dartExperimentalFixupGetTag(hooks.getTag); } C.oi=function(hooks) { var getTag = hooks.getTag; var prototypeForTag = hooks.prototypeForTag; function getTagFixed(o) { var tag = getTag(o); if (tag == "Document") { if (!!o.xmlVersion) return "!Document"; return "!HTMLDocument"; } return tag; } function prototypeForTagFixed(tag) { if (tag == "Document") return null; return prototypeForTag(tag); } hooks.getTag = getTagFixed; hooks.prototypeForTag = prototypeForTagFixed; } C.ok=function(hooks) { var userAgent = typeof navigator == "object" ? navigator.userAgent : ""; if (userAgent.indexOf("Firefox") == -1) return hooks; var getTag = hooks.getTag; var quickMap = { "BeforeUnloadEvent": "Event", "DataTransfer": "Clipboard", "GeoGeolocation": "Geolocation", "Location": "!Location", "WorkerMessageEvent": "MessageEvent", "XMLDocument": "!Document"}; function getTagFirefox(o) { var tag = getTag(o); return quickMap[tag] || tag; } hooks.getTag = getTagFirefox; } C.oj=function(hooks) { var userAgent = typeof navigator == "object" ? navigator.userAgent : ""; if (userAgent.indexOf("Trident/") == -1) return hooks; var getTag = hooks.getTag; var quickMap = { "BeforeUnloadEvent": "Event", "DataTransfer": "Clipboard", "HTMLDDElement": "HTMLElement", "HTMLDTElement": "HTMLElement", "HTMLPhraseElement": "HTMLElement", "Position": "Geoposition" }; function getTagIE(o) { var tag = getTag(o); var newTag = quickMap[tag]; if (newTag) return newTag; if (tag == "Object") { if (window.DataView && (o instanceof window.DataView)) return "DataView"; } return tag; } function prototypeForTagIE(tag) { var constructor = window[tag]; if (constructor == null) return null; return constructor.prototype; } hooks.getTag = getTagIE; hooks.prototypeForTag = prototypeForTagIE; } C.ji=function(hooks) { return hooks; } C.Q=new P.ZL() C.aO=new P.Gf() C.om=new S.a_v() C.on=new H.a05() C.oo=new U.qo() C.op=new H.a0z() C.fx=new P.z() C.oq=new P.H4() C.I=new T.dW("TargetPlatform.android") C.z=new T.dW("TargetPlatform.iOS") C.D=new T.dW("TargetPlatform.linux") C.C=new T.dW("TargetPlatform.macOS") C.E=new T.dW("TargetPlatform.windows") C.je=new K.Ey() C.eq=new H.cS([C.I,C.dS,C.z,C.je,C.D,C.dS,C.C,C.je,C.E,C.dS],H.T("cS")) C.or=new K.H6() C.os=new H.Hj() C.jj=new H.xl() C.ot=new H.a18() C.HX=new H.a1s() C.ou=new U.qB() C.nX=new U.kM() C.hJ=new F.IW("ScrollIncrementType.page") C.lH=new F.i5(C.y,C.hJ) C.t3=H.b(s([C.nX,C.lH]),H.T("o")) C.ov=new U.qE() C.ow=new K.IU() C.ce=new H.JL() C.bx=new H.a6j() C.cf=new U.a6k() C.ox=new H.a76() C.oy=new H.a7I() C.U=new P.Kx() C.cg=new P.a7N() C.jk=new S.KV() C.by=new S.KW() C.oz=new L.LR() C.jl=new Z.M0() C.oA=new N.M4() C.oB=new E.a9U() C.cT=new A.M6() C.dT=new P.aa2() C.jm=new A.aai() C.a=new P.aaO() C.oC=new U.abd() C.ah=new Z.AE() C.oD=new U.NB() C.bc=new Y.acX() C.jn=new H.adB() C.F=new P.Pg() C.oE=new A.adY() C.oF=new P.PX() C.oG=new L.R0() C.oH=new Q.TF("CacheExtentStyle.pixel") C.oJ=new A.v6(null,null,null,null,null,null) C.oK=new F.v9(null,null,null,null,null,null,null,null,null) C.jo=new X.eY(C.q) C.oL=new L.vd(C.lp) C.oM=new L.vd(null) C.jp=new P.Ed(0,"ClipOp.difference") C.bP=new P.Ed(1,"ClipOp.intersect") C.V=new P.po("Clip.none") C.ak=new P.po("Clip.hardEdge") C.bQ=new P.po("Clip.antiAlias") C.bR=new P.po("Clip.antiAliasWithSaveLayer") C.oN=new R.En(null) C.aP=new P.C(0) C.jr=new P.C(1087163596) C.oO=new P.C(1308622847) C.oP=new P.C(1375731712) C.oQ=new P.C(1627389952) C.oR=new P.C(1660944383) C.jt=new P.C(16777215) C.ju=new P.C(167772160) C.fz=new P.C(1723645116) C.oS=new P.C(1724434632) C.oT=new P.C(1929379840) C.S=new P.C(2315255808) C.oV=new P.C(2583691263) C.T=new P.C(3019898879) C.J=new P.C(3707764736) C.oY=new P.C(4039164096) C.jz=new P.C(4281348144) C.pe=new P.C(4282549748) C.jE=new P.C(4294901760) C.fC=new P.C(452984831) C.aD=new P.C(520093696) C.pN=new P.C(536870911) C.fE=new F.mF("CrossAxisAlignment.start") C.jF=new F.mF("CrossAxisAlignment.end") C.w=new F.mF("CrossAxisAlignment.center") C.fF=new F.mF("CrossAxisAlignment.stretch") C.fG=new F.mF("CrossAxisAlignment.baseline") C.jG=new Z.hH(0.18,1,0.04,1) C.ax=new Z.hH(0.25,0.1,0.25,1) C.bS=new Z.hH(0.42,0,1,1) C.fH=new Z.hH(0.67,0.03,0.65,0.09) C.al=new Z.hH(0.4,0,0.2,1) C.ch=new Z.hH(0.35,0.91,0.33,0.97) C.fJ=new Z.hH(0,0,0.58,1) C.fI=new Z.hH(0.42,0,0.58,1) C.fD=new P.C(678983808) C.js=new P.C(1366849664) C.jq=new P.C(1031305344) C.jv=new P.C(1719171200) C.pS=new E.dq(C.fD,"secondarySystemFill",null,C.fD,C.js,C.jq,C.jv,C.fD,C.js,C.jq,C.jv,0) C.cY=new P.C(4288256409) C.cX=new P.C(4285887861) C.dW=new E.dq(C.cY,"inactiveGray",null,C.cY,C.cX,C.cY,C.cX,C.cY,C.cX,C.cY,C.cX,0) C.fB=new P.C(4281648985) C.jA=new P.C(4281389400) C.jy=new P.C(4280584765) C.jB=new P.C(4281391963) C.pT=new E.dq(C.fB,"systemGreen",null,C.fB,C.jA,C.jy,C.jB,C.fB,C.jA,C.jy,C.jB,0) C.cV=new P.C(1493172224) C.dU=new P.C(2164260863) C.pV=new E.dq(C.cV,null,null,C.cV,C.dU,C.cV,C.dU,C.cV,C.dU,C.cV,C.dU,0) C.fA=new P.C(4278221567) C.jx=new P.C(4278879487) C.jw=new P.C(4278206685) C.jC=new P.C(4282424575) C.pR=new E.dq(C.fA,"systemBlue",null,C.fA,C.jx,C.jw,C.jC,C.fA,C.jx,C.jw,C.jC,0) C.p3=new P.C(4280032286) C.p8=new P.C(4280558630) C.jH=new E.dq(C.j,"systemBackground",null,C.j,C.t,C.j,C.t,C.j,C.p3,C.j,C.p8,0) C.cW=new P.C(4042914297) C.dV=new P.C(4028439837) C.pU=new E.dq(C.cW,null,null,C.cW,C.dV,C.cW,C.dV,C.cW,C.dV,C.cW,C.dV,0) C.jI=new E.dq(C.t,"label",null,C.t,C.j,C.t,C.j,C.t,C.j,C.t,C.j,0) C.H4=new K.LU(C.jI,C.dW) C.iA=new K.LW(null,C.pR,C.jH,C.pU,C.jH,C.H4) C.bT=new K.vr(C.iA,null,null,null,null,null,null) C.dX=new K.EB("CupertinoUserInterfaceLevelData.base") C.jJ=new K.EB("CupertinoUserInterfaceLevelData.elevated") C.pW=new Z.vv(null,null,null,null,null,null,null,null,null,null,null) C.pX=new A.V8("DebugSemanticsDumpOrder.traversalOrder") C.fK=new E.EJ("DecorationPosition.background") C.pY=new E.EJ("DecorationPosition.foreground") C.F4=new A.w(!0,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null) C.bL=new Q.rR("TextOverflow.clip") C.av=new U.Kb("TextWidthBasis.parent") C.HA=new L.O6(null) C.pZ=new L.pB(C.F4,null,!0,C.bL,null,C.av,null,C.HA,null) C.q_=new Y.pC(0,"DiagnosticLevel.hidden") C.aQ=new Y.pC(3,"DiagnosticLevel.info") C.q0=new Y.pC(5,"DiagnosticLevel.hint") C.q1=new Y.pC(6,"DiagnosticLevel.summary") C.HY=new Y.jz("DiagnosticsTreeStyle.sparse") C.q2=new Y.jz("DiagnosticsTreeStyle.shallow") C.q3=new Y.jz("DiagnosticsTreeStyle.truncateChildren") C.q4=new Y.jz("DiagnosticsTreeStyle.error") C.fL=new Y.jz("DiagnosticsTreeStyle.flat") C.dY=new Y.jz("DiagnosticsTreeStyle.singleLine") C.ci=new Y.jz("DiagnosticsTreeStyle.errorProperty") C.q5=new Y.vy(null,null,null,null,null) C.aL=new U.lQ("TraversalDirection.up") C.q6=new U.mJ(C.aL) C.aW=new U.lQ("TraversalDirection.down") C.q7=new U.mJ(C.aW) C.q8=new G.vA(null,null,null,null,null) C.jK=new S.F5("DragStartBehavior.down") C.a4=new S.F5("DragStartBehavior.start") C.G=new P.aK(0) C.at=new P.aK(1e5) C.e_=new P.aK(1e6) C.q9=new P.aK(12e5) C.qa=new P.aK(125e3) C.qb=new P.aK(15e3) C.e0=new P.aK(15e4) C.qc=new P.aK(15e5) C.qd=new P.aK(16667) C.jL=new P.aK(167e3) C.a9=new P.aK(2e5) C.jM=new P.aK(2e6) C.fM=new P.aK(25e4) C.aE=new P.aK(3e5) C.qe=new P.aK(4e4) C.qf=new P.aK(4e5) C.cZ=new P.aK(5e4) C.e1=new P.aK(5e5) C.qg=new P.aK(5e6) C.d_=new P.aK(6e5) C.qh=new P.aK(75e3) C.qi=new P.aK(-38e3) C.qj=new V.fm(0,0,16,0) C.qk=new V.fm(16,0,24,0) C.aF=new V.X(0,0,0,0) C.ql=new V.X(0,12,0,12) C.qm=new V.X(0,28,0,0) C.cj=new V.X(0,8,0,8) C.qn=new V.X(12,12,12,12) C.qo=new V.X(12,8,12,8) C.d0=new V.X(16,0,16,0) C.qp=new V.X(20,20,20,20) C.jN=new V.X(24,0,24,0) C.qq=new V.X(4,4,4,4) C.HZ=new V.X(4,4,4,5) C.qr=new V.X(8,0,8,0) C.ck=new V.X(8,8,8,8) C.jO=new V.X(0.5,1,0.5,1) C.qs=new T.vJ(null) C.qt=new H.vK("EnabledState.noOpinion") C.qu=new H.vK("EnabledState.enabled") C.fN=new H.vK("EnabledState.disabled") C.fO=new P.pO(0,"FilterQuality.none") C.jP=new P.pO(1,"FilterQuality.low") C.jQ=new P.pO(2,"FilterQuality.medium") C.jR=new P.pO(3,"FilterQuality.high") C.r=new P.Q(0,0) C.qw=new U.Fv(C.r,C.r) C.fP=new F.Fz("FlexFit.tight") C.qx=new F.Fz("FlexFit.loose") C.qy=new S.vT(null,null,null,null,null,null,null,null,null,null,null) C.fQ=new N.vU("FloatingCursorDragState.Start") C.e2=new N.vU("FloatingCursorDragState.Update") C.e3=new N.vU("FloatingCursorDragState.End") C.jS=new L.vV("FloatingLabelBehavior.never") C.fR=new L.vV("FloatingLabelBehavior.always") C.bz=new O.l9("FocusHighlightMode.touch") C.bd=new O.l9("FocusHighlightMode.traditional") C.jU=new O.vY("FocusHighlightStrategy.automatic") C.qz=new O.vY("FocusHighlightStrategy.alwaysTouch") C.qA=new O.vY("FocusHighlightStrategy.alwaysTraditional") C.bA=new P.h5(6) C.jX=new P.h6("Invalid method call",null,null) C.qF=new P.h6("Expected envelope, got nothing",null,null) C.aG=new P.h6("Message corrupted",null,null) C.qG=new P.h6("Invalid envelope",null,null) C.cl=new D.FN("GestureDisposition.accepted") C.am=new D.FN("GestureDisposition.rejected") C.e4=new H.n4("GestureMode.pointerEvents") C.be=new H.n4("GestureMode.browserGestures") C.b1=new S.w4("GestureRecognizerState.ready") C.fT=new S.w4("GestureRecognizerState.possible") C.qH=new S.w4("GestureRecognizerState.defunct") C.bU=new G.FQ("GrowthDirection.forward") C.d1=new G.FQ("GrowthDirection.reverse") C.I_=new R.Y5("HandlerType.route") C.bf=new T.pU("HeroFlightDirection.push") C.bg=new T.pU("HeroFlightDirection.pop") C.d2=new E.w9("HitTestBehavior.deferToChild") C.bh=new E.w9("HitTestBehavior.opaque") C.cm=new E.w9("HitTestBehavior.translucent") C.qI=new X.ch(57442,!1) C.qJ=new X.ch(57472,!1) C.qK=new X.ch(57490,!0) C.qL=new X.ch(57491,!0) C.qN=new X.ch(57605,!1) C.qO=new X.ch(57657,!1) C.jZ=new X.ch(57686,!1) C.k_=new X.ch(57706,!1) C.qP=new X.ch(57714,!1) C.qQ=new X.ch(57787,!1) C.qR=new X.ch(57872,!0) C.k0=new X.ch(57882,!1) C.k1=new X.ch(57912,!1) C.qS=new X.ch(57982,!1) C.qT=new X.ch(58040,!0) C.qU=new X.ch(58100,!1) C.qV=new X.ch(58286,!1) C.qX=new X.ch(58513,!1) C.qY=new X.ch(58704,!1) C.r_=new X.ch(58741,!1) C.r0=new X.ch(58889,!1) C.r1=new X.ch(59110,!1) C.r2=new T.eu(C.J,null,null) C.fU=new T.eu(C.t,1,24) C.k2=new T.eu(C.t,null,null) C.fV=new T.eu(C.j,null,null) C.r3=new L.lc(C.k_,null,null,null) C.qW=new X.ch(58332,!1) C.k3=new L.lc(C.qW,null,null,null) C.qM=new X.ch(57496,!1) C.r4=new L.lc(C.qM,null,null,null) C.qZ=new X.ch(58727,!1) C.r5=new L.lc(C.qZ,null,null,null) C.k4=new P.Z1("ImageByteFormat.rawRgba") C.r7=new X.pX("ImageRepeat.repeat") C.r8=new X.pX("ImageRepeat.repeatX") C.r9=new X.pX("ImageRepeat.repeatY") C.bV=new X.pX("ImageRepeat.noRepeat") C.I0=new L.wg(null,null,null,null,null,null,null,null,null,null,null,null,null,!0,null,null,null,!1,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,!0,null,null) C.re=new Z.iI(0,0.1,C.ah) C.rb=new Z.iI(0,0.25,C.ah) C.rd=new Z.iI(0.25,0.5,C.ah) C.rc=new Z.iI(0.75,1,C.ah) C.k6=new Z.iI(0.5,1,C.ax) C.rh=new P.ZM(null) C.ri=new P.ZN(null) C.k7=new O.li("KeyEventResult.handled") C.e5=new O.li("KeyEventResult.ignored") C.k8=new O.li("KeyEventResult.skipRemainingHandlers") C.e6=new P.ws("KeyEventType.down") C.bW=new P.ws("KeyEventType.up") C.fW=new P.ws("KeyEventType.repeat") C.e7=new B.nk("KeyboardSide.any") C.bi=new B.nk("KeyboardSide.all") C.rk=new P.a_8(!1,255) C.k9=new P.a_9(255) C.bj=new H.qa("LineBreakType.mandatory") C.ka=new H.dc(0,0,0,C.bj) C.cn=new H.qa("LineBreakType.opportunity") C.d4=new H.qa("LineBreakType.prohibited") C.aR=new H.qa("LineBreakType.endOfText") C.fX=new H.bl("LineCharProperty.CM") C.ea=new H.bl("LineCharProperty.BA") C.bX=new H.bl("LineCharProperty.PO") C.co=new H.bl("LineCharProperty.OP") C.cp=new H.bl("LineCharProperty.CP") C.eb=new H.bl("LineCharProperty.IS") C.d5=new H.bl("LineCharProperty.HY") C.fY=new H.bl("LineCharProperty.SY") C.bB=new H.bl("LineCharProperty.NU") C.ec=new H.bl("LineCharProperty.CL") C.fZ=new H.bl("LineCharProperty.GL") C.kb=new H.bl("LineCharProperty.BB") C.d6=new H.bl("LineCharProperty.LF") C.aH=new H.bl("LineCharProperty.HL") C.ed=new H.bl("LineCharProperty.JL") C.d7=new H.bl("LineCharProperty.JV") C.d8=new H.bl("LineCharProperty.JT") C.h_=new H.bl("LineCharProperty.NS") C.ee=new H.bl("LineCharProperty.ZW") C.h0=new H.bl("LineCharProperty.ZWJ") C.ef=new H.bl("LineCharProperty.B2") C.kc=new H.bl("LineCharProperty.IN") C.eg=new H.bl("LineCharProperty.WJ") C.eh=new H.bl("LineCharProperty.BK") C.h1=new H.bl("LineCharProperty.ID") C.ei=new H.bl("LineCharProperty.EB") C.d9=new H.bl("LineCharProperty.H2") C.da=new H.bl("LineCharProperty.H3") C.h2=new H.bl("LineCharProperty.CB") C.h3=new H.bl("LineCharProperty.RI") C.ej=new H.bl("LineCharProperty.EM") C.ek=new H.bl("LineCharProperty.CR") C.el=new H.bl("LineCharProperty.SP") C.kd=new H.bl("LineCharProperty.EX") C.em=new H.bl("LineCharProperty.QU") C.b2=new H.bl("LineCharProperty.AL") C.en=new H.bl("LineCharProperty.PR") C.rm=new U.qc(C.o7,t.wO) C.cu=new B.fx("ModifierKey.controlModifier") C.cv=new B.fx("ModifierKey.shiftModifier") C.cw=new B.fx("ModifierKey.altModifier") C.cx=new B.fx("ModifierKey.metaModifier") C.ho=new B.fx("ModifierKey.capsLockModifier") C.hp=new B.fx("ModifierKey.numLockModifier") C.hq=new B.fx("ModifierKey.scrollLockModifier") C.hr=new B.fx("ModifierKey.functionModifier") C.l1=new B.fx("ModifierKey.symbolModifier") C.rn=H.b(s([C.cu,C.cv,C.cw,C.cx,C.ho,C.hp,C.hq,C.hr,C.l1]),H.T("o")) C.rp=H.b(s([0,1]),t.g5) C.fS=new P.h5(0) C.qB=new P.h5(1) C.qC=new P.h5(2) C.X=new P.h5(3) C.b0=new P.h5(4) C.qD=new P.h5(5) C.qE=new P.h5(7) C.jV=new P.h5(8) C.ru=H.b(s([C.fS,C.qB,C.qC,C.X,C.b0,C.qD,C.bA,C.qE,C.jV]),H.T("o")) C.ke=H.b(s([0,0,32776,33792,1,10240,0,0]),t.a) C.rx=H.b(s(["*::class","*::dir","*::draggable","*::hidden","*::id","*::inert","*::itemprop","*::itemref","*::itemscope","*::lang","*::spellcheck","*::title","*::translate","A::accesskey","A::coords","A::hreflang","A::name","A::shape","A::tabindex","A::target","A::type","AREA::accesskey","AREA::alt","AREA::coords","AREA::nohref","AREA::shape","AREA::tabindex","AREA::target","AUDIO::controls","AUDIO::loop","AUDIO::mediagroup","AUDIO::muted","AUDIO::preload","BDO::dir","BODY::alink","BODY::bgcolor","BODY::link","BODY::text","BODY::vlink","BR::clear","BUTTON::accesskey","BUTTON::disabled","BUTTON::name","BUTTON::tabindex","BUTTON::type","BUTTON::value","CANVAS::height","CANVAS::width","CAPTION::align","COL::align","COL::char","COL::charoff","COL::span","COL::valign","COL::width","COLGROUP::align","COLGROUP::char","COLGROUP::charoff","COLGROUP::span","COLGROUP::valign","COLGROUP::width","COMMAND::checked","COMMAND::command","COMMAND::disabled","COMMAND::label","COMMAND::radiogroup","COMMAND::type","DATA::value","DEL::datetime","DETAILS::open","DIR::compact","DIV::align","DL::compact","FIELDSET::disabled","FONT::color","FONT::face","FONT::size","FORM::accept","FORM::autocomplete","FORM::enctype","FORM::method","FORM::name","FORM::novalidate","FORM::target","FRAME::name","H1::align","H2::align","H3::align","H4::align","H5::align","H6::align","HR::align","HR::noshade","HR::size","HR::width","HTML::version","IFRAME::align","IFRAME::frameborder","IFRAME::height","IFRAME::marginheight","IFRAME::marginwidth","IFRAME::width","IMG::align","IMG::alt","IMG::border","IMG::height","IMG::hspace","IMG::ismap","IMG::name","IMG::usemap","IMG::vspace","IMG::width","INPUT::accept","INPUT::accesskey","INPUT::align","INPUT::alt","INPUT::autocomplete","INPUT::autofocus","INPUT::checked","INPUT::disabled","INPUT::inputmode","INPUT::ismap","INPUT::list","INPUT::max","INPUT::maxlength","INPUT::min","INPUT::multiple","INPUT::name","INPUT::placeholder","INPUT::readonly","INPUT::required","INPUT::size","INPUT::step","INPUT::tabindex","INPUT::type","INPUT::usemap","INPUT::value","INS::datetime","KEYGEN::disabled","KEYGEN::keytype","KEYGEN::name","LABEL::accesskey","LABEL::for","LEGEND::accesskey","LEGEND::align","LI::type","LI::value","LINK::sizes","MAP::name","MENU::compact","MENU::label","MENU::type","METER::high","METER::low","METER::max","METER::min","METER::value","OBJECT::typemustmatch","OL::compact","OL::reversed","OL::start","OL::type","OPTGROUP::disabled","OPTGROUP::label","OPTION::disabled","OPTION::label","OPTION::selected","OPTION::value","OUTPUT::for","OUTPUT::name","P::align","PRE::width","PROGRESS::max","PROGRESS::min","PROGRESS::value","SELECT::autocomplete","SELECT::disabled","SELECT::multiple","SELECT::name","SELECT::required","SELECT::size","SELECT::tabindex","SOURCE::type","TABLE::align","TABLE::bgcolor","TABLE::border","TABLE::cellpadding","TABLE::cellspacing","TABLE::frame","TABLE::rules","TABLE::summary","TABLE::width","TBODY::align","TBODY::char","TBODY::charoff","TBODY::valign","TD::abbr","TD::align","TD::axis","TD::bgcolor","TD::char","TD::charoff","TD::colspan","TD::headers","TD::height","TD::nowrap","TD::rowspan","TD::scope","TD::valign","TD::width","TEXTAREA::accesskey","TEXTAREA::autocomplete","TEXTAREA::cols","TEXTAREA::disabled","TEXTAREA::inputmode","TEXTAREA::name","TEXTAREA::placeholder","TEXTAREA::readonly","TEXTAREA::required","TEXTAREA::rows","TEXTAREA::tabindex","TEXTAREA::wrap","TFOOT::align","TFOOT::char","TFOOT::charoff","TFOOT::valign","TH::abbr","TH::align","TH::axis","TH::bgcolor","TH::char","TH::charoff","TH::colspan","TH::headers","TH::height","TH::nowrap","TH::rowspan","TH::scope","TH::valign","TH::width","THEAD::align","THEAD::char","THEAD::charoff","THEAD::valign","TR::align","TR::bgcolor","TR::char","TR::charoff","TR::valign","TRACK::default","TRACK::kind","TRACK::label","TRACK::srclang","UL::compact","UL::type","VIDEO::controls","VIDEO::height","VIDEO::loop","VIDEO::mediagroup","VIDEO::muted","VIDEO::preload","VIDEO::width"]),t.i) C.rN=H.b(s([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),t.a) C.eo=H.b(s([0,0,65490,45055,65535,34815,65534,18431]),t.a) C.t0=H.b(s(["pointerdown","pointermove","pointerup","pointercancel","touchstart","touchend","touchmove","touchcancel","mousedown","mousemove","mouseup","keyup","keydown"]),t.i) C.kf=H.b(s(["text","multiline","number","phone","datetime","emailAddress","url","visiblePassword","name","address"]),t.i) C.kg=H.b(s([0,0,26624,1023,65534,2047,65534,2047]),t.a) C.t2=H.b(s([0,0,26498,1023,65534,34815,65534,18431]),t.a) C.tI=new P.jS("en","US") C.kh=H.b(s([C.tI]),t._p) C.aK=new P.yU("TextAffinity.upstream") C.l=new P.yU("TextAffinity.downstream") C.t6=H.b(s([C.aK,C.l]),H.T("o")) C.p=new P.oj(0,"TextDirection.rtl") C.m=new P.oj(1,"TextDirection.ltr") C.t7=H.b(s([C.p,C.m]),H.T("o")) C.eI=new P.kg(0,"TextAlign.left") C.c3=new P.kg(1,"TextAlign.right") C.c4=new P.kg(2,"TextAlign.center") C.hZ=new P.kg(3,"TextAlign.justify") C.ag=new P.kg(4,"TextAlign.start") C.cF=new P.kg(5,"TextAlign.end") C.t8=H.b(s([C.eI,C.c3,C.c4,C.hZ,C.ag,C.cF]),H.T("o")) C.f7=new K.Bj(0,"_RouteRestorationType.named") C.mO=new K.Bj(1,"_RouteRestorationType.anonymous") C.tc=H.b(s([C.f7,C.mO]),H.T("o")) C.im=new H.cR("WordCharProperty.DoubleQuote") C.cK=new H.cR("WordCharProperty.SingleQuote") C.aq=new H.cR("WordCharProperty.HebrewLetter") C.eQ=new H.cR("WordCharProperty.CR") C.eR=new H.cR("WordCharProperty.LF") C.ir=new H.cR("WordCharProperty.Newline") C.dD=new H.cR("WordCharProperty.Extend") C.H1=new H.cR("WordCharProperty.RegionalIndicator") C.dE=new H.cR("WordCharProperty.Format") C.dF=new H.cR("WordCharProperty.Katakana") C.aY=new H.cR("WordCharProperty.ALetter") C.io=new H.cR("WordCharProperty.MidLetter") C.ip=new H.cR("WordCharProperty.MidNum") C.dB=new H.cR("WordCharProperty.MidNumLet") C.bt=new H.cR("WordCharProperty.Numeric") C.eP=new H.cR("WordCharProperty.ExtendNumLet") C.dC=new H.cR("WordCharProperty.ZWJ") C.iq=new H.cR("WordCharProperty.WSegSpace") C.mw=new H.cR("WordCharProperty.Unknown") C.td=H.b(s([C.im,C.cK,C.aq,C.eQ,C.eR,C.ir,C.dD,C.H1,C.dE,C.dF,C.aY,C.io,C.ip,C.dB,C.bt,C.eP,C.dC,C.iq,C.mw]),H.T("o")) C.te=H.b(s(["click","scroll"]),t.i) C.tf=H.b(s(["HEAD","AREA","BASE","BASEFONT","BR","COL","COLGROUP","EMBED","FRAME","FRAMESET","HR","IMAGE","IMG","INPUT","ISINDEX","LINK","META","PARAM","SOURCE","STYLE","TITLE","WBR"]),t.i) C.bk=H.b(s([]),t.ee) C.ki=H.b(s([]),H.T("o")) C.kk=H.b(s([]),H.T("o")) C.tp=H.b(s([]),H.T("o")) C.tm=H.b(s([]),H.T("o")) C.I1=H.b(s([]),t._p) C.tk=H.b(s([]),H.T("o")) C.kn=H.b(s([]),H.T("o")) C.tl=H.b(s([]),H.T("o*>")) C.h5=H.b(s([]),H.T("o")) C.cq=H.b(s([]),t.i) C.I2=H.b(s([]),t.w2) C.ko=H.b(s([]),H.T("o")) C.kj=H.b(s([]),t.Y) C.to=H.b(s([]),H.T("o")) C.kl=H.b(s([]),t.g5) C.tn=H.b(s([]),t.iG) C.tt=H.b(s([0,0,32722,12287,65534,34815,65534,18431]),t.a) C.h6=H.b(s([0,0,65498,45055,65535,34815,65534,18431]),t.a) C.ep=H.b(s([0,0,24576,1023,65534,34815,65534,18431]),t.a) C.tC=H.b(s([0,0,32754,11263,65534,34815,65534,18431]),t.a) C.kp=H.b(s([0,0,65490,12287,65535,34815,65534,18431]),t.a) C.M=new T.dW("TargetPlatform.fuchsia") C.tD=H.b(s([C.I,C.M,C.z,C.D,C.C,C.E]),H.T("o")) C.kq=H.b(s(["bind","if","ref","repeat","syntax"]),t.i) C.tF=H.b(s([0,4,12,1,5,13,3,7,15]),t.a) C.h7=H.b(s(["A::href","AREA::href","BLOCKQUOTE::cite","BODY::background","COMMAND::icon","DEL::cite","FORM::action","IMG::src","INPUT::src","INS::cite","Q::cite","VIDEO::poster"]),t.i) C.iw=new D.t9("_CornerId.topLeft") C.iz=new D.t9("_CornerId.bottomRight") C.H5=new D.jb(C.iw,C.iz) C.H8=new D.jb(C.iz,C.iw) C.ix=new D.t9("_CornerId.topRight") C.iy=new D.t9("_CornerId.bottomLeft") C.H6=new D.jb(C.ix,C.iy) C.H7=new D.jb(C.iy,C.ix) C.tG=H.b(s([C.H5,C.H8,C.H6,C.H7]),H.T("o")) C.tH=H.b(s([C.fX,C.ea,C.d6,C.eh,C.ek,C.el,C.kd,C.em,C.b2,C.en,C.bX,C.co,C.cp,C.eb,C.d5,C.fY,C.bB,C.ec,C.fZ,C.kb,C.aH,C.ed,C.d7,C.d8,C.h_,C.ee,C.h0,C.ef,C.kc,C.eg,C.h1,C.ei,C.d9,C.da,C.h2,C.h3,C.ej]),H.T("o")) C.cr=new G.n(2203318681824) C.ae=new G.n(2203318681825) C.b3=new G.n(2203318681826) C.b4=new G.n(2203318681827) C.h8=new G.n(32) C.kr=new G.n(4294967314) C.ks=new G.n(4295426088) C.kt=new G.n(4295426089) C.h9=new G.n(4295426091) C.ku=new G.n(4295426105) C.kv=new G.n(4295426119) C.ha=new G.n(4295426122) C.kw=new G.n(4295426123) C.hb=new G.n(4295426125) C.kx=new G.n(4295426126) C.b5=new G.n(4295426127) C.b6=new G.n(4295426128) C.bl=new G.n(4295426129) C.bm=new G.n(4295426130) C.ky=new G.n(4295426131) C.hc=new G.n(4295426272) C.hd=new G.n(4295426273) C.he=new G.n(4295426274) C.hf=new G.n(4295426275) C.hg=new G.n(4295426276) C.hh=new G.n(4295426277) C.hi=new G.n(4295426278) C.hj=new G.n(4295426279) C.i=new P.m(0,0) C.c6=new R.j7(C.i) C.wH=new T.qe(C.i,C.c6) C.wI=new E.a_o("longPress") C.wJ=new T.qf(C.i,C.i) C.B=new F.ll("MainAxisAlignment.start") C.wK=new F.ll("MainAxisAlignment.end") C.hk=new F.ll("MainAxisAlignment.center") C.kS=new F.ll("MainAxisAlignment.spaceBetween") C.wL=new F.ll("MainAxisAlignment.spaceAround") C.wM=new F.ll("MainAxisAlignment.spaceEvenly") C.wN=new F.Gu("MainAxisSize.min") C.x=new F.Gu("MainAxisSize.max") C.ro=H.b(s(["BU","DD","FX","TP","YD","ZR"]),t.i) C.bn=new H.bs(6,{BU:"MM",DD:"DE",FX:"FR",TP:"TL",YD:"YE",ZR:"CD"},C.ro,t.uI) C.tg=H.b(s([]),t.T) C.b_=new P.C(855638016) C.ht=new P.m(0,2) C.nm=new O.bh(-1,C.b_,C.ht,1) C.aZ=new P.C(603979776) C.az=new P.m(0,1) C.nx=new O.bh(0,C.aZ,C.az,1) C.nI=new O.bh(0,C.aD,C.az,3) C.rY=H.b(s([C.nm,C.nx,C.nI]),t.T) C.ns=new O.bh(-2,C.b_,C.bF,1) C.nK=new O.bh(0,C.aZ,C.ht,2) C.nL=new O.bh(0,C.aD,C.az,5) C.tq=H.b(s([C.ns,C.nK,C.nL]),t.T) C.nt=new O.bh(-2,C.b_,C.bF,3) C.nM=new O.bh(0,C.aZ,C.bF,4) C.nN=new O.bh(0,C.aD,C.az,8) C.tr=H.b(s([C.nt,C.nM,C.nN]),t.T) C.nn=new O.bh(-1,C.b_,C.ht,4) C.xr=new P.m(0,4) C.nO=new O.bh(0,C.aZ,C.xr,5) C.nP=new O.bh(0,C.aD,C.az,10) C.rZ=H.b(s([C.nn,C.nO,C.nP]),t.T) C.no=new O.bh(-1,C.b_,C.bF,5) C.la=new P.m(0,6) C.nQ=new O.bh(0,C.aZ,C.la,10) C.ny=new O.bh(0,C.aD,C.az,18) C.t_=H.b(s([C.no,C.nQ,C.ny]),t.T) C.hu=new P.m(0,5) C.nq=new O.bh(-3,C.b_,C.hu,5) C.lb=new P.m(0,8) C.nz=new O.bh(1,C.aZ,C.lb,10) C.nA=new O.bh(2,C.aD,C.bF,14) C.rO=H.b(s([C.nq,C.nz,C.nA]),t.T) C.nr=new O.bh(-3,C.b_,C.hu,6) C.lc=new P.m(0,9) C.nB=new O.bh(1,C.aZ,C.lc,12) C.nC=new O.bh(2,C.aD,C.bF,16) C.rP=H.b(s([C.nr,C.nB,C.nC]),t.T) C.xs=new P.m(0,7) C.nR=new O.bh(-4,C.b_,C.xs,8) C.xo=new P.m(0,12) C.nD=new O.bh(2,C.aZ,C.xo,17) C.nE=new O.bh(4,C.aD,C.hu,22) C.t1=H.b(s([C.nR,C.nD,C.nE]),t.T) C.np=new O.bh(-5,C.b_,C.lb,10) C.xp=new P.m(0,16) C.nF=new O.bh(2,C.aZ,C.xp,24) C.nG=new O.bh(5,C.aD,C.la,30) C.rv=H.b(s([C.np,C.nF,C.nG]),t.T) C.xn=new P.m(0,11) C.nu=new O.bh(-7,C.b_,C.xn,15) C.xq=new P.m(0,24) C.nH=new O.bh(3,C.aZ,C.xq,38) C.nJ=new O.bh(8,C.aD,C.lc,46) C.tA=H.b(s([C.nu,C.nH,C.nJ]),t.T) C.kT=new H.cS([0,C.tg,1,C.rY,2,C.tq,3,C.tr,4,C.rZ,6,C.t_,8,C.rO,9,C.rP,12,C.t1,16,C.rv,24,C.tA],H.T("cS*>")) C.tv=H.b(s(["mode"]),t.i) C.db=new H.bs(1,{mode:"basic"},C.tv,t.uI) C.pJ=new P.C(4294638330) C.pI=new P.C(4294309365) C.pE=new P.C(4293848814) C.pz=new P.C(4292927712) C.py=new P.C(4292269782) C.pq=new P.C(4288585374) C.pj=new P.C(4284572001) C.pd=new P.C(4282532418) C.p6=new P.C(4280361249) C.aa=new H.cS([50,C.pJ,100,C.pI,200,C.pE,300,C.pz,350,C.py,400,C.jD,500,C.pq,600,C.cX,700,C.pj,800,C.pd,850,C.jz,900,C.p6],t.r9) C.pL=new P.C(4294962158) C.pK=new P.C(4294954450) C.pG=new P.C(4293892762) C.pC=new P.C(4293227379) C.pF=new P.C(4293874512) C.pH=new P.C(4294198070) C.pB=new P.C(4293212469) C.px=new P.C(4292030255) C.pv=new P.C(4291176488) C.pt=new P.C(4290190364) C.dc=new H.cS([50,C.pL,100,C.pK,200,C.pG,300,C.pC,400,C.pF,500,C.pH,600,C.pB,700,C.px,800,C.pv,900,C.pt],t.r9) C.pA=new P.C(4293128957) C.pu=new P.C(4290502395) C.pp=new P.C(4287679225) C.pk=new P.C(4284790262) C.pf=new P.C(4282557941) C.p7=new P.C(4280391411) C.p5=new P.C(4280191205) C.p1=new P.C(4279858898) C.p0=new P.C(4279592384) C.p_=new P.C(4279060385) C.aI=new H.cS([50,C.pA,100,C.pu,200,C.pp,300,C.pk,400,C.pf,500,C.p7,600,C.p5,700,C.p1,800,C.p0,900,C.p_],t.r9) C.t5=H.b(s(["0","1","2","3","4","5","6","7","8","9",".","Insert","End","ArrowDown","PageDown","ArrowLeft","Clear","ArrowRight","Home","ArrowUp","PageUp","Delete","/","*","-","+","Enter","Shift","Control","Alt","Meta"]),t.i) C.rD=H.b(s([48,null,null,8589934640]),t.Z) C.rE=H.b(s([49,null,null,8589934641]),t.Z) C.rF=H.b(s([50,null,null,8589934642]),t.Z) C.rG=H.b(s([51,null,null,8589934643]),t.Z) C.rH=H.b(s([52,null,null,8589934644]),t.Z) C.rI=H.b(s([53,null,null,8589934645]),t.Z) C.rJ=H.b(s([54,null,null,8589934646]),t.Z) C.rK=H.b(s([55,null,null,8589934647]),t.Z) C.rL=H.b(s([56,null,null,8589934648]),t.Z) C.rM=H.b(s([57,null,null,8589934649]),t.Z) C.rB=H.b(s([46,null,null,8589934638]),t.Z) C.rr=H.b(s([1031,null,null,8589934640]),t.Z) C.rU=H.b(s([773,null,null,8589934641]),t.Z) C.rQ=H.b(s([769,null,null,8589934642]),t.Z) C.rW=H.b(s([775,null,null,8589934643]),t.Z) C.rR=H.b(s([770,null,null,8589934644]),t.Z) C.rq=H.b(s([1025,null,null,8589934645]),t.Z) C.rS=H.b(s([771,null,null,8589934646]),t.Z) C.rV=H.b(s([774,null,null,8589934647]),t.Z) C.rT=H.b(s([772,null,null,8589934648]),t.Z) C.rX=H.b(s([776,null,null,8589934649]),t.Z) C.rs=H.b(s([127,null,null,8589934638]),t.Z) C.rC=H.b(s([47,null,null,8589934639]),t.Z) C.ry=H.b(s([42,null,null,8589934634]),t.Z) C.rA=H.b(s([45,null,null,8589934637]),t.Z) C.rz=H.b(s([43,null,null,8589934635]),t.Z) C.rt=H.b(s([13,null,null,8589934605]),t.Z) C.tz=H.b(s([null,12884902157,17179869453,null]),t.Z) C.tx=H.b(s([null,12884902149,17179869445,null]),t.Z) C.tw=H.b(s([null,12884902146,17179869442,null]),t.Z) C.ty=H.b(s([null,12884902153,17179869449,null]),t.Z) C.kU=new H.bs(31,{"0":C.rD,"1":C.rE,"2":C.rF,"3":C.rG,"4":C.rH,"5":C.rI,"6":C.rJ,"7":C.rK,"8":C.rL,"9":C.rM,".":C.rB,Insert:C.rr,End:C.rU,ArrowDown:C.rQ,PageDown:C.rW,ArrowLeft:C.rR,Clear:C.rq,ArrowRight:C.rS,Home:C.rV,ArrowUp:C.rT,PageUp:C.rX,Delete:C.rs,"/":C.rC,"*":C.ry,"-":C.rA,"+":C.rz,Enter:C.rt,Shift:C.tz,Control:C.tx,Alt:C.tw,Meta:C.ty},C.t5,H.T("bs*>")) C.t9=H.b(s(["in","iw","ji","jw","mo","aam","adp","aue","ayx","bgm","bjd","ccq","cjr","cka","cmk","coy","cqu","drh","drw","gav","gfx","ggn","gti","guv","hrr","ibi","ilw","jeg","kgc","kgh","koj","krm","ktr","kvs","kwq","kxe","kzj","kzt","lii","lmm","meg","mst","mwj","myt","nad","ncp","nnx","nts","oun","pcr","pmc","pmu","ppa","ppr","pry","puz","sca","skk","tdu","thc","thx","tie","tkk","tlw","tmp","tne","tnf","tsf","uok","xba","xia","xkh","xsj","ybd","yma","ymt","yos","yuu"]),t.i) C.b7=new H.bs(78,{in:"id",iw:"he",ji:"yi",jw:"jv",mo:"ro",aam:"aas",adp:"dz",aue:"ktz",ayx:"nun",bgm:"bcg",bjd:"drl",ccq:"rki",cjr:"mom",cka:"cmr",cmk:"xch",coy:"pij",cqu:"quh",drh:"khk",drw:"prs",gav:"dev",gfx:"vaj",ggn:"gvr",gti:"nyc",guv:"duz",hrr:"jal",ibi:"opa",ilw:"gal",jeg:"oyb",kgc:"tdf",kgh:"kml",koj:"kwv",krm:"bmf",ktr:"dtp",kvs:"gdj",kwq:"yam",kxe:"tvd",kzj:"dtp",kzt:"dtp",lii:"raq",lmm:"rmx",meg:"cir",mst:"mry",mwj:"vaj",myt:"mry",nad:"xny",ncp:"kdz",nnx:"ngv",nts:"pij",oun:"vaj",pcr:"adx",pmc:"huw",pmu:"phr",ppa:"bfy",ppr:"lcq",pry:"prt",puz:"pub",sca:"hle",skk:"oyb",tdu:"dtp",thc:"tpo",thx:"oyb",tie:"ras",tkk:"twm",tlw:"weo",tmp:"tyj",tne:"kak",tnf:"prs",tsf:"taj",uok:"ema",xba:"cax",xia:"acn",xkh:"waw",xsj:"suj",ybd:"rki",yma:"lrr",ymt:"mtm",yos:"zom",yuu:"yug"},C.t9,t.uI) C.h4=H.b(s(["None","Hyper","Super","FnLock","Suspend","Resume","Turbo","PrivacyScreenToggle","Sleep","WakeUp","DisplayToggleIntExt","KeyA","KeyB","KeyC","KeyD","KeyE","KeyF","KeyG","KeyH","KeyI","KeyJ","KeyK","KeyL","KeyM","KeyN","KeyO","KeyP","KeyQ","KeyR","KeyS","KeyT","KeyU","KeyV","KeyW","KeyX","KeyY","KeyZ","Digit1","Digit2","Digit3","Digit4","Digit5","Digit6","Digit7","Digit8","Digit9","Digit0","Enter","Escape","Backspace","Tab","Space","Minus","Equal","BracketLeft","BracketRight","Backslash","Semicolon","Quote","Backquote","Comma","Period","Slash","CapsLock","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","PrintScreen","ScrollLock","Pause","Insert","Home","PageUp","Delete","End","PageDown","ArrowRight","ArrowLeft","ArrowDown","ArrowUp","NumLock","NumpadDivide","NumpadMultiply","NumpadSubtract","NumpadAdd","NumpadEnter","Numpad1","Numpad2","Numpad3","Numpad4","Numpad5","Numpad6","Numpad7","Numpad8","Numpad9","Numpad0","NumpadDecimal","IntlBackslash","ContextMenu","Power","NumpadEqual","F13","F14","F15","F16","F17","F18","F19","F20","F21","F22","F23","F24","Open","Help","Select","Again","Undo","Cut","Copy","Paste","Find","AudioVolumeMute","AudioVolumeUp","AudioVolumeDown","NumpadComma","IntlRo","KanaMode","IntlYen","Convert","NonConvert","Lang1","Lang2","Lang3","Lang4","Lang5","Abort","Props","NumpadParenLeft","NumpadParenRight","NumpadBackspace","NumpadMemoryStore","NumpadMemoryRecall","NumpadMemoryClear","NumpadMemoryAdd","NumpadMemorySubtract","NumpadClear","NumpadClearEntry","ControlLeft","ShiftLeft","AltLeft","MetaLeft","ControlRight","ShiftRight","AltRight","MetaRight","BrightnessUp","BrightnessDown","MediaPlay","MediaPause","MediaRecord","MediaFastForward","MediaRewind","MediaTrackNext","MediaTrackPrevious","MediaStop","Eject","MediaPlayPause","MediaSelect","LaunchMail","LaunchApp2","LaunchApp1","LaunchControlPanel","SelectTask","LaunchScreenSaver","LaunchAssistant","BrowserSearch","BrowserHome","BrowserBack","BrowserForward","BrowserStop","BrowserRefresh","BrowserFavorites","ZoomToggle","MailReply","MailForward","MailSend","KeyboardLayoutSelect","ShowAllWindows","GameButton1","GameButton2","GameButton3","GameButton4","GameButton5","GameButton6","GameButton7","GameButton8","GameButton9","GameButton10","GameButton11","GameButton12","GameButton13","GameButton14","GameButton15","GameButton16","GameButtonA","GameButtonB","GameButtonC","GameButtonLeft1","GameButtonLeft2","GameButtonMode","GameButtonRight1","GameButtonRight2","GameButtonSelect","GameButtonStart","GameButtonThumbLeft","GameButtonThumbRight","GameButtonX","GameButtonY","GameButtonZ","Fn"]),t.i) C.ll=new G.q(0) C.xM=new G.q(16) C.xN=new G.q(17) C.xO=new G.q(19) C.xP=new G.q(20) C.xQ=new G.q(21) C.xR=new G.q(22) C.xS=new G.q(23) C.AE=new G.q(65666) C.AF=new G.q(65667) C.AG=new G.q(65717) C.yn=new G.q(458756) C.yo=new G.q(458757) C.yp=new G.q(458758) C.yq=new G.q(458759) C.yr=new G.q(458760) C.ys=new G.q(458761) C.yt=new G.q(458762) C.yu=new G.q(458763) C.yv=new G.q(458764) C.yw=new G.q(458765) C.yx=new G.q(458766) C.yy=new G.q(458767) C.yz=new G.q(458768) C.yA=new G.q(458769) C.yB=new G.q(458770) C.yC=new G.q(458771) C.yD=new G.q(458772) C.yE=new G.q(458773) C.yF=new G.q(458774) C.yG=new G.q(458775) C.yH=new G.q(458776) C.yI=new G.q(458777) C.yJ=new G.q(458778) C.yK=new G.q(458779) C.yL=new G.q(458780) C.yM=new G.q(458781) C.yN=new G.q(458782) C.yO=new G.q(458783) C.yP=new G.q(458784) C.yQ=new G.q(458785) C.yR=new G.q(458786) C.yS=new G.q(458787) C.yT=new G.q(458788) C.yU=new G.q(458789) C.yV=new G.q(458790) C.yW=new G.q(458791) C.yX=new G.q(458792) C.yY=new G.q(458793) C.yZ=new G.q(458794) C.z_=new G.q(458795) C.z0=new G.q(458796) C.z1=new G.q(458797) C.z2=new G.q(458798) C.z3=new G.q(458799) C.z4=new G.q(458800) C.z5=new G.q(458801) C.z6=new G.q(458803) C.z7=new G.q(458804) C.z8=new G.q(458805) C.z9=new G.q(458806) C.za=new G.q(458807) C.zb=new G.q(458808) C.hw=new G.q(458809) C.zc=new G.q(458810) C.zd=new G.q(458811) C.ze=new G.q(458812) C.zf=new G.q(458813) C.zg=new G.q(458814) C.zh=new G.q(458815) C.zi=new G.q(458816) C.zj=new G.q(458817) C.zk=new G.q(458818) C.zl=new G.q(458819) C.zm=new G.q(458820) C.zn=new G.q(458821) C.zo=new G.q(458822) C.hx=new G.q(458823) C.zp=new G.q(458824) C.zq=new G.q(458825) C.zr=new G.q(458826) C.zs=new G.q(458827) C.zt=new G.q(458828) C.zu=new G.q(458829) C.zv=new G.q(458830) C.zw=new G.q(458831) C.zx=new G.q(458832) C.zy=new G.q(458833) C.zz=new G.q(458834) C.hy=new G.q(458835) C.zA=new G.q(458836) C.zB=new G.q(458837) C.zC=new G.q(458838) C.zD=new G.q(458839) C.zE=new G.q(458840) C.zF=new G.q(458841) C.zG=new G.q(458842) C.zH=new G.q(458843) C.zI=new G.q(458844) C.zJ=new G.q(458845) C.zK=new G.q(458846) C.zL=new G.q(458847) C.zM=new G.q(458848) C.zN=new G.q(458849) C.zO=new G.q(458850) C.zP=new G.q(458851) C.zQ=new G.q(458852) C.zR=new G.q(458853) C.zS=new G.q(458854) C.zT=new G.q(458855) C.zU=new G.q(458856) C.zV=new G.q(458857) C.zW=new G.q(458858) C.zX=new G.q(458859) C.zY=new G.q(458860) C.zZ=new G.q(458861) C.A_=new G.q(458862) C.A0=new G.q(458863) C.A1=new G.q(458864) C.A2=new G.q(458865) C.A3=new G.q(458866) C.A4=new G.q(458867) C.A5=new G.q(458868) C.A6=new G.q(458869) C.A7=new G.q(458871) C.A8=new G.q(458873) C.A9=new G.q(458874) C.Aa=new G.q(458875) C.Ab=new G.q(458876) C.Ac=new G.q(458877) C.Ad=new G.q(458878) C.Ae=new G.q(458879) C.Af=new G.q(458880) C.Ag=new G.q(458881) C.Ah=new G.q(458885) C.Ai=new G.q(458887) C.Aj=new G.q(458888) C.Ak=new G.q(458889) C.Al=new G.q(458890) C.Am=new G.q(458891) C.An=new G.q(458896) C.Ao=new G.q(458897) C.Ap=new G.q(458898) C.Aq=new G.q(458899) C.Ar=new G.q(458900) C.As=new G.q(458907) C.At=new G.q(458915) C.Au=new G.q(458934) C.Av=new G.q(458935) C.Aw=new G.q(458939) C.Ax=new G.q(458960) C.Ay=new G.q(458961) C.Az=new G.q(458962) C.AA=new G.q(458963) C.AB=new G.q(458964) C.AC=new G.q(458968) C.AD=new G.q(458969) C.df=new G.q(458976) C.dg=new G.q(458977) C.dh=new G.q(458978) C.di=new G.q(458979) C.ey=new G.q(458980) C.ez=new G.q(458981) C.eA=new G.q(458982) C.eB=new G.q(458983) C.AH=new G.q(786543) C.AI=new G.q(786544) C.AJ=new G.q(786608) C.AK=new G.q(786609) C.AL=new G.q(786610) C.AM=new G.q(786611) C.AN=new G.q(786612) C.AO=new G.q(786613) C.AP=new G.q(786614) C.AQ=new G.q(786615) C.AR=new G.q(786616) C.AS=new G.q(786637) C.AT=new G.q(786819) C.AU=new G.q(786826) C.AV=new G.q(786834) C.AW=new G.q(786836) C.AX=new G.q(786847) C.AY=new G.q(786850) C.AZ=new G.q(786865) C.B_=new G.q(786891) C.B0=new G.q(786977) C.B1=new G.q(786979) C.B2=new G.q(786980) C.B3=new G.q(786981) C.B4=new G.q(786982) C.B5=new G.q(786983) C.B6=new G.q(786986) C.B7=new G.q(786994) C.B8=new G.q(787081) C.B9=new G.q(787083) C.Ba=new G.q(787084) C.Bb=new G.q(787101) C.Bc=new G.q(787103) C.xT=new G.q(392961) C.xU=new G.q(392962) C.xV=new G.q(392963) C.xW=new G.q(392964) C.xX=new G.q(392965) C.xY=new G.q(392966) C.xZ=new G.q(392967) C.y_=new G.q(392968) C.y0=new G.q(392969) C.y1=new G.q(392970) C.y2=new G.q(392971) C.y3=new G.q(392972) C.y4=new G.q(392973) C.y5=new G.q(392974) C.y6=new G.q(392975) C.y7=new G.q(392976) C.y8=new G.q(392977) C.y9=new G.q(392978) C.ya=new G.q(392979) C.yb=new G.q(392980) C.yc=new G.q(392981) C.yd=new G.q(392982) C.ye=new G.q(392983) C.yf=new G.q(392984) C.yg=new G.q(392985) C.yh=new G.q(392986) C.yi=new G.q(392987) C.yj=new G.q(392988) C.yk=new G.q(392989) C.yl=new G.q(392990) C.ym=new G.q(392991) C.ex=new G.q(18) C.wR=new H.bs(230,{None:C.ll,Hyper:C.xM,Super:C.xN,FnLock:C.xO,Suspend:C.xP,Resume:C.xQ,Turbo:C.xR,PrivacyScreenToggle:C.xS,Sleep:C.AE,WakeUp:C.AF,DisplayToggleIntExt:C.AG,KeyA:C.yn,KeyB:C.yo,KeyC:C.yp,KeyD:C.yq,KeyE:C.yr,KeyF:C.ys,KeyG:C.yt,KeyH:C.yu,KeyI:C.yv,KeyJ:C.yw,KeyK:C.yx,KeyL:C.yy,KeyM:C.yz,KeyN:C.yA,KeyO:C.yB,KeyP:C.yC,KeyQ:C.yD,KeyR:C.yE,KeyS:C.yF,KeyT:C.yG,KeyU:C.yH,KeyV:C.yI,KeyW:C.yJ,KeyX:C.yK,KeyY:C.yL,KeyZ:C.yM,Digit1:C.yN,Digit2:C.yO,Digit3:C.yP,Digit4:C.yQ,Digit5:C.yR,Digit6:C.yS,Digit7:C.yT,Digit8:C.yU,Digit9:C.yV,Digit0:C.yW,Enter:C.yX,Escape:C.yY,Backspace:C.yZ,Tab:C.z_,Space:C.z0,Minus:C.z1,Equal:C.z2,BracketLeft:C.z3,BracketRight:C.z4,Backslash:C.z5,Semicolon:C.z6,Quote:C.z7,Backquote:C.z8,Comma:C.z9,Period:C.za,Slash:C.zb,CapsLock:C.hw,F1:C.zc,F2:C.zd,F3:C.ze,F4:C.zf,F5:C.zg,F6:C.zh,F7:C.zi,F8:C.zj,F9:C.zk,F10:C.zl,F11:C.zm,F12:C.zn,PrintScreen:C.zo,ScrollLock:C.hx,Pause:C.zp,Insert:C.zq,Home:C.zr,PageUp:C.zs,Delete:C.zt,End:C.zu,PageDown:C.zv,ArrowRight:C.zw,ArrowLeft:C.zx,ArrowDown:C.zy,ArrowUp:C.zz,NumLock:C.hy,NumpadDivide:C.zA,NumpadMultiply:C.zB,NumpadSubtract:C.zC,NumpadAdd:C.zD,NumpadEnter:C.zE,Numpad1:C.zF,Numpad2:C.zG,Numpad3:C.zH,Numpad4:C.zI,Numpad5:C.zJ,Numpad6:C.zK,Numpad7:C.zL,Numpad8:C.zM,Numpad9:C.zN,Numpad0:C.zO,NumpadDecimal:C.zP,IntlBackslash:C.zQ,ContextMenu:C.zR,Power:C.zS,NumpadEqual:C.zT,F13:C.zU,F14:C.zV,F15:C.zW,F16:C.zX,F17:C.zY,F18:C.zZ,F19:C.A_,F20:C.A0,F21:C.A1,F22:C.A2,F23:C.A3,F24:C.A4,Open:C.A5,Help:C.A6,Select:C.A7,Again:C.A8,Undo:C.A9,Cut:C.Aa,Copy:C.Ab,Paste:C.Ac,Find:C.Ad,AudioVolumeMute:C.Ae,AudioVolumeUp:C.Af,AudioVolumeDown:C.Ag,NumpadComma:C.Ah,IntlRo:C.Ai,KanaMode:C.Aj,IntlYen:C.Ak,Convert:C.Al,NonConvert:C.Am,Lang1:C.An,Lang2:C.Ao,Lang3:C.Ap,Lang4:C.Aq,Lang5:C.Ar,Abort:C.As,Props:C.At,NumpadParenLeft:C.Au,NumpadParenRight:C.Av,NumpadBackspace:C.Aw,NumpadMemoryStore:C.Ax,NumpadMemoryRecall:C.Ay,NumpadMemoryClear:C.Az,NumpadMemoryAdd:C.AA,NumpadMemorySubtract:C.AB,NumpadClear:C.AC,NumpadClearEntry:C.AD,ControlLeft:C.df,ShiftLeft:C.dg,AltLeft:C.dh,MetaLeft:C.di,ControlRight:C.ey,ShiftRight:C.ez,AltRight:C.eA,MetaRight:C.eB,BrightnessUp:C.AH,BrightnessDown:C.AI,MediaPlay:C.AJ,MediaPause:C.AK,MediaRecord:C.AL,MediaFastForward:C.AM,MediaRewind:C.AN,MediaTrackNext:C.AO,MediaTrackPrevious:C.AP,MediaStop:C.AQ,Eject:C.AR,MediaPlayPause:C.AS,MediaSelect:C.AT,LaunchMail:C.AU,LaunchApp2:C.AV,LaunchApp1:C.AW,LaunchControlPanel:C.AX,SelectTask:C.AY,LaunchScreenSaver:C.AZ,LaunchAssistant:C.B_,BrowserSearch:C.B0,BrowserHome:C.B1,BrowserBack:C.B2,BrowserForward:C.B3,BrowserStop:C.B4,BrowserRefresh:C.B5,BrowserFavorites:C.B6,ZoomToggle:C.B7,MailReply:C.B8,MailForward:C.B9,MailSend:C.Ba,KeyboardLayoutSelect:C.Bb,ShowAllWindows:C.Bc,GameButton1:C.xT,GameButton2:C.xU,GameButton3:C.xV,GameButton4:C.xW,GameButton5:C.xX,GameButton6:C.xY,GameButton7:C.xZ,GameButton8:C.y_,GameButton9:C.y0,GameButton10:C.y1,GameButton11:C.y2,GameButton12:C.y3,GameButton13:C.y4,GameButton14:C.y5,GameButton15:C.y6,GameButton16:C.y7,GameButtonA:C.y8,GameButtonB:C.y9,GameButtonC:C.ya,GameButtonLeft1:C.yb,GameButtonLeft2:C.yc,GameButtonMode:C.yd,GameButtonRight1:C.ye,GameButtonRight2:C.yf,GameButtonSelect:C.yg,GameButtonStart:C.yh,GameButtonThumbLeft:C.yi,GameButtonThumbRight:C.yj,GameButtonX:C.yk,GameButtonY:C.yl,GameButtonZ:C.ym,Fn:C.ex},C.h4,H.T("bs")) C.wS=new H.bs(230,{None:0,Hyper:16,Super:17,FnLock:19,Suspend:20,Resume:21,Turbo:22,PrivacyScreenToggle:23,Sleep:65666,WakeUp:65667,DisplayToggleIntExt:65717,KeyA:458756,KeyB:458757,KeyC:458758,KeyD:458759,KeyE:458760,KeyF:458761,KeyG:458762,KeyH:458763,KeyI:458764,KeyJ:458765,KeyK:458766,KeyL:458767,KeyM:458768,KeyN:458769,KeyO:458770,KeyP:458771,KeyQ:458772,KeyR:458773,KeyS:458774,KeyT:458775,KeyU:458776,KeyV:458777,KeyW:458778,KeyX:458779,KeyY:458780,KeyZ:458781,Digit1:458782,Digit2:458783,Digit3:458784,Digit4:458785,Digit5:458786,Digit6:458787,Digit7:458788,Digit8:458789,Digit9:458790,Digit0:458791,Enter:458792,Escape:458793,Backspace:458794,Tab:458795,Space:458796,Minus:458797,Equal:458798,BracketLeft:458799,BracketRight:458800,Backslash:458801,Semicolon:458803,Quote:458804,Backquote:458805,Comma:458806,Period:458807,Slash:458808,CapsLock:458809,F1:458810,F2:458811,F3:458812,F4:458813,F5:458814,F6:458815,F7:458816,F8:458817,F9:458818,F10:458819,F11:458820,F12:458821,PrintScreen:458822,ScrollLock:458823,Pause:458824,Insert:458825,Home:458826,PageUp:458827,Delete:458828,End:458829,PageDown:458830,ArrowRight:458831,ArrowLeft:458832,ArrowDown:458833,ArrowUp:458834,NumLock:458835,NumpadDivide:458836,NumpadMultiply:458837,NumpadSubtract:458838,NumpadAdd:458839,NumpadEnter:458840,Numpad1:458841,Numpad2:458842,Numpad3:458843,Numpad4:458844,Numpad5:458845,Numpad6:458846,Numpad7:458847,Numpad8:458848,Numpad9:458849,Numpad0:458850,NumpadDecimal:458851,IntlBackslash:458852,ContextMenu:458853,Power:458854,NumpadEqual:458855,F13:458856,F14:458857,F15:458858,F16:458859,F17:458860,F18:458861,F19:458862,F20:458863,F21:458864,F22:458865,F23:458866,F24:458867,Open:458868,Help:458869,Select:458871,Again:458873,Undo:458874,Cut:458875,Copy:458876,Paste:458877,Find:458878,AudioVolumeMute:458879,AudioVolumeUp:458880,AudioVolumeDown:458881,NumpadComma:458885,IntlRo:458887,KanaMode:458888,IntlYen:458889,Convert:458890,NonConvert:458891,Lang1:458896,Lang2:458897,Lang3:458898,Lang4:458899,Lang5:458900,Abort:458907,Props:458915,NumpadParenLeft:458934,NumpadParenRight:458935,NumpadBackspace:458939,NumpadMemoryStore:458960,NumpadMemoryRecall:458961,NumpadMemoryClear:458962,NumpadMemoryAdd:458963,NumpadMemorySubtract:458964,NumpadClear:458968,NumpadClearEntry:458969,ControlLeft:458976,ShiftLeft:458977,AltLeft:458978,MetaLeft:458979,ControlRight:458980,ShiftRight:458981,AltRight:458982,MetaRight:458983,BrightnessUp:786543,BrightnessDown:786544,MediaPlay:786608,MediaPause:786609,MediaRecord:786610,MediaFastForward:786611,MediaRewind:786612,MediaTrackNext:786613,MediaTrackPrevious:786614,MediaStop:786615,Eject:786616,MediaPlayPause:786637,MediaSelect:786819,LaunchMail:786826,LaunchApp2:786834,LaunchApp1:786836,LaunchControlPanel:786847,SelectTask:786850,LaunchScreenSaver:786865,LaunchAssistant:786891,BrowserSearch:786977,BrowserHome:786979,BrowserBack:786980,BrowserForward:786981,BrowserStop:786982,BrowserRefresh:786983,BrowserFavorites:786986,ZoomToggle:786994,MailReply:787081,MailForward:787083,MailSend:787084,KeyboardLayoutSelect:787101,ShowAllWindows:787103,GameButton1:392961,GameButton2:392962,GameButton3:392963,GameButton4:392964,GameButton5:392965,GameButton6:392966,GameButton7:392967,GameButton8:392968,GameButton9:392969,GameButton10:392970,GameButton11:392971,GameButton12:392972,GameButton13:392973,GameButton14:392974,GameButton15:392975,GameButton16:392976,GameButtonA:392977,GameButtonB:392978,GameButtonC:392979,GameButtonLeft1:392980,GameButtonLeft2:392981,GameButtonMode:392982,GameButtonRight1:392983,GameButtonRight2:392984,GameButtonSelect:392985,GameButtonStart:392986,GameButtonThumbLeft:392987,GameButtonThumbRight:392988,GameButtonX:392989,GameButtonY:392990,GameButtonZ:392991,Fn:18},C.h4,t.Jz) C.u6=new G.n(4294967296) C.u7=new G.n(4294967312) C.u8=new G.n(4294967313) C.u9=new G.n(4294967315) C.ua=new G.n(4294967316) C.ub=new G.n(4294967317) C.uc=new G.n(4294967318) C.ud=new G.n(4294967319) C.ue=new G.n(4295032962) C.uf=new G.n(4295032963) C.ug=new G.n(4295033013) C.wE=new G.n(97) C.wF=new G.n(98) C.wG=new G.n(99) C.tJ=new G.n(100) C.tK=new G.n(101) C.tL=new G.n(102) C.tM=new G.n(103) C.tN=new G.n(104) C.tO=new G.n(105) C.tP=new G.n(106) C.tQ=new G.n(107) C.tR=new G.n(108) C.tS=new G.n(109) C.tT=new G.n(110) C.tU=new G.n(111) C.tV=new G.n(112) C.tW=new G.n(113) C.tX=new G.n(114) C.tY=new G.n(115) C.tZ=new G.n(116) C.u_=new G.n(117) C.u0=new G.n(118) C.u1=new G.n(119) C.u2=new G.n(120) C.u3=new G.n(121) C.u4=new G.n(122) C.wp=new G.n(49) C.wq=new G.n(50) C.wr=new G.n(51) C.ws=new G.n(52) C.wt=new G.n(53) C.wu=new G.n(54) C.wv=new G.n(55) C.ww=new G.n(56) C.wx=new G.n(57) C.wo=new G.n(48) C.uM=new G.n(4295426090) C.wl=new G.n(45) C.wz=new G.n(61) C.wA=new G.n(91) C.wC=new G.n(93) C.wB=new G.n(92) C.wy=new G.n(59) C.u5=new G.n(39) C.wD=new G.n(96) C.wk=new G.n(44) C.wm=new G.n(46) C.wn=new G.n(47) C.uN=new G.n(4295426106) C.uO=new G.n(4295426107) C.uP=new G.n(4295426108) C.uQ=new G.n(4295426109) C.uR=new G.n(4295426110) C.uS=new G.n(4295426111) C.uT=new G.n(4295426112) C.uU=new G.n(4295426113) C.uV=new G.n(4295426114) C.uW=new G.n(4295426115) C.uX=new G.n(4295426116) C.uY=new G.n(4295426117) C.uZ=new G.n(4295426118) C.v_=new G.n(4295426120) C.v0=new G.n(4295426121) C.v1=new G.n(4295426124) C.kz=new G.n(4295426132) C.kA=new G.n(4295426133) C.kB=new G.n(4295426134) C.kC=new G.n(4295426135) C.v2=new G.n(4295426136) C.kD=new G.n(4295426137) C.kE=new G.n(4295426138) C.kF=new G.n(4295426139) C.kG=new G.n(4295426140) C.kH=new G.n(4295426141) C.kI=new G.n(4295426142) C.kJ=new G.n(4295426143) C.kK=new G.n(4295426144) C.kL=new G.n(4295426145) C.kM=new G.n(4295426146) C.kN=new G.n(4295426147) C.v3=new G.n(4295426148) C.v4=new G.n(4295426149) C.v5=new G.n(4295426150) C.kO=new G.n(4295426151) C.v6=new G.n(4295426152) C.v7=new G.n(4295426153) C.v8=new G.n(4295426154) C.v9=new G.n(4295426155) C.va=new G.n(4295426156) C.vb=new G.n(4295426157) C.vc=new G.n(4295426158) C.vd=new G.n(4295426159) C.ve=new G.n(4295426160) C.vf=new G.n(4295426161) C.vg=new G.n(4295426162) C.vh=new G.n(4295426163) C.vi=new G.n(4295426164) C.vj=new G.n(4295426165) C.vk=new G.n(4295426167) C.vl=new G.n(4295426169) C.vm=new G.n(4295426170) C.vn=new G.n(4295426171) C.vo=new G.n(4295426172) C.vp=new G.n(4295426173) C.vq=new G.n(4295426174) C.vr=new G.n(4295426175) C.vs=new G.n(4295426176) C.vt=new G.n(4295426177) C.kP=new G.n(4295426181) C.vu=new G.n(4295426183) C.vv=new G.n(4295426184) C.vw=new G.n(4295426185) C.vx=new G.n(4295426186) C.vy=new G.n(4295426187) C.vz=new G.n(4295426192) C.vA=new G.n(4295426193) C.vB=new G.n(4295426194) C.vC=new G.n(4295426195) C.vD=new G.n(4295426196) C.vE=new G.n(4295426203) C.vF=new G.n(4295426211) C.kQ=new G.n(4295426230) C.kR=new G.n(4295426231) C.vG=new G.n(4295426235) C.vH=new G.n(4295426256) C.vI=new G.n(4295426257) C.vJ=new G.n(4295426258) C.vK=new G.n(4295426259) C.vL=new G.n(4295426260) C.vM=new G.n(4295426264) C.vN=new G.n(4295426265) C.vO=new G.n(4295753839) C.vP=new G.n(4295753840) C.vQ=new G.n(4295753904) C.vR=new G.n(4295753905) C.vS=new G.n(4295753906) C.vT=new G.n(4295753907) C.vU=new G.n(4295753908) C.vV=new G.n(4295753909) C.vW=new G.n(4295753910) C.vX=new G.n(4295753911) C.vY=new G.n(4295753912) C.vZ=new G.n(4295753933) C.w_=new G.n(4295754115) C.w0=new G.n(4295754122) C.w1=new G.n(4295754130) C.w2=new G.n(4295754132) C.w3=new G.n(4295754143) C.w4=new G.n(4295754146) C.w5=new G.n(4295754161) C.w6=new G.n(4295754187) C.w7=new G.n(4295754273) C.w8=new G.n(4295754275) C.w9=new G.n(4295754276) C.wa=new G.n(4295754277) C.wb=new G.n(4295754278) C.wc=new G.n(4295754279) C.wd=new G.n(4295754282) C.we=new G.n(4295754290) C.wf=new G.n(4295754377) C.wg=new G.n(4295754379) C.wh=new G.n(4295754380) C.wi=new G.n(4295754397) C.wj=new G.n(4295754399) C.uh=new G.n(4295360257) C.ui=new G.n(4295360258) C.uj=new G.n(4295360259) C.uk=new G.n(4295360260) C.ul=new G.n(4295360261) C.um=new G.n(4295360262) C.un=new G.n(4295360263) C.uo=new G.n(4295360264) C.up=new G.n(4295360265) C.uq=new G.n(4295360266) C.ur=new G.n(4295360267) C.us=new G.n(4295360268) C.ut=new G.n(4295360269) C.uu=new G.n(4295360270) C.uv=new G.n(4295360271) C.uw=new G.n(4295360272) C.ux=new G.n(4295360273) C.uy=new G.n(4295360274) C.uz=new G.n(4295360275) C.uA=new G.n(4295360276) C.uB=new G.n(4295360277) C.uC=new G.n(4295360278) C.uD=new G.n(4295360279) C.uE=new G.n(4295360280) C.uF=new G.n(4295360281) C.uG=new G.n(4295360282) C.uH=new G.n(4295360283) C.uI=new G.n(4295360284) C.uJ=new G.n(4295360285) C.uK=new G.n(4295360286) C.uL=new G.n(4295360287) C.wT=new H.bs(230,{None:C.u6,Hyper:C.u7,Super:C.u8,FnLock:C.u9,Suspend:C.ua,Resume:C.ub,Turbo:C.uc,PrivacyScreenToggle:C.ud,Sleep:C.ue,WakeUp:C.uf,DisplayToggleIntExt:C.ug,KeyA:C.wE,KeyB:C.wF,KeyC:C.wG,KeyD:C.tJ,KeyE:C.tK,KeyF:C.tL,KeyG:C.tM,KeyH:C.tN,KeyI:C.tO,KeyJ:C.tP,KeyK:C.tQ,KeyL:C.tR,KeyM:C.tS,KeyN:C.tT,KeyO:C.tU,KeyP:C.tV,KeyQ:C.tW,KeyR:C.tX,KeyS:C.tY,KeyT:C.tZ,KeyU:C.u_,KeyV:C.u0,KeyW:C.u1,KeyX:C.u2,KeyY:C.u3,KeyZ:C.u4,Digit1:C.wp,Digit2:C.wq,Digit3:C.wr,Digit4:C.ws,Digit5:C.wt,Digit6:C.wu,Digit7:C.wv,Digit8:C.ww,Digit9:C.wx,Digit0:C.wo,Enter:C.ks,Escape:C.kt,Backspace:C.uM,Tab:C.h9,Space:C.h8,Minus:C.wl,Equal:C.wz,BracketLeft:C.wA,BracketRight:C.wC,Backslash:C.wB,Semicolon:C.wy,Quote:C.u5,Backquote:C.wD,Comma:C.wk,Period:C.wm,Slash:C.wn,CapsLock:C.ku,F1:C.uN,F2:C.uO,F3:C.uP,F4:C.uQ,F5:C.uR,F6:C.uS,F7:C.uT,F8:C.uU,F9:C.uV,F10:C.uW,F11:C.uX,F12:C.uY,PrintScreen:C.uZ,ScrollLock:C.kv,Pause:C.v_,Insert:C.v0,Home:C.ha,PageUp:C.kw,Delete:C.v1,End:C.hb,PageDown:C.kx,ArrowRight:C.b5,ArrowLeft:C.b6,ArrowDown:C.bl,ArrowUp:C.bm,NumLock:C.ky,NumpadDivide:C.kz,NumpadMultiply:C.kA,NumpadSubtract:C.kB,NumpadAdd:C.kC,NumpadEnter:C.v2,Numpad1:C.kD,Numpad2:C.kE,Numpad3:C.kF,Numpad4:C.kG,Numpad5:C.kH,Numpad6:C.kI,Numpad7:C.kJ,Numpad8:C.kK,Numpad9:C.kL,Numpad0:C.kM,NumpadDecimal:C.kN,IntlBackslash:C.v3,ContextMenu:C.v4,Power:C.v5,NumpadEqual:C.kO,F13:C.v6,F14:C.v7,F15:C.v8,F16:C.v9,F17:C.va,F18:C.vb,F19:C.vc,F20:C.vd,F21:C.ve,F22:C.vf,F23:C.vg,F24:C.vh,Open:C.vi,Help:C.vj,Select:C.vk,Again:C.vl,Undo:C.vm,Cut:C.vn,Copy:C.vo,Paste:C.vp,Find:C.vq,AudioVolumeMute:C.vr,AudioVolumeUp:C.vs,AudioVolumeDown:C.vt,NumpadComma:C.kP,IntlRo:C.vu,KanaMode:C.vv,IntlYen:C.vw,Convert:C.vx,NonConvert:C.vy,Lang1:C.vz,Lang2:C.vA,Lang3:C.vB,Lang4:C.vC,Lang5:C.vD,Abort:C.vE,Props:C.vF,NumpadParenLeft:C.kQ,NumpadParenRight:C.kR,NumpadBackspace:C.vG,NumpadMemoryStore:C.vH,NumpadMemoryRecall:C.vI,NumpadMemoryClear:C.vJ,NumpadMemoryAdd:C.vK,NumpadMemorySubtract:C.vL,NumpadClear:C.vM,NumpadClearEntry:C.vN,ControlLeft:C.hc,ShiftLeft:C.hd,AltLeft:C.he,MetaLeft:C.hf,ControlRight:C.hg,ShiftRight:C.hh,AltRight:C.hi,MetaRight:C.hj,BrightnessUp:C.vO,BrightnessDown:C.vP,MediaPlay:C.vQ,MediaPause:C.vR,MediaRecord:C.vS,MediaFastForward:C.vT,MediaRewind:C.vU,MediaTrackNext:C.vV,MediaTrackPrevious:C.vW,MediaStop:C.vX,Eject:C.vY,MediaPlayPause:C.vZ,MediaSelect:C.w_,LaunchMail:C.w0,LaunchApp2:C.w1,LaunchApp1:C.w2,LaunchControlPanel:C.w3,SelectTask:C.w4,LaunchScreenSaver:C.w5,LaunchAssistant:C.w6,BrowserSearch:C.w7,BrowserHome:C.w8,BrowserBack:C.w9,BrowserForward:C.wa,BrowserStop:C.wb,BrowserRefresh:C.wc,BrowserFavorites:C.wd,ZoomToggle:C.we,MailReply:C.wf,MailForward:C.wg,MailSend:C.wh,KeyboardLayoutSelect:C.wi,ShowAllWindows:C.wj,GameButton1:C.uh,GameButton2:C.ui,GameButton3:C.uj,GameButton4:C.uk,GameButton5:C.ul,GameButton6:C.um,GameButton7:C.un,GameButton8:C.uo,GameButton9:C.up,GameButton10:C.uq,GameButton11:C.ur,GameButton12:C.us,GameButton13:C.ut,GameButton14:C.uu,GameButton15:C.uv,GameButton16:C.uw,GameButtonA:C.ux,GameButtonB:C.uy,GameButtonC:C.uz,GameButtonLeft1:C.uA,GameButtonLeft2:C.uB,GameButtonMode:C.uC,GameButtonRight1:C.uD,GameButtonRight2:C.uE,GameButtonSelect:C.uF,GameButtonStart:C.uG,GameButtonThumbLeft:C.uH,GameButtonThumbRight:C.uI,GameButtonX:C.uJ,GameButtonY:C.uK,GameButtonZ:C.uL,Fn:C.kr},C.h4,t.W1) C.th=H.b(s([]),H.T("o")) C.wX=new H.bs(0,{},C.th,H.T("bs")) C.kW=new H.bs(0,{},C.bk,H.T("bs")) C.ti=H.b(s([]),H.T("o")) C.wY=new H.bs(0,{},C.ti,H.T("bs")) C.kX=new H.bs(0,{},C.cq,H.T("bs")) C.wV=new H.bs(0,{},C.cq,H.T("bs")) C.I3=new H.bs(0,{},C.cq,t.uI) C.tj=H.b(s([]),H.T("o")) C.kV=new H.bs(0,{},C.tj,H.T("bs")) C.km=H.b(s([]),H.T("o")) C.wW=new H.bs(0,{},C.km,H.T("bs")) C.kY=new H.bs(0,{},C.km,H.T("bs*>")) C.ts=H.b(s(["alias","allScroll","basic","cell","click","contextMenu","copy","forbidden","grab","grabbing","help","move","none","noDrop","precise","progress","text","resizeColumn","resizeDown","resizeDownLeft","resizeDownRight","resizeLeft","resizeLeftRight","resizeRight","resizeRow","resizeUp","resizeUpDown","resizeUpLeft","resizeUpRight","resizeUpLeftDownRight","resizeUpRightDownLeft","verticalText","wait","zoomIn","zoomOut"]),t.i) C.wZ=new H.bs(35,{alias:"alias",allScroll:"all-scroll",basic:"default",cell:"cell",click:"pointer",contextMenu:"context-menu",copy:"copy",forbidden:"not-allowed",grab:"grab",grabbing:"grabbing",help:"help",move:"move",none:"none",noDrop:"no-drop",precise:"crosshair",progress:"progress",text:"text",resizeColumn:"col-resize",resizeDown:"s-resize",resizeDownLeft:"sw-resize",resizeDownRight:"se-resize",resizeLeft:"w-resize",resizeLeftRight:"ew-resize",resizeRight:"e-resize",resizeRow:"row-resize",resizeUp:"n-resize",resizeUpDown:"ns-resize",resizeUpLeft:"nw-resize",resizeUpRight:"ne-resize",resizeUpLeftDownRight:"nwse-resize",resizeUpRightDownLeft:"nesw-resize",verticalText:"vertical-text",wait:"wait",zoomIn:"zoom-in",zoomOut:"zoom-out"},C.ts,t.uI) C.ps=new P.C(4289200107) C.pl=new P.C(4284809178) C.p4=new P.C(4280150454) C.oZ=new P.C(4278239141) C.dd=new H.cS([100,C.ps,200,C.pl,400,C.p4,700,C.oZ],t.r9) C.tu=H.b(s(["None","Unidentified","Backspace","Tab","Enter","Escape","Space","Exclamation","Quote","NumberSign","Dollar","Ampersand","QuoteSingle","ParenthesisLeft","ParenthesisRight","Asterisk","Add","Comma","Minus","Period","Slash","Digit0","Digit1","Digit2","Digit3","Digit4","Digit5","Digit6","Digit7","Digit8","Digit9","Colon","Semicolon","Less","Equal","Greater","Question","At","BracketLeft","Backslash","BracketRight","Caret","Underscore","Backquote","KeyA","KeyB","KeyC","KeyD","KeyE","KeyF","KeyG","KeyH","KeyI","KeyJ","KeyK","KeyL","KeyM","KeyN","KeyO","KeyP","KeyQ","KeyR","KeyS","KeyT","KeyU","KeyV","KeyW","KeyX","KeyY","KeyZ","BraceLeft","Bar","BraceRight","Tilde","Delete","Accel","AltGraph","CapsLock","Fn","FnLock","Hyper","NumLock","ScrollLock","Super","Symbol","SymbolLock","ShiftLevel5","AltGraphLatch","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","End","Home","PageDown","PageUp","Clear","Copy","CrSel","Cut","EraseEof","ExSel","Insert","Paste","Redo","Undo","Accept","Again","Attn","Cancel","ContextMenu","Execute","Find","Help","Pause","Play","Props","Select","ZoomIn","ZoomOut","BrightnessDown","BrightnessUp","Camera","Eject","LogOff","Power","PowerOff","PrintScreen","Hibernate","Standby","WakeUp","AllCandidates","Alphanumeric","CodeInput","Compose","Convert","FinalMode","GroupFirst","GroupLast","GroupNext","GroupPrevious","ModeChange","NextCandidate","NonConvert","PreviousCandidate","Process","SingleCandidate","HangulMode","HanjaMode","JunjaMode","Eisu","Hankaku","Hiragana","HiraganaKatakana","KanaMode","KanjiMode","Katakana","Romaji","Zenkaku","ZenkakuHankaku","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","F16","F17","F18","F19","F20","F21","F22","F23","F24","Soft1","Soft2","Soft3","Soft4","Soft5","Soft6","Soft7","Soft8","Close","MailForward","MailReply","MailSend","MediaPlayPause","MediaStop","MediaTrackNext","MediaTrackPrevious","New","Open","Print","Save","SpellCheck","AudioVolumeDown","AudioVolumeUp","AudioVolumeMute","LaunchApplication2","LaunchCalendar","LaunchMail","LaunchMediaPlayer","LaunchMusicPlayer","LaunchApplication1","LaunchScreenSaver","LaunchSpreadsheet","LaunchWebBrowser","LaunchWebCam","LaunchWordProcessor","LaunchContacts","LaunchPhone","LaunchAssistant","LaunchControlPanel","BrowserBack","BrowserFavorites","BrowserForward","BrowserHome","BrowserRefresh","BrowserSearch","BrowserStop","AudioBalanceLeft","AudioBalanceRight","AudioBassBoostDown","AudioBassBoostUp","AudioFaderFront","AudioFaderRear","AudioSurroundModeNext","AVRInput","AVRPower","ChannelDown","ChannelUp","ColorF0Red","ColorF1Green","ColorF2Yellow","ColorF3Blue","ColorF4Grey","ColorF5Brown","ClosedCaptionToggle","Dimmer","DisplaySwap","Exit","FavoriteClear0","FavoriteClear1","FavoriteClear2","FavoriteClear3","FavoriteRecall0","FavoriteRecall1","FavoriteRecall2","FavoriteRecall3","FavoriteStore0","FavoriteStore1","FavoriteStore2","FavoriteStore3","Guide","GuideNextDay","GuidePreviousDay","Info","InstantReplay","Link","ListProgram","LiveContent","Lock","MediaApps","MediaFastForward","MediaLast","MediaPause","MediaPlay","MediaRecord","MediaRewind","MediaSkip","NextFavoriteChannel","NextUserProfile","OnDemand","PinPDown","PinPMove","PinPToggle","PinPUp","PlaySpeedDown","PlaySpeedReset","PlaySpeedUp","RandomToggle","RcLowBattery","RecordSpeedNext","RfBypass","ScanChannelsToggle","ScreenModeNext","Settings","SplitScreenToggle","STBInput","STBPower","Subtitle","Teletext","TV","TVInput","TVPower","VideoModeNext","Wink","ZoomToggle","DVR","MediaAudioTrack","MediaSkipBackward","MediaSkipForward","MediaStepBackward","MediaStepForward","MediaTopMenu","NavigateIn","NavigateNext","NavigateOut","NavigatePrevious","Pairing","MediaClose","AudioBassBoostToggle","AudioTrebleDown","AudioTrebleUp","MicrophoneToggle","MicrophoneVolumeDown","MicrophoneVolumeUp","MicrophoneVolumeMute","SpeechCorrectionList","SpeechInputToggle","AppSwitch","Call","CameraFocus","EndCall","GoBack","GoHome","HeadsetHook","LastNumberRedial","Notification","MannerMode","VoiceDial","TV3DMode","TVAntennaCable","TVAudioDescription","TVAudioDescriptionMixDown","TVAudioDescriptionMixUp","TVContentsMenu","TVDataService","TVInputComponent1","TVInputComponent2","TVInputComposite1","TVInputComposite2","TVInputHDMI1","TVInputHDMI2","TVInputHDMI3","TVInputHDMI4","TVInputVGA1","TVMediaContext","TVNetwork","TVNumberEntry","TVRadioService","TVSatellite","TVSatelliteBS","TVSatelliteCS","TVSatelliteToggle","TVTerrestrialAnalog","TVTerrestrialDigital","TVTimer","Key11","Key12","GameButton1","GameButton2","GameButton3","GameButton4","GameButton5","GameButton6","GameButton7","GameButton8","GameButton9","GameButton10","GameButton11","GameButton12","GameButton13","GameButton14","GameButton15","GameButton16","GameButtonA","GameButtonB","GameButtonC","GameButtonLeft1","GameButtonLeft2","GameButtonMode","GameButtonRight1","GameButtonRight2","GameButtonSelect","GameButtonStart","GameButtonThumbLeft","GameButtonThumbRight","GameButtonX","GameButtonY","GameButtonZ","Suspend","Resume","Sleep","IntlBackslash","IntlRo","IntlYen","Lang1","Lang2","Lang3","Lang4","Lang5","Abort"]),t.i) C.x1=new H.bs(413,{None:0,Unidentified:1,Backspace:8,Tab:9,Enter:13,Escape:27,Space:32,Exclamation:33,Quote:34,NumberSign:35,Dollar:36,Ampersand:38,QuoteSingle:39,ParenthesisLeft:40,ParenthesisRight:41,Asterisk:42,Add:43,Comma:44,Minus:45,Period:46,Slash:47,Digit0:48,Digit1:49,Digit2:50,Digit3:51,Digit4:52,Digit5:53,Digit6:54,Digit7:55,Digit8:56,Digit9:57,Colon:58,Semicolon:59,Less:60,Equal:61,Greater:62,Question:63,At:64,BracketLeft:91,Backslash:92,BracketRight:93,Caret:94,Underscore:95,Backquote:96,KeyA:97,KeyB:98,KeyC:99,KeyD:100,KeyE:101,KeyF:102,KeyG:103,KeyH:104,KeyI:105,KeyJ:106,KeyK:107,KeyL:108,KeyM:109,KeyN:110,KeyO:111,KeyP:112,KeyQ:113,KeyR:114,KeyS:115,KeyT:116,KeyU:117,KeyV:118,KeyW:119,KeyX:120,KeyY:121,KeyZ:122,BraceLeft:123,Bar:124,BraceRight:125,Tilde:126,Delete:127,Accel:257,AltGraph:259,CapsLock:260,Fn:262,FnLock:263,Hyper:264,NumLock:266,ScrollLock:268,Super:270,Symbol:271,SymbolLock:272,ShiftLevel5:273,AltGraphLatch:274,ArrowDown:769,ArrowLeft:770,ArrowRight:771,ArrowUp:772,End:773,Home:774,PageDown:775,PageUp:776,Clear:1025,Copy:1026,CrSel:1027,Cut:1028,EraseEof:1029,ExSel:1030,Insert:1031,Paste:1032,Redo:1033,Undo:1034,Accept:1281,Again:1282,Attn:1283,Cancel:1284,ContextMenu:1285,Execute:1286,Find:1287,Help:1288,Pause:1289,Play:1290,Props:1291,Select:1292,ZoomIn:1293,ZoomOut:1294,BrightnessDown:1537,BrightnessUp:1538,Camera:1539,Eject:1540,LogOff:1541,Power:1542,PowerOff:1543,PrintScreen:1544,Hibernate:1545,Standby:1546,WakeUp:1547,AllCandidates:1793,Alphanumeric:1794,CodeInput:1795,Compose:1796,Convert:1797,FinalMode:1798,GroupFirst:1799,GroupLast:1800,GroupNext:1801,GroupPrevious:1802,ModeChange:1803,NextCandidate:1804,NonConvert:1805,PreviousCandidate:1806,Process:1807,SingleCandidate:1808,HangulMode:1809,HanjaMode:1810,JunjaMode:1811,Eisu:1812,Hankaku:1813,Hiragana:1814,HiraganaKatakana:1815,KanaMode:1816,KanjiMode:1817,Katakana:1818,Romaji:1819,Zenkaku:1820,ZenkakuHankaku:1821,F1:2049,F2:2050,F3:2051,F4:2052,F5:2053,F6:2054,F7:2055,F8:2056,F9:2057,F10:2058,F11:2059,F12:2060,F13:2061,F14:2062,F15:2063,F16:2064,F17:2065,F18:2066,F19:2067,F20:2068,F21:2069,F22:2070,F23:2071,F24:2072,Soft1:2305,Soft2:2306,Soft3:2307,Soft4:2308,Soft5:2309,Soft6:2310,Soft7:2311,Soft8:2312,Close:2561,MailForward:2562,MailReply:2563,MailSend:2564,MediaPlayPause:2565,MediaStop:2567,MediaTrackNext:2568,MediaTrackPrevious:2569,New:2570,Open:2571,Print:2572,Save:2573,SpellCheck:2574,AudioVolumeDown:2575,AudioVolumeUp:2576,AudioVolumeMute:2577,LaunchApplication2:2817,LaunchCalendar:2818,LaunchMail:2819,LaunchMediaPlayer:2820,LaunchMusicPlayer:2821,LaunchApplication1:2822,LaunchScreenSaver:2823,LaunchSpreadsheet:2824,LaunchWebBrowser:2825,LaunchWebCam:2826,LaunchWordProcessor:2827,LaunchContacts:2828,LaunchPhone:2829,LaunchAssistant:2830,LaunchControlPanel:2831,BrowserBack:3073,BrowserFavorites:3074,BrowserForward:3075,BrowserHome:3076,BrowserRefresh:3077,BrowserSearch:3078,BrowserStop:3079,AudioBalanceLeft:3329,AudioBalanceRight:3330,AudioBassBoostDown:3331,AudioBassBoostUp:3332,AudioFaderFront:3333,AudioFaderRear:3334,AudioSurroundModeNext:3335,AVRInput:3336,AVRPower:3337,ChannelDown:3338,ChannelUp:3339,ColorF0Red:3340,ColorF1Green:3341,ColorF2Yellow:3342,ColorF3Blue:3343,ColorF4Grey:3344,ColorF5Brown:3345,ClosedCaptionToggle:3346,Dimmer:3347,DisplaySwap:3348,Exit:3349,FavoriteClear0:3350,FavoriteClear1:3351,FavoriteClear2:3352,FavoriteClear3:3353,FavoriteRecall0:3354,FavoriteRecall1:3355,FavoriteRecall2:3356,FavoriteRecall3:3357,FavoriteStore0:3358,FavoriteStore1:3359,FavoriteStore2:3360,FavoriteStore3:3361,Guide:3362,GuideNextDay:3363,GuidePreviousDay:3364,Info:3365,InstantReplay:3366,Link:3367,ListProgram:3368,LiveContent:3369,Lock:3370,MediaApps:3371,MediaFastForward:3372,MediaLast:3373,MediaPause:3374,MediaPlay:3375,MediaRecord:3376,MediaRewind:3377,MediaSkip:3378,NextFavoriteChannel:3379,NextUserProfile:3380,OnDemand:3381,PinPDown:3382,PinPMove:3383,PinPToggle:3384,PinPUp:3385,PlaySpeedDown:3386,PlaySpeedReset:3387,PlaySpeedUp:3388,RandomToggle:3389,RcLowBattery:3390,RecordSpeedNext:3391,RfBypass:3392,ScanChannelsToggle:3393,ScreenModeNext:3394,Settings:3395,SplitScreenToggle:3396,STBInput:3397,STBPower:3398,Subtitle:3399,Teletext:3400,TV:3401,TVInput:3402,TVPower:3403,VideoModeNext:3404,Wink:3405,ZoomToggle:3406,DVR:3407,MediaAudioTrack:3408,MediaSkipBackward:3409,MediaSkipForward:3410,MediaStepBackward:3411,MediaStepForward:3412,MediaTopMenu:3413,NavigateIn:3414,NavigateNext:3415,NavigateOut:3416,NavigatePrevious:3417,Pairing:3418,MediaClose:3419,AudioBassBoostToggle:3586,AudioTrebleDown:3588,AudioTrebleUp:3589,MicrophoneToggle:3590,MicrophoneVolumeDown:3591,MicrophoneVolumeUp:3592,MicrophoneVolumeMute:3593,SpeechCorrectionList:3841,SpeechInputToggle:3842,AppSwitch:4097,Call:4098,CameraFocus:4099,EndCall:4100,GoBack:4101,GoHome:4102,HeadsetHook:4103,LastNumberRedial:4104,Notification:4105,MannerMode:4106,VoiceDial:4107,TV3DMode:4353,TVAntennaCable:4354,TVAudioDescription:4355,TVAudioDescriptionMixDown:4356,TVAudioDescriptionMixUp:4357,TVContentsMenu:4358,TVDataService:4359,TVInputComponent1:4360,TVInputComponent2:4361,TVInputComposite1:4362,TVInputComposite2:4363,TVInputHDMI1:4364,TVInputHDMI2:4365,TVInputHDMI3:4366,TVInputHDMI4:4367,TVInputVGA1:4368,TVMediaContext:4369,TVNetwork:4370,TVNumberEntry:4371,TVRadioService:4372,TVSatellite:4373,TVSatelliteBS:4374,TVSatelliteCS:4375,TVSatelliteToggle:4376,TVTerrestrialAnalog:4377,TVTerrestrialDigital:4378,TVTimer:4379,Key11:4609,Key12:4610,GameButton1:392961,GameButton2:392962,GameButton3:392963,GameButton4:392964,GameButton5:392965,GameButton6:392966,GameButton7:392967,GameButton8:392968,GameButton9:392969,GameButton10:392970,GameButton11:392971,GameButton12:392972,GameButton13:392973,GameButton14:392974,GameButton15:392975,GameButton16:392976,GameButtonA:392977,GameButtonB:392978,GameButtonC:392979,GameButtonLeft1:392980,GameButtonLeft2:392981,GameButtonMode:392982,GameButtonRight1:392983,GameButtonRight2:392984,GameButtonSelect:392985,GameButtonStart:392986,GameButtonThumbLeft:392987,GameButtonThumbRight:392988,GameButtonX:392989,GameButtonY:392990,GameButtonZ:392991,Suspend:4294967316,Resume:4294967317,Sleep:4295032962,IntlBackslash:4295426148,IntlRo:4295426183,IntlYen:4295426185,Lang1:4295426192,Lang2:4295426193,Lang3:4295426194,Lang4:4295426195,Lang5:4295426196,Abort:4295426203},C.tu,t.Jz) C.tB=H.b(s(["NumpadDivide","NumpadMultiply","NumpadSubtract","NumpadAdd","Numpad1","Numpad2","Numpad3","Numpad4","Numpad5","Numpad6","Numpad7","Numpad8","Numpad9","Numpad0","NumpadDecimal","NumpadEqual","NumpadComma","NumpadParenLeft","NumpadParenRight"]),t.i) C.x2=new H.bs(19,{NumpadDivide:C.kz,NumpadMultiply:C.kA,NumpadSubtract:C.kB,NumpadAdd:C.kC,Numpad1:C.kD,Numpad2:C.kE,Numpad3:C.kF,Numpad4:C.kG,Numpad5:C.kH,Numpad6:C.kI,Numpad7:C.kJ,Numpad8:C.kK,Numpad9:C.kL,Numpad0:C.kM,NumpadDecimal:C.kN,NumpadEqual:C.kO,NumpadComma:C.kP,NumpadParenLeft:C.kQ,NumpadParenRight:C.kR},C.tB,t.W1) C.x6=new H.cS([0,"FontWeight.w100",1,"FontWeight.w200",2,"FontWeight.w300",3,"FontWeight.w400",4,"FontWeight.w500",5,"FontWeight.w600",6,"FontWeight.w700",7,"FontWeight.w800",8,"FontWeight.w900"],H.T("cS")) C.po=new P.C(4286755327) C.ph=new P.C(4282682111) C.pa=new P.C(4280908287) C.p9=new P.C(4280902399) C.x_=new H.cS([100,C.po,200,C.ph,400,C.pa,700,C.p9],t.r9) C.x7=new E.Gy(C.x_,4282682111) C.x8=new Q.wN(null,null,null,null) C.er=new E.np(C.aa,4288585374) C.pD=new P.C(4293457385) C.pw=new P.C(4291356361) C.pr=new P.C(4289058471) C.pn=new P.C(4286695300) C.pm=new P.C(4284922730) C.pi=new P.C(4283215696) C.pg=new P.C(4282622023) C.pc=new P.C(4281896508) C.pb=new P.C(4281236786) C.p2=new P.C(4279983648) C.wQ=new H.cS([50,C.pD,100,C.pw,200,C.pr,300,C.pn,400,C.pm,500,C.pi,600,C.pg,700,C.pc,800,C.pb,900,C.p2],t.r9) C.x9=new E.np(C.wQ,4283215696) C.xa=new E.np(C.dc,4294198070) C.bC=new E.np(C.aI,4280391411) C.ao=new V.de("MaterialState.hovered") C.b8=new V.de("MaterialState.focused") C.bD=new V.de("MaterialState.pressed") C.kZ=new V.de("MaterialState.dragged") C.bE=new V.de("MaterialState.selected") C.aS=new V.de("MaterialState.disabled") C.xb=new V.de("MaterialState.error") C.es=new X.GB("MaterialTapTargetSize.padded") C.hl=new X.GB("MaterialTapTargetSize.shrinkWrap") C.cs=new M.lm("MaterialType.canvas") C.hm=new M.lm("MaterialType.card") C.l_=new M.lm("MaterialType.circle") C.hn=new M.lm("MaterialType.button") C.ct=new M.lm("MaterialType.transparency") C.xc=new B.GC("MaxLengthEnforcement.none") C.xd=new B.GC("MaxLengthEnforcement.truncateAfterCompositionEnds") C.xf=new H.hX("popRoute",null) C.xg=new A.lp("flutter/service_worker",C.cf,null) C.xh=new A.lp("plugins.flutter.io/shared_preferences",C.cf,null) C.xi=new A.lp("PonnamKarthik/fluttertoast",C.cf,null) C.l2=new H.nw("MutatorType.clipRect") C.l3=new H.nw("MutatorType.clipRRect") C.l4=new H.nw("MutatorType.clipPath") C.l5=new H.nw("MutatorType.transform") C.l6=new H.nw("MutatorType.opacity") C.ay=new F.GR("NavigationMode.traditional") C.de=new F.GR("NavigationMode.directional") C.xl=new E.x8(null,null,null,null,null,null,null,null) C.l9=new S.hb(C.i,C.i) C.xt=new P.m(0,-1) C.xu=new P.m(11,-4) C.cy=new P.m(1,0) C.xv=new P.m(20,20) C.xw=new P.m(22,0) C.xx=new P.m(40,40) C.xy=new P.m(6,6) C.xz=new P.m(5,10.5) C.xA=new P.m(0,-0.25) C.xB=new P.m(-0.3333333333333333,0) C.xC=new P.m(0,0.25) C.ld=new P.m(-1,0) C.bG=new H.iQ("OperatingSystem.iOs") C.ev=new H.iQ("OperatingSystem.android") C.le=new H.iQ("OperatingSystem.linux") C.lf=new H.iQ("OperatingSystem.windows") C.bH=new H.iQ("OperatingSystem.macOs") C.xD=new H.iQ("OperatingSystem.unknown") C.fw=new U.ZD() C.bo=new A.nC("flutter/platform",C.fw,null) C.xE=new A.nC("flutter/mousecursor",C.cf,null) C.xF=new A.nC("flutter/textinput",C.fw,null) C.lg=new A.nC("flutter/navigation",C.fw,null) C.hv=new A.nC("flutter/restoration",C.cf,null) C.xG=new A.nD(0,null) C.xH=new A.nD(1,null) C.lh=new F.H3("Orientation.portrait") C.li=new F.H3("Orientation.landscape") C.xI=new U.xh(null) C.I4=new K.a0H("Overflow.clip") C.aA=new P.Hp(0,"PaintingStyle.fill") C.ab=new P.Hp(1,"PaintingStyle.stroke") C.xJ=new P.iT(60) C.xK=new P.iT(1/0) C.bp=new P.Ht(0,"PathFillType.nonZero") C.ew=new P.Ht(1,"PathFillType.evenOdd") C.aT=new H.nG("PersistedSurfaceState.created") C.ai=new H.nG("PersistedSurfaceState.active") C.cz=new H.nG("PersistedSurfaceState.pendingRetention") C.xL=new H.nG("PersistedSurfaceState.pendingUpdate") C.lk=new H.nG("PersistedSurfaceState.released") C.eC=new P.ls("PlaceholderAlignment.baseline") C.hz=new P.ls("PlaceholderAlignment.aboveBaseline") C.hA=new P.ls("PlaceholderAlignment.belowBaseline") C.hB=new P.ls("PlaceholderAlignment.top") C.hC=new P.ls("PlaceholderAlignment.bottom") C.hD=new P.ls("PlaceholderAlignment.middle") C.Bd=new U.qy(C.r,null) C.dj=new P.k_("PointerChange.cancel") C.dk=new P.k_("PointerChange.add") C.hE=new P.k_("PointerChange.remove") C.bY=new P.k_("PointerChange.hover") C.eD=new P.k_("PointerChange.down") C.bZ=new P.k_("PointerChange.move") C.dl=new P.k_("PointerChange.up") C.an=new P.lt("PointerDeviceKind.touch") C.ap=new P.lt("PointerDeviceKind.mouse") C.aJ=new P.lt("PointerDeviceKind.stylus") C.bq=new P.lt("PointerDeviceKind.invertedStylus") C.aU=new P.lt("PointerDeviceKind.unknown") C.bI=new P.xy("PointerSignalKind.none") C.hF=new P.xy("PointerSignalKind.scroll") C.ln=new P.xy("PointerSignalKind.unknown") C.Be=new R.xz(null,null,null,null,null) C.lo=new V.HR(1e5) C.Bf=new P.hc(20,20,60,60,10,10,10,10,10,10,10,10,!0) C.Bg=new T.xF(null,null,null,null,null,null) C.Bh=new P.c2(1,1) C.Bi=new P.c2(15.5,15.5) C.cA=new P.c2(2,2) C.Bj=new P.c2(7,7) C.Bk=new P.c2(8,8) C.Bl=new P.c2(1.5,1.5) C.Z=new P.x(0,0,0,0) C.Bm=new P.x(10,10,320,240) C.Bn=new P.x(-1/0,-1/0,1/0,1/0) C.eE=new P.x(-1e9,-1e9,1e9,1e9) C.cB=new G.qK(0,"RenderComparison.identical") C.Bo=new G.qK(1,"RenderComparison.metadata") C.lq=new G.qK(2,"RenderComparison.paint") C.cC=new G.qK(3,"RenderComparison.layout") C.lr=new H.i2("Role.incrementable") C.ls=new H.i2("Role.scrollable") C.lt=new H.i2("Role.labelAndValue") C.lu=new H.i2("Role.tappable") C.lv=new H.i2("Role.textField") C.lw=new H.i2("Role.checkable") C.lx=new H.i2("Role.image") C.ly=new H.i2("Role.liveRegion") C.Bp=new X.ef(C.ba,C.q) C.n4=new K.d1(C.cA,C.cA,C.cA,C.cA) C.Bq=new X.ef(C.n4,C.q) C.Br=new X.ef(C.dR,C.q) C.Bs=new R.y6("RouteMatchType.visual") C.Bt=new R.y6("RouteMatchType.nonVisual") C.Bu=new R.y6("RouteMatchType.noMatch") C.hG=new K.qT("RoutePopDisposition.pop") C.lz=new K.qT("RoutePopDisposition.doNotPop") C.lA=new K.qT("RoutePopDisposition.bubble") C.lB=new K.dU(null,null) C.lC=new Y.IK("RouteTreeNodeType.component") C.hH=new Y.IK("RouteTreeNodeType.parameter") C.Bv=new M.IP(null,null) C.c0=new N.nS(0,"SchedulerPhase.idle") C.lD=new N.nS(1,"SchedulerPhase.transientCallbacks") C.lE=new N.nS(2,"SchedulerPhase.midFrameMicrotasks") C.dm=new N.nS(3,"SchedulerPhase.persistentCallbacks") C.lF=new N.nS(4,"SchedulerPhase.postFrameCallbacks") C.hI=new U.yb("ScriptCategory.englishLike") C.Bw=new U.yb("ScriptCategory.dense") C.Bx=new U.yb("ScriptCategory.tall") C.dn=new N.yf("ScrollDirection.idle") C.eF=new N.yf("ScrollDirection.forward") C.eG=new N.yf("ScrollDirection.reverse") C.dp=new F.IW("ScrollIncrementType.line") C.By=new F.i5(C.y,C.dp) C.Bz=new F.i5(C.A,C.dp) C.BA=new F.i5(C.A,C.hJ) C.BB=new F.i5(C.P,C.dp) C.BC=new F.i5(C.L,C.dp) C.lI=new A.yg("ScrollPositionAlignmentPolicy.explicit") C.c1=new A.yg("ScrollPositionAlignmentPolicy.keepVisibleAtEnd") C.c2=new A.yg("ScrollPositionAlignmentPolicy.keepVisibleAtStart") C.BD=new B.J_("ScrollViewKeyboardDismissBehavior.manual") C.BE=new B.J_("ScrollViewKeyboardDismissBehavior.onDrag") C.BF=new X.yl(null,null,null,null,null,null,null,null,null,null,null) C.cD=new N.j2("SelectionChangedCause.tap") C.bJ=new N.j2("SelectionChangedCause.longPress") C.lJ=new N.j2("SelectionChangedCause.forcePress") C.H=new N.j2("SelectionChangedCause.keyboard") C.hK=new N.j2("SelectionChangedCause.toolBar") C.hL=new N.j2("SelectionChangedCause.drag") C.dq=new P.cv(1) C.BG=new P.cv(1024) C.BH=new P.cv(1048576) C.lK=new P.cv(128) C.dr=new P.cv(16) C.BI=new P.cv(16384) C.lL=new P.cv(2) C.BJ=new P.cv(2048) C.BK=new P.cv(2097152) C.BL=new P.cv(256) C.BM=new P.cv(262144) C.ds=new P.cv(32) C.BN=new P.cv(32768) C.dt=new P.cv(4) C.BO=new P.cv(4096) C.BP=new P.cv(512) C.BQ=new P.cv(524288) C.lM=new P.cv(64) C.BR=new P.cv(65536) C.du=new P.cv(8) C.BS=new P.cv(8192) C.BT=new P.cp(1) C.lN=new P.cp(1024) C.lO=new P.cp(1048576) C.hM=new P.cp(128) C.hN=new P.cp(131072) C.lP=new P.cp(16) C.lQ=new P.cp(16384) C.BU=new P.cp(16777216) C.BV=new P.cp(2) C.lR=new P.cp(2048) C.lS=new P.cp(2097152) C.BW=new P.cp(256) C.BX=new P.cp(262144) C.hO=new P.cp(32) C.lT=new P.cp(32768) C.lU=new P.cp(4) C.lV=new P.cp(4096) C.BY=new P.cp(4194304) C.lW=new P.cp(512) C.lX=new P.cp(524288) C.hP=new P.cp(64) C.hQ=new P.cp(65536) C.lY=new P.cp(8) C.lZ=new P.cp(8192) C.BZ=new P.cp(8388608) C.m_=new A.ym("RenderViewport.twoPane") C.C_=new A.ym("RenderViewport.excludeFromScrolling") C.rw=H.b(s(["click","touchstart","touchend","pointerdown","pointermove","pointerup"]),t.i) C.wO=new H.bs(6,{click:null,touchstart:null,touchend:null,pointerdown:null,pointermove:null,pointerup:null},C.rw,t.Hw) C.C0=new P.fg(C.wO,t.vt) C.wP=new H.cS([C.bD,null],t.XK) C.m0=new P.fg(C.wP,t.Ji) C.ta=H.b(s(["click","keyup","keydown","mouseup","mousedown","pointerdown","pointerup"]),t.i) C.wU=new H.bs(7,{click:null,keyup:null,keydown:null,mouseup:null,mousedown:null,pointerdown:null,pointerup:null},C.ta,t.Hw) C.C1=new P.fg(C.wU,t.vt) C.x0=new H.cS([C.bH,null,C.le,null,C.lf,null],H.T("cS")) C.hR=new P.fg(C.x0,H.T("fg")) C.x3=new H.cS([C.b8,null],t.XK) C.C2=new P.fg(C.x3,t.Ji) C.tE=H.b(s(["serif","sans-serif","monospace","cursive","fantasy","system-ui","math","emoji","fangsong"]),t.i) C.x4=new H.bs(9,{serif:null,"sans-serif":null,monospace:null,cursive:null,fantasy:null,"system-ui":null,math:null,emoji:null,fangsong:null},C.tE,t.Hw) C.C3=new P.fg(C.x4,t.vt) C.x5=new H.cS([C.ao,null],t.XK) C.C4=new P.fg(C.x5,t.Ji) C.C5=new P.Q(1e5,1e5) C.C6=new P.Q(22,22) C.C7=new P.Q(59,40) C.C8=new P.Q(59,48) C.dv=new T.o0(0,0,null,null) C.eH=new T.o0(null,null,null,null) C.C9=new Q.yz(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null) C.m1=new G.Jq(0,0,0,0,0,0,!1,!1,null,0) C.Ca=new N.Jw(0,"SmartDashesType.disabled") C.Cb=new N.Jw(1,"SmartDashesType.enabled") C.Cc=new N.Jx(0,"SmartQuotesType.disabled") C.Cd=new N.Jx(1,"SmartQuotesType.enabled") C.I6=new N.yB("SnackBarClosedReason.hide") C.m2=new N.yB("SnackBarClosedReason.timeout") C.Ce=new K.yC(null,null,null,null,null,null,null) C.Cf=new M.yE("SpringType.criticallyDamped") C.Cg=new M.yE("SpringType.underDamped") C.Ch=new M.yE("SpringType.overDamped") C.br=new K.yG("StackFit.loose") C.Ci=new K.yG("StackFit.expand") C.m3=new K.yG("StackFit.passthrough") C.Cj=new R.i7("...",-1,"","","",-1,-1,"","...") C.Ck=new R.i7("",-1,"","","",-1,-1,"","asynchronous suspension") C.hS=new T.hh("") C.bK=new P.yK(0,"StrokeCap.butt") C.Cm=new P.yK(1,"StrokeCap.round") C.m4=new P.yK(2,"StrokeCap.square") C.cE=new P.yL(0,"StrokeJoin.miter") C.Cn=new P.yL(1,"StrokeJoin.round") C.Co=new P.yL(2,"StrokeJoin.bevel") C.Cp=new R.yO(null,null,null,null,null,null) C.Cq=new H.of("Intl.locale") C.Cr=new H.of("call") C.hT=new A.lJ("basic") C.hU=new A.lJ("click") C.Ct=new V.JV("SystemSoundType.click") C.Cu=new V.JV("SystemSoundType.alert") C.Cv=new X.lK(C.t,null,C.a3,null,C.a2,C.a3) C.Cw=new X.lK(C.t,null,C.a3,null,C.a3,C.a2) C.Cx=new U.yQ(null,null,null,null,null,null,null) C.dw=new S.og("TableCellVerticalAlignment.top") C.hV=new S.og("TableCellVerticalAlignment.middle") C.hW=new S.og("TableCellVerticalAlignment.bottom") C.hX=new S.og("TableCellVerticalAlignment.baseline") C.hY=new S.og("TableCellVerticalAlignment.fill") C.m7=new E.a6V("tap") C.m8=new K.K3(0) C.m9=new K.K3(-1) C.R=new P.yV(0,"TextBaseline.alphabetic") C.au=new P.yV(1,"TextBaseline.ideographic") C.Cy=new T.yW(null) C.eJ=new H.rL("TextCapitalization.none") C.ma=new H.yX(C.eJ) C.i_=new H.rL("TextCapitalization.words") C.i0=new H.rL("TextCapitalization.sentences") C.i1=new H.rL("TextCapitalization.characters") C.Cz=new N.a6X() C.CA=new P.oi(0,"TextDecorationStyle.solid") C.mb=new P.oi(1,"TextDecorationStyle.double") C.CB=new P.oi(2,"TextDecorationStyle.dotted") C.CC=new P.oi(3,"TextDecorationStyle.dashed") C.CD=new P.oi(4,"TextDecorationStyle.wavy") C.O=new X.eh(-1,-1,C.l,!1,-1,-1) C.v=new P.eM(-1,-1) C.u=new N.bb("",C.O,C.v) C.mg=new X.eh(0,0,C.l,!1,0,0) C.a6=new N.bb("",C.mg,C.v) C.i2=new N.eL("TextInputAction.none") C.i3=new N.eL("TextInputAction.unspecified") C.i4=new N.eL("TextInputAction.route") C.i5=new N.eL("TextInputAction.emergencyCall") C.eK=new N.eL("TextInputAction.newline") C.dx=new N.eL("TextInputAction.done") C.i6=new N.eL("TextInputAction.go") C.i7=new N.eL("TextInputAction.search") C.i8=new N.eL("TextInputAction.send") C.i9=new N.eL("TextInputAction.next") C.ia=new N.eL("TextInputAction.previous") C.ib=new N.eL("TextInputAction.continueAction") C.ic=new N.eL("TextInputAction.join") C.CE=new N.z0(0,null,null) C.md=new N.z0(1,null,null) C.me=new Q.rR("TextOverflow.fade") C.aV=new Q.rR("TextOverflow.ellipsis") C.mf=new Q.rR("TextOverflow.visible") C.CF=new P.aV(0,C.l) C.cG=new F.z4("TextSelectionHandleType.left") C.cH=new F.z4("TextSelectionHandleType.right") C.dy=new F.z4("TextSelectionHandleType.collapsed") C.CG=new R.z5(null,null,null) C.mc=new P.yY(1) C.Dg=new A.w(!0,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,C.mc,null,null,null,null,null,null) C.E5=new A.w(!0,null,null,null,null,null,null,C.bA,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null) C.oX=new P.C(3506372608) C.pM=new P.C(4294967040) C.EC=new A.w(!0,C.oX,null,"monospace",null,null,48,C.jV,null,null,null,null,null,null,null,null,null,C.mc,C.pM,C.mb,null,"fallback style; consider putting your text in a Material",null,null) C.h=new P.yY(0) C.EV=new A.w(!0,C.S,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedwoodCity headline1",null,null) C.EW=new A.w(!0,C.S,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedwoodCity headline2",null,null) C.EX=new A.w(!0,C.S,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedwoodCity headline3",null,null) C.EY=new A.w(!0,C.S,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedwoodCity headline4",null,null) C.EZ=new A.w(!0,C.J,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedwoodCity headline5",null,null) C.F_=new A.w(!0,C.J,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedwoodCity headline6",null,null) C.CW=new A.w(!0,C.J,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedwoodCity subtitle1",null,null) C.CX=new A.w(!0,C.t,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedwoodCity subtitle2",null,null) C.Dk=new A.w(!0,C.J,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedwoodCity bodyText1",null,null) C.Dl=new A.w(!0,C.J,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedwoodCity bodyText2",null,null) C.CH=new A.w(!0,C.S,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedwoodCity caption",null,null) C.F0=new A.w(!0,C.J,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedwoodCity button",null,null) C.E6=new A.w(!0,C.t,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedwoodCity overline",null,null) C.Fr=new R.dX(C.EV,C.EW,C.EX,C.EY,C.EZ,C.F_,C.CW,C.CX,C.Dk,C.Dl,C.CH,C.F0,C.E6) C.Y=H.b(s(["Ubuntu","Cantarell","DejaVu Sans","Liberation Sans","Arial"]),t.i) C.Fm=new A.w(!0,C.T,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteHelsinki headline1",null,null) C.Fn=new A.w(!0,C.T,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteHelsinki headline2",null,null) C.Fo=new A.w(!0,C.T,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteHelsinki headline3",null,null) C.Fp=new A.w(!0,C.T,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteHelsinki headline4",null,null) C.Dr=new A.w(!0,C.j,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteHelsinki headline5",null,null) C.Ds=new A.w(!0,C.j,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteHelsinki headline6",null,null) C.Fj=new A.w(!0,C.j,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteHelsinki subtitle1",null,null) C.Fk=new A.w(!0,C.j,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteHelsinki subtitle2",null,null) C.DO=new A.w(!0,C.j,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteHelsinki bodyText1",null,null) C.DP=new A.w(!0,C.j,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteHelsinki bodyText2",null,null) C.DG=new A.w(!0,C.T,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteHelsinki caption",null,null) C.EA=new A.w(!0,C.j,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteHelsinki button",null,null) C.Fd=new A.w(!0,C.j,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteHelsinki overline",null,null) C.Fs=new R.dX(C.Fm,C.Fn,C.Fo,C.Fp,C.Dr,C.Ds,C.Fj,C.Fk,C.DO,C.DP,C.DG,C.EA,C.Fd) C.Dw=new A.w(!0,C.S,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackMountainView headline1",null,null) C.Dx=new A.w(!0,C.S,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackMountainView headline2",null,null) C.Dy=new A.w(!0,C.S,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackMountainView headline3",null,null) C.Dz=new A.w(!0,C.S,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackMountainView headline4",null,null) C.DA=new A.w(!0,C.J,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackMountainView headline5",null,null) C.DB=new A.w(!0,C.J,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackMountainView headline6",null,null) C.DX=new A.w(!0,C.J,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackMountainView subtitle1",null,null) C.DY=new A.w(!0,C.t,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackMountainView subtitle2",null,null) C.CP=new A.w(!0,C.J,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackMountainView bodyText1",null,null) C.CQ=new A.w(!0,C.J,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackMountainView bodyText2",null,null) C.Dt=new A.w(!0,C.S,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackMountainView caption",null,null) C.DR=new A.w(!0,C.J,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackMountainView button",null,null) C.Dc=new A.w(!0,C.t,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackMountainView overline",null,null) C.Ft=new R.dX(C.Dw,C.Dx,C.Dy,C.Dz,C.DA,C.DB,C.DX,C.DY,C.CP,C.CQ,C.Dt,C.DR,C.Dc) C.EF=new A.w(!0,C.S,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedmond headline1",null,null) C.EG=new A.w(!0,C.S,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedmond headline2",null,null) C.EH=new A.w(!0,C.S,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedmond headline3",null,null) C.EI=new A.w(!0,C.S,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedmond headline4",null,null) C.EJ=new A.w(!0,C.J,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedmond headline5",null,null) C.EK=new A.w(!0,C.J,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedmond headline6",null,null) C.CR=new A.w(!0,C.J,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedmond subtitle1",null,null) C.CS=new A.w(!0,C.t,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedmond subtitle2",null,null) C.E0=new A.w(!0,C.J,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedmond bodyText1",null,null) C.E1=new A.w(!0,C.J,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedmond bodyText2",null,null) C.E7=new A.w(!0,C.S,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedmond caption",null,null) C.Fi=new A.w(!0,C.J,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedmond button",null,null) C.D8=new A.w(!0,C.t,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackRedmond overline",null,null) C.Fu=new R.dX(C.EF,C.EG,C.EH,C.EI,C.EJ,C.EK,C.CR,C.CS,C.E0,C.E1,C.E7,C.Fi,C.D8) C.CY=new A.w(!0,C.T,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteMountainView headline1",null,null) C.CZ=new A.w(!0,C.T,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteMountainView headline2",null,null) C.D_=new A.w(!0,C.T,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteMountainView headline3",null,null) C.D0=new A.w(!0,C.T,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteMountainView headline4",null,null) C.Fe=new A.w(!0,C.j,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteMountainView headline5",null,null) C.Ff=new A.w(!0,C.j,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteMountainView headline6",null,null) C.D4=new A.w(!0,C.j,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteMountainView subtitle1",null,null) C.D5=new A.w(!0,C.j,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteMountainView subtitle2",null,null) C.CT=new A.w(!0,C.j,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteMountainView bodyText1",null,null) C.CU=new A.w(!0,C.j,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteMountainView bodyText2",null,null) C.Fg=new A.w(!0,C.T,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteMountainView caption",null,null) C.Eo=new A.w(!0,C.j,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteMountainView button",null,null) C.EQ=new A.w(!0,C.j,null,"Roboto",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteMountainView overline",null,null) C.Fv=new R.dX(C.CY,C.CZ,C.D_,C.D0,C.Fe,C.Ff,C.D4,C.D5,C.CT,C.CU,C.Fg,C.Eo,C.EQ) C.Ek=new A.w(!1,null,null,null,null,null,112,C.fS,null,null,null,C.au,null,null,null,null,null,null,null,null,null,"dense display4 2014",null,null) C.El=new A.w(!1,null,null,null,null,null,56,C.X,null,null,null,C.au,null,null,null,null,null,null,null,null,null,"dense display3 2014",null,null) C.Em=new A.w(!1,null,null,null,null,null,45,C.X,null,null,null,C.au,null,null,null,null,null,null,null,null,null,"dense display2 2014",null,null) C.En=new A.w(!1,null,null,null,null,null,34,C.X,null,null,null,C.au,null,null,null,null,null,null,null,null,null,"dense display1 2014",null,null) C.ED=new A.w(!1,null,null,null,null,null,24,C.X,null,null,null,C.au,null,null,null,null,null,null,null,null,null,"dense headline 2014",null,null) C.CL=new A.w(!1,null,null,null,null,null,21,C.b0,null,null,null,C.au,null,null,null,null,null,null,null,null,null,"dense title 2014",null,null) C.CK=new A.w(!1,null,null,null,null,null,17,C.X,null,null,null,C.au,null,null,null,null,null,null,null,null,null,"dense subhead 2014",null,null) C.CO=new A.w(!1,null,null,null,null,null,15,C.b0,null,null,null,C.au,null,null,null,null,null,null,null,null,null,"dense subtitle 2014",null,null) C.F1=new A.w(!1,null,null,null,null,null,15,C.b0,null,null,null,C.au,null,null,null,null,null,null,null,null,null,"dense body2 2014",null,null) C.F2=new A.w(!1,null,null,null,null,null,15,C.X,null,null,null,C.au,null,null,null,null,null,null,null,null,null,"dense body1 2014",null,null) C.CV=new A.w(!1,null,null,null,null,null,13,C.X,null,null,null,C.au,null,null,null,null,null,null,null,null,null,"dense caption 2014",null,null) C.EP=new A.w(!1,null,null,null,null,null,15,C.b0,null,null,null,C.au,null,null,null,null,null,null,null,null,null,"dense button 2014",null,null) C.CN=new A.w(!1,null,null,null,null,null,11,C.X,null,null,null,C.au,null,null,null,null,null,null,null,null,null,"dense overline 2014",null,null) C.Fw=new R.dX(C.Ek,C.El,C.Em,C.En,C.ED,C.CL,C.CK,C.CO,C.F1,C.F2,C.CV,C.EP,C.CN) C.Ex=new A.w(!0,C.T,null,".SF UI Display",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteCupertino headline1",null,null) C.F8=new A.w(!0,C.T,null,".SF UI Display",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteCupertino headline2",null,null) C.E3=new A.w(!0,C.T,null,".SF UI Display",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteCupertino headline3",null,null) C.CI=new A.w(!0,C.T,null,".SF UI Display",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteCupertino headline4",null,null) C.F9=new A.w(!0,C.j,null,".SF UI Display",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteCupertino headline5",null,null) C.DI=new A.w(!0,C.j,null,".SF UI Display",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteCupertino headline6",null,null) C.Fl=new A.w(!0,C.j,null,".SF UI Text",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteCupertino subtitle1",null,null) C.DH=new A.w(!0,C.j,null,".SF UI Text",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteCupertino subtitle2",null,null) C.E4=new A.w(!0,C.j,null,".SF UI Text",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteCupertino bodyText1",null,null) C.D7=new A.w(!0,C.j,null,".SF UI Text",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteCupertino bodyText2",null,null) C.EB=new A.w(!0,C.T,null,".SF UI Text",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteCupertino caption",null,null) C.DJ=new A.w(!0,C.j,null,".SF UI Text",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteCupertino button",null,null) C.Dp=new A.w(!0,C.j,null,".SF UI Text",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteCupertino overline",null,null) C.Fx=new R.dX(C.Ex,C.F8,C.E3,C.CI,C.F9,C.DI,C.Fl,C.DH,C.E4,C.D7,C.EB,C.DJ,C.Dp) C.Ez=new A.w(!0,C.S,null,".SF UI Display",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackCupertino headline1",null,null) C.DC=new A.w(!0,C.S,null,".SF UI Display",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackCupertino headline2",null,null) C.Fq=new A.w(!0,C.S,null,".SF UI Display",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackCupertino headline3",null,null) C.EL=new A.w(!0,C.S,null,".SF UI Display",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackCupertino headline4",null,null) C.Dm=new A.w(!0,C.J,null,".SF UI Display",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackCupertino headline5",null,null) C.DF=new A.w(!0,C.J,null,".SF UI Display",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackCupertino headline6",null,null) C.D3=new A.w(!0,C.J,null,".SF UI Text",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackCupertino subtitle1",null,null) C.Ej=new A.w(!0,C.t,null,".SF UI Text",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackCupertino subtitle2",null,null) C.DK=new A.w(!0,C.J,null,".SF UI Text",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackCupertino bodyText1",null,null) C.Ee=new A.w(!0,C.J,null,".SF UI Text",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackCupertino bodyText2",null,null) C.Dq=new A.w(!0,C.S,null,".SF UI Text",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackCupertino caption",null,null) C.F3=new A.w(!0,C.J,null,".SF UI Text",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackCupertino button",null,null) C.D6=new A.w(!0,C.t,null,".SF UI Text",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackCupertino overline",null,null) C.Fy=new R.dX(C.Ez,C.DC,C.Fq,C.EL,C.Dm,C.DF,C.D3,C.Ej,C.DK,C.Ee,C.Dq,C.F3,C.D6) C.DS=new A.w(!1,null,null,null,null,null,112,C.X,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"tall display4 2014",null,null) C.DT=new A.w(!1,null,null,null,null,null,56,C.X,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"tall display3 2014",null,null) C.DU=new A.w(!1,null,null,null,null,null,45,C.X,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"tall display2 2014",null,null) C.DV=new A.w(!1,null,null,null,null,null,34,C.X,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"tall display1 2014",null,null) C.Df=new A.w(!1,null,null,null,null,null,24,C.X,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"tall headline 2014",null,null) C.DZ=new A.w(!1,null,null,null,null,null,21,C.bA,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"tall title 2014",null,null) C.F5=new A.w(!1,null,null,null,null,null,17,C.X,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"tall subhead 2014",null,null) C.Es=new A.w(!1,null,null,null,null,null,15,C.b0,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"tall subtitle 2014",null,null) C.Dd=new A.w(!1,null,null,null,null,null,15,C.bA,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"tall body2 2014",null,null) C.De=new A.w(!1,null,null,null,null,null,15,C.X,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"tall body1 2014",null,null) C.Er=new A.w(!1,null,null,null,null,null,13,C.X,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"tall caption 2014",null,null) C.DW=new A.w(!1,null,null,null,null,null,15,C.bA,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"tall button 2014",null,null) C.Db=new A.w(!1,null,null,null,null,null,11,C.X,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"tall overline 2014",null,null) C.Fz=new R.dX(C.DS,C.DT,C.DU,C.DV,C.Df,C.DZ,C.F5,C.Es,C.Dd,C.De,C.Er,C.DW,C.Db) C.ER=new A.w(!1,null,null,null,null,null,112,C.fS,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"englishLike display4 2014",null,null) C.ES=new A.w(!1,null,null,null,null,null,56,C.X,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"englishLike display3 2014",null,null) C.ET=new A.w(!1,null,null,null,null,null,45,C.X,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"englishLike display2 2014",null,null) C.EU=new A.w(!1,null,null,null,null,null,34,C.X,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"englishLike display1 2014",null,null) C.EM=new A.w(!1,null,null,null,null,null,24,C.X,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"englishLike headline 2014",null,null) C.Da=new A.w(!1,null,null,null,null,null,20,C.b0,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"englishLike title 2014",null,null) C.Fa=new A.w(!1,null,null,null,null,null,16,C.X,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"englishLike subhead 2014",null,null) C.D9=new A.w(!1,null,null,null,null,null,14,C.b0,null,0.1,null,C.R,null,null,null,null,null,null,null,null,null,"englishLike subtitle 2014",null,null) C.Di=new A.w(!1,null,null,null,null,null,14,C.b0,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"englishLike body2 2014",null,null) C.Dj=new A.w(!1,null,null,null,null,null,14,C.X,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"englishLike body1 2014",null,null) C.Dh=new A.w(!1,null,null,null,null,null,12,C.X,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"englishLike caption 2014",null,null) C.DD=new A.w(!1,null,null,null,null,null,14,C.b0,null,null,null,C.R,null,null,null,null,null,null,null,null,null,"englishLike button 2014",null,null) C.DQ=new A.w(!1,null,null,null,null,null,10,C.X,null,1.5,null,C.R,null,null,null,null,null,null,null,null,null,"englishLike overline 2014",null,null) C.FA=new R.dX(C.ER,C.ES,C.ET,C.EU,C.EM,C.Da,C.Fa,C.D9,C.Di,C.Dj,C.Dh,C.DD,C.DQ) C.Ef=new A.w(!0,C.T,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedwoodCity headline1",null,null) C.Eg=new A.w(!0,C.T,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedwoodCity headline2",null,null) C.Eh=new A.w(!0,C.T,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedwoodCity headline3",null,null) C.Ei=new A.w(!0,C.T,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedwoodCity headline4",null,null) C.Dn=new A.w(!0,C.j,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedwoodCity headline5",null,null) C.Do=new A.w(!0,C.j,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedwoodCity headline6",null,null) C.EN=new A.w(!0,C.j,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedwoodCity subtitle1",null,null) C.EO=new A.w(!0,C.j,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedwoodCity subtitle2",null,null) C.DM=new A.w(!0,C.j,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedwoodCity bodyText1",null,null) C.DN=new A.w(!0,C.j,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedwoodCity bodyText2",null,null) C.E_=new A.w(!0,C.T,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedwoodCity caption",null,null) C.CM=new A.w(!0,C.j,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedwoodCity button",null,null) C.Ey=new A.w(!0,C.j,null,".AppleSystemUIFont",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedwoodCity overline",null,null) C.FB=new R.dX(C.Ef,C.Eg,C.Eh,C.Ei,C.Dn,C.Do,C.EN,C.EO,C.DM,C.DN,C.E_,C.CM,C.Ey) C.E8=new A.w(!0,C.S,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackHelsinki headline1",null,null) C.E9=new A.w(!0,C.S,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackHelsinki headline2",null,null) C.Ea=new A.w(!0,C.S,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackHelsinki headline3",null,null) C.Eb=new A.w(!0,C.S,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackHelsinki headline4",null,null) C.Ec=new A.w(!0,C.J,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackHelsinki headline5",null,null) C.Ed=new A.w(!0,C.J,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackHelsinki headline6",null,null) C.F6=new A.w(!0,C.J,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackHelsinki subtitle1",null,null) C.F7=new A.w(!0,C.t,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackHelsinki subtitle2",null,null) C.D1=new A.w(!0,C.J,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackHelsinki bodyText1",null,null) C.D2=new A.w(!0,C.J,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackHelsinki bodyText2",null,null) C.DL=new A.w(!0,C.S,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackHelsinki caption",null,null) C.Fh=new A.w(!0,C.J,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackHelsinki button",null,null) C.E2=new A.w(!0,C.t,null,"Roboto",C.Y,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"blackHelsinki overline",null,null) C.FC=new R.dX(C.E8,C.E9,C.Ea,C.Eb,C.Ec,C.Ed,C.F6,C.F7,C.D1,C.D2,C.DL,C.Fh,C.E2) C.Et=new A.w(!0,C.T,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedmond headline1",null,null) C.Eu=new A.w(!0,C.T,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedmond headline2",null,null) C.Ev=new A.w(!0,C.T,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedmond headline3",null,null) C.Ew=new A.w(!0,C.T,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedmond headline4",null,null) C.Fb=new A.w(!0,C.j,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedmond headline5",null,null) C.Fc=new A.w(!0,C.j,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedmond headline6",null,null) C.Ep=new A.w(!0,C.j,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedmond subtitle1",null,null) C.Eq=new A.w(!0,C.j,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedmond subtitle2",null,null) C.Du=new A.w(!0,C.j,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedmond bodyText1",null,null) C.Dv=new A.w(!0,C.j,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedmond bodyText2",null,null) C.CJ=new A.w(!0,C.T,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedmond caption",null,null) C.EE=new A.w(!0,C.j,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedmond button",null,null) C.DE=new A.w(!0,C.j,null,"Segoe UI",null,null,null,null,null,null,null,null,null,null,null,null,null,C.h,null,null,null,"whiteRedmond overline",null,null) C.FD=new R.dX(C.Et,C.Eu,C.Ev,C.Ew,C.Fb,C.Fc,C.Ep,C.Eq,C.Du,C.Dv,C.CJ,C.EE,C.DE) C.mh=new U.Kb("TextWidthBasis.longestLine") C.I7=new S.a7i("ThemeMode.system") C.mi=new Z.z7(0) C.FE=new Z.z7(0.5) C.FF=new M.z8(null) C.dz=new P.rV(0,"TileMode.clamp") C.mj=new P.rV(1,"TileMode.repeated") C.FG=new P.rV(2,"TileMode.mirror") C.id=new P.rV(3,"TileMode.decal") C.FH=new A.za(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null) C.FI=new E.Ke("ToastGravity.TOP") C.bM=new E.Ke("ToastGravity.CENTER") C.c5=new E.Kd("Toast.LENGTH_SHORT") C.FJ=new E.Kd("Toast.LENGTH_LONG") C.FK=new S.zb(null,null,null,null,null,null,null,null,null,null,null,null,null,null,null) C.cI=new N.Kf(0.001,0.001) C.FL=new D.Kg(!1,!1) C.FM=new D.Kg(!0,!0) C.FN=new T.zf(null,null,null,null,null,null,null,null) C.mk=new H.zj("TransformKind.identity") C.ml=new H.zj("TransformKind.transform2d") C.eL=new H.zj("TransformKind.complex") C.mm=new R.eO("TransitionType.native") C.mn=new R.eO("TransitionType.nativeModal") C.FO=new R.eO("TransitionType.cupertino") C.mo=new R.eO("TransitionType.cupertinoFullScreenDialog") C.FP=new R.eO("TransitionType.none") C.FQ=new R.eO("TransitionType.inFromLeft") C.FR=new R.eO("TransitionType.inFromTop") C.FS=new R.eO("TransitionType.inFromRight") C.FT=new R.eO("TransitionType.inFromBottom") C.mp=new R.eO("TransitionType.fadeIn") C.FU=new R.eO("TransitionType.custom") C.FV=new R.eO("TransitionType.material") C.mq=new R.eO("TransitionType.materialFullScreenDialog") C.b9=new U.lQ("TraversalDirection.right") C.aX=new U.lQ("TraversalDirection.left") C.FW=H.at("ajl") C.FX=H.at("ak_") C.FY=H.at("ak0") C.FZ=H.at("ajp") C.G_=H.at("ajm") C.G1=H.at("aju") C.G0=H.at("ajw") C.ie=H.at("kM") C.mr=H.at("kU") C.G2=H.at("kW") C.G3=H.at("bX") C.G4=H.at("ak2") C.G5=H.at("ak3") C.G6=H.at("C") C.G7=H.at("jk") C.G8=H.at("mJ") C.G9=H.at("mK") C.Ga=H.at("ayn") C.Gb=H.at("hJ") C.Gc=H.at("ajy") C.Gd=H.at("ayF") C.Ge=H.at("X1") C.Gf=H.at("hM") C.Gg=H.at("ak6") C.Gh=H.at("az4") C.Gi=H.at("Zt") C.Gj=H.at("az5") C.Gk=H.at("ajJ") C.Gl=H.at("ajt") C.Gm=H.at("aY>") C.ig=H.at("f4") C.Gn=H.at("wO") C.bs=H.at("wP") C.Go=H.at("ajZ") C.Gp=H.at("ak1") C.Gq=H.at("ak4") C.Gr=H.at("ak5") C.Gs=H.at("ak7") C.Gt=H.at("ajr") C.Gu=H.at("qo") C.Gv=H.at("a6") C.Gw=H.at("iR") C.ih=H.at("i0") C.Gx=H.at("qB") C.Gy=H.at("qE") C.Gz=H.at("apq") C.GA=H.at("i5") C.GB=H.at("nY") C.GC=H.at("lD") C.ms=H.at("f") C.mt=H.at("eK") C.GD=H.at("aBv") C.GE=H.at("aBw") C.GF=H.at("aBx") C.GG=H.at("fO") C.eM=H.at("hO") C.GH=H.at("zr") C.GI=H.at("t3") C.GJ=H.at("kv<@>") C.GK=H.at("ji") C.GL=H.at("jj") C.GM=H.at("G") C.GN=H.at("O") C.GO=H.at("ajq") C.GP=H.at("ajs") C.GQ=H.at("p") C.ii=H.at("id") C.GR=H.at("mL") C.GS=H.at("bG") C.GT=H.at("ajo") C.GU=H.at("aym") C.GV=H.at("ajx") C.GW=H.at("ajv") C.GX=H.at("ajn") C.mu=new O.Ko("UnfocusDisposition.scope") C.ij=new O.Ko("UnfocusDisposition.previouslyFocusedChild") C.cJ=new P.Ky(!1) C.GY=new P.Ky(!0) C.GZ=new R.t_(C.i,0,C.G,C.i) C.H_=new G.KA("VerticalDirection.up") C.eN=new G.KA("VerticalDirection.down") C.mv=new X.t0(0,0) C.H0=new X.t0(-2,-2) C.eO=new H.KJ(0,0,0,0) C.aw=new G.L3("_AnimationDirection.forward") C.is=new G.L3("_AnimationDirection.reverse") C.it=new H.zI("_CheckableKind.checkbox") C.iu=new H.zI("_CheckableKind.radio") C.iv=new H.zI("_CheckableKind.toggle") C.mx=new H.zK("_ComparisonResult.inside") C.my=new H.zK("_ComparisonResult.higher") C.mz=new H.zK("_ComparisonResult.lower") C.H2=new D.ie(null) C.pQ=new P.C(939524096) C.oW=new P.C(301989888) C.pP=new P.C(67108864) C.t4=H.b(s([C.pQ,C.oW,C.pP,C.aP]),H.T("o")) C.H3=new D.ie(C.t4) C.eS=new L.fc("_DecorationSlot.icon") C.eT=new L.fc("_DecorationSlot.input") C.eU=new L.fc("_DecorationSlot.container") C.eV=new L.fc("_DecorationSlot.label") C.eW=new L.fc("_DecorationSlot.hint") C.eX=new L.fc("_DecorationSlot.prefix") C.eY=new L.fc("_DecorationSlot.suffix") C.eZ=new L.fc("_DecorationSlot.prefixIcon") C.f_=new L.fc("_DecorationSlot.suffixIcon") C.f0=new L.fc("_DecorationSlot.helperError") C.f1=new L.fc("_DecorationSlot.counter") C.cL=new O.A_("_DragState.ready") C.mA=new O.A_("_DragState.possible") C.dG=new O.A_("_DragState.accepted") C.a1=new N.to("_ElementLifecycle.initial") C.c7=new N.to("_ElementLifecycle.active") C.H9=new N.to("_ElementLifecycle.inactive") C.Ha=new N.to("_ElementLifecycle.defunct") C.iB=new V.A7(C.hU,"clickable") C.Cs=new A.lJ("text") C.Hb=new V.A7(C.Cs,"textable") C.mB=new H.MM(1) C.mC=new H.MM(-1) C.iC=new K.oC("_ForceState.ready") C.f2=new K.oC("_ForceState.possible") C.mD=new K.oC("_ForceState.accepted") C.f3=new K.oC("_ForceState.started") C.Hc=new K.oC("_ForceState.peaked") C.dH=new L.tx("_GlowState.idle") C.mE=new L.tx("_GlowState.absorb") C.dI=new L.tx("_GlowState.pull") C.iD=new L.tx("_GlowState.recede") C.c8=new R.tz("_HighlightType.pressed") C.cM=new R.tz("_HighlightType.hover") C.f4=new R.tz("_HighlightType.focus") C.Hd=new P.m_(null,2) C.He=new V.m0(1/0,1/0,1/0,1/0,1/0,1/0) C.Hf=new B.cD(C.cu,C.e7) C.e8=new B.nk("KeyboardSide.left") C.Hg=new B.cD(C.cu,C.e8) C.e9=new B.nk("KeyboardSide.right") C.Hh=new B.cD(C.cu,C.e9) C.Hi=new B.cD(C.cu,C.bi) C.Hj=new B.cD(C.cv,C.e7) C.Hk=new B.cD(C.cv,C.e8) C.Hl=new B.cD(C.cv,C.e9) C.Hm=new B.cD(C.cv,C.bi) C.Hn=new B.cD(C.cw,C.e7) C.Ho=new B.cD(C.cw,C.e8) C.Hp=new B.cD(C.cw,C.e9) C.Hq=new B.cD(C.cw,C.bi) C.Hr=new B.cD(C.cx,C.e7) C.Hs=new B.cD(C.cx,C.e8) C.Ht=new B.cD(C.cx,C.e9) C.Hu=new B.cD(C.cx,C.bi) C.Hv=new B.cD(C.ho,C.bi) C.Hw=new B.cD(C.hp,C.bi) C.Hx=new B.cD(C.hq,C.bi) C.Hy=new B.cD(C.hr,C.bi) C.Hz=new L.O5(null) C.iE=new H.tT("_ParagraphCommandType.addText") C.mF=new H.tT("_ParagraphCommandType.pop") C.mG=new H.tT("_ParagraphCommandType.pushStyle") C.mH=new H.tT("_ParagraphCommandType.addPlaceholder") C.HB=new H.m4(C.mF,null,null,null) C.HC=new P.ado(C.F,P.aEO()) C.HD=new P.adp(C.F,P.aEP()) C.HE=new P.adq(C.F,P.aEQ()) C.HF=new K.ek(0,"_RouteLifecycle.staging") C.f5=new K.ek(1,"_RouteLifecycle.add") C.mI=new K.ek(10,"_RouteLifecycle.popping") C.mJ=new K.ek(11,"_RouteLifecycle.removing") C.iF=new K.ek(12,"_RouteLifecycle.dispose") C.mK=new K.ek(13,"_RouteLifecycle.disposed") C.mL=new K.ek(2,"_RouteLifecycle.adding") C.iG=new K.ek(3,"_RouteLifecycle.push") C.iH=new K.ek(4,"_RouteLifecycle.pushReplace") C.iI=new K.ek(5,"_RouteLifecycle.pushing") C.mM=new K.ek(6,"_RouteLifecycle.replace") C.dJ=new K.ek(7,"_RouteLifecycle.idle") C.f6=new K.ek(8,"_RouteLifecycle.pop") C.mN=new K.ek(9,"_RouteLifecycle.remove") C.HG=new P.adQ(C.F,P.aES()) C.HH=new P.adR(C.F,P.aER()) C.HI=new P.adS(C.F,P.aET()) C.f8=new M.fS("_ScaffoldSlot.body") C.f9=new M.fS("_ScaffoldSlot.appBar") C.fa=new M.fS("_ScaffoldSlot.statusBar") C.fb=new M.fS("_ScaffoldSlot.bodyScrim") C.fc=new M.fS("_ScaffoldSlot.bottomSheet") C.c9=new M.fS("_ScaffoldSlot.snackBar") C.iJ=new M.fS("_ScaffoldSlot.persistentFooter") C.iK=new M.fS("_ScaffoldSlot.bottomNavigationBar") C.fd=new M.fS("_ScaffoldSlot.floatingActionButton") C.iL=new M.fS("_ScaffoldSlot.drawer") C.iM=new M.fS("_ScaffoldSlot.endDrawer") C.k=new N.aey("_StateLifecycle.created") C.mP=new N.Q2("_SwitchType.material") C.HJ=new N.Q2("_SwitchType.adaptive") C.dK=new F.Qj("_TextSelectionHandlePosition.start") C.cN=new F.Qj("_TextSelectionHandlePosition.end") C.HK=new R.Qm(C.jI,C.dW) C.fe=new E.BS("_ToolbarSlot.leading") C.ff=new E.BS("_ToolbarSlot.middle") C.fg=new E.BS("_ToolbarSlot.trailing") C.mQ=new S.QB("_TrainHoppingMode.minimize") C.mR=new S.QB("_TrainHoppingMode.maximize") C.HL=new P.dH(C.F,P.aEI(),H.T("dH")) C.HM=new P.dH(C.F,P.aEM(),H.T("dH<~(ao*,bF*,ao*,z*,bA*)*>")) C.HN=new P.dH(C.F,P.aEJ(),H.T("dH")) C.HO=new P.dH(C.F,P.aEK(),H.T("dH")) C.HP=new P.dH(C.F,P.aEL(),H.T("dH?)*>")) C.HQ=new P.dH(C.F,P.aEN(),H.T("dH<~(ao*,bF*,ao*,f*)*>")) C.HR=new P.dH(C.F,P.aEU(),H.T("dH<~(ao*,bF*,ao*,~()*)*>")) C.HS=new P.oQ(null,null,null,null,null,null,null,null,null,null,null,null,null)})();(function staticFields(){$.arh=!1 $.hu=H.b([],t.u) $.e2=$ $.Ct=$ $.oS=null $.c8=$ $.oW=null $.ain=null $.yw=H.b([],H.T("o>")) $.yv=H.b([],H.T("o")) $.apD=!1 $.apI=!1 $.anS=null $.io=H.b([],t.kZ) $.eU=0 $.kF=H.b([],H.T("o")) $.ah5=H.b([],t.YD) $.alb=null $.ar_=null $.akE=$ $.apH=!1 $.a6D=null $.alj=H.b([],t.g) $.ajP=null $.aoy=null $.ajY=null $.asB=null $.asw=null $.ap4=null $.aBT=P.y(t.N,t.lG) $.aBU=P.y(t.N,t.lG) $.ar0=null $.aqu=0 $.al7=H.b([],t.no) $.alm=-1 $.akY=-1 $.akX=-1 $.ali=-1 $.arE=-1 $.ang=null $.dR=null $.apG=P.y(H.T("rO"),H.T("K4")) $.rQ=null $.anU=null $.anA=null $.arw=-1 $.arv=-1 $.arx="" $.aru="" $.ary=-1 $.RL=0 $.al6=!1 $.a7T=null $.md=!1 $.Cx=null $.abg=null $.alG=null $.a1C=0 $.HP=H.aDU() $.jw=0 $.uW=null $.anp=null $.ash=null $.arT=null $.asx=null $.ahx=null $.ai0=null $.aly=null $.uf=null $.CA=null $.CB=null $.ale=!1 $.R=C.F $.adG=null $.oX=H.b([],t.jl) $.ayz=P.aj(["iso_8859-1:1987",C.aO,"iso-ir-100",C.aO,"iso_8859-1",C.aO,"iso-8859-1",C.aO,"latin1",C.aO,"l1",C.aO,"ibm819",C.aO,"cp819",C.aO,"csisolatin1",C.aO,"iso-ir-6",C.aM,"ansi_x3.4-1968",C.aM,"ansi_x3.4-1986",C.aM,"iso_646.irv:1991",C.aM,"iso646-us",C.aM,"us-ascii",C.aM,"us",C.aM,"ibm367",C.aM,"cp367",C.aM,"csascii",C.aM,"ascii",C.aM,"csutf8",C.U,"utf-8",C.U],t.N,H.T("mP")) $.ao3=0 $.arj=P.y(t.N,H.T("ax(f,W)")) $.akx=H.b([],H.T("o")) $.l6=null $.ajh=null $.anZ=null $.anY=null $.Am=P.y(t.N,t._8) $.RK=null $.agI=null $.ayI=H.b([],H.T("o(l)>")) $.l8=U.aEz() $.ayM=U.aEA() $.ajB=0 $.FE=H.b([],H.T("o")) $.aoz=null $.RN=0 $.agD=null $.al3=!1 $.f1=null $.iS=null $.aoF=$ $.lA=null $.arR=1 $.bT=null $.J1=null $.anK=0 $.anI=P.y(t.S,t.I7) $.anJ=P.y(t.I7,t.S) $.a4t=0 $.lC=null $.akD=P.y(t.N,H.T("ax?(bX?)")) $.aC_=P.y(t.N,H.T("ax?(bX?)")) $.azo=function(){var s=t.bd return P.aj([C.hd,C.ae,C.hh,C.ae,C.hf,C.b4,C.hj,C.b4,C.he,C.b3,C.hi,C.b3,C.hc,C.cr,C.hg,C.cr],s,s)}() $.aAh=function(){var s=t.v3 return P.aj([C.Ho,P.dd([C.dh],s),C.Hp,P.dd([C.eA],s),C.Hq,P.dd([C.dh,C.eA],s),C.Hn,P.dd([C.dh],s),C.Hk,P.dd([C.dg],s),C.Hl,P.dd([C.ez],s),C.Hm,P.dd([C.dg,C.ez],s),C.Hj,P.dd([C.dg],s),C.Hg,P.dd([C.df],s),C.Hh,P.dd([C.ey],s),C.Hi,P.dd([C.df,C.ey],s),C.Hf,P.dd([C.df],s),C.Hs,P.dd([C.di],s),C.Ht,P.dd([C.eB],s),C.Hu,P.dd([C.di,C.eB],s),C.Hr,P.dd([C.di],s),C.Hv,P.dd([C.hw],s),C.Hw,P.dd([C.hy],s),C.Hx,P.dd([C.hx],s),C.Hy,P.dd([C.ex],s)],H.T("cD"),H.T("d3"))}() $.a1O=P.aj([C.dh,C.he,C.eA,C.hi,C.dg,C.hd,C.ez,C.hh,C.df,C.hc,C.ey,C.hg,C.di,C.hf,C.eB,C.hj,C.hw,C.ku,C.hy,C.ky,C.hx,C.kv],t.v3,t.bd) $.rF=null $.aks=null $.apP=1 $.aBH=!1 $.D=null $.b5=1 $.aqq=H.b([0.000022888183591973643,0.028561000304762274,0.05705195792956655,0.08538917797618413,0.11349556286812107,0.14129881694635613,0.16877157254923383,0.19581093511175632,0.22239649722992452,0.24843841866631658,0.2740024733220569,0.298967680744136,0.32333234658228116,0.34709556909569184,0.3702249257894571,0.39272483400399893,0.41456988647721615,0.43582889025419114,0.4564192786416,0.476410299013587,0.4957560715637827,0.5145493169954743,0.5327205670880077,0.5502846891191615,0.5673274324802855,0.583810881323224,0.5997478744397482,0.615194045299478,0.6301165005270208,0.6445484042257972,0.6585198219185201,0.6720397744233084,0.6850997688076114,0.6977281404741683,0.7099506591298411,0.7217749311525871,0.7331784038850426,0.7442308394229518,0.7549087205105974,0.7652471277371271,0.7752251637549381,0.7848768260203478,0.7942056937103814,0.8032299679689082,0.8119428702388629,0.8203713516576219,0.8285187880808974,0.8363794492831295,0.8439768562813565,0.851322799855549,0.8584111051351724,0.8652534074722162,0.8718525580962131,0.8782333271742155,0.8843892099362031,0.8903155590440985,0.8960465359221951,0.9015574505919048,0.9068736766459904,0.9119951682409297,0.9169321898723632,0.9216747065581234,0.9262420604674766,0.9306331858366086,0.9348476990715433,0.9389007110754832,0.9427903495057521,0.9465220679845756,0.9500943036519721,0.9535176728088761,0.9567898524767604,0.959924306623116,0.9629127700159108,0.9657622101750765,0.9684818726275105,0.9710676079044347,0.9735231939498,0.9758514437576309,0.9780599066560445,0.9801485715370128,0.9821149805689633,0.9839677526782791,0.9857085499421516,0.9873347811966005,0.9888547171706613,0.9902689443512227,0.9915771042095881,0.9927840651641069,0.9938913963715834,0.9948987305580712,0.9958114963810524,0.9966274782266875,0.997352148697352,0.9979848677523623,0.9985285021374979,0.9989844084453229,0.9993537595844986,0.999638729860106,0.9998403888004533,0.9999602810470701,1],t.up) $.azg=H.b([0,0,0],t._) $.azh=H.b([0,0,0,0],t._) $.aom=null $.as2=P.aj(["ADP",0,"AFN",0,"ALL",0,"AMD",2,"BHD",3,"BIF",0,"BYN",2,"BYR",0,"CAD",2,"CHF",2,"CLF",4,"CLP",0,"COP",2,"CRC",2,"CZK",2,"DEFAULT",2,"DJF",0,"DKK",2,"ESP",0,"GNF",0,"GYD",2,"HUF",2,"IDR",2,"IQD",0,"IRR",0,"ISK",0,"ITL",0,"JOD",3,"JPY",0,"KMF",0,"KPW",0,"KRW",0,"KWD",3,"LAK",0,"LBP",0,"LUF",0,"LYD",3,"MGA",0,"MGF",0,"MMK",0,"MNT",2,"MRO",0,"MUR",2,"NOK",2,"OMR",3,"PKR",2,"PYG",0,"RSD",0,"RWF",0,"SEK",2,"SLL",0,"SOS",0,"STD",0,"SYP",0,"TMM",0,"TND",3,"TRL",0,"TWD",2,"TZS",2,"UGX",0,"UYI",0,"UYW",4,"UZS",2,"VEF",2,"VND",0,"VUV",0,"XAF",0,"XOF",0,"XPF",0,"YER",0,"ZMK",0,"ZWD",0],t.X,t.Em) $.arc=null $.agC=null $.r5=null $.apB=!0 $.aj1=null $.S3=H.b(["roundRobin","random","first","leastconn"],t.i)})();(function lazyInitializers(){var s=hunkHelpers.lazy,r=hunkHelpers.lazyFinal,q=hunkHelpers.lazyOld s($,"aI_","alS",function(){return H.GN(8)}) r($,"aIg","atK",function(){return H.aq1(0,0,1)}) r($,"aIz","Sb",function(){return J.amC(J.aiN(H.al()))}) r($,"aJ5","au7",function(){return H.b([J.aw5(J.kL(H.al())),J.avp(J.kL(H.al())),J.avz(J.kL(H.al())),J.amG(J.kL(H.al())),J.amE(J.kL(H.al())),J.avV(J.kL(H.al())),J.av2(J.kL(H.al())),J.avo(J.kL(H.al())),J.avn(J.kL(H.al()))],H.T("o"))}) r($,"aJe","aue",function(){return H.b([J.avQ(J.amP(H.al())),J.avx(J.amP(H.al()))],H.T("o"))}) r($,"aJb","aub",function(){return H.b([J.avy(J.un(H.al())),J.avS(J.un(H.al())),J.av4(J.un(H.al())),J.avw(J.un(H.al())),J.aw3(J.un(H.al())),J.avk(J.un(H.al()))],H.T("o"))}) r($,"aJ7","au8",function(){return H.b([J.amQ(J.amK(H.al())),J.amD(J.amK(H.al()))],H.T("o"))}) r($,"aJ8","au9",function(){return H.b([J.amQ(J.amL(H.al())),J.amD(J.amL(H.al()))],H.T("o"))}) r($,"aJ2","am1",function(){return H.b([J.amz(J.aiN(H.al())),J.amC(J.aiN(H.al()))],H.T("o"))}) r($,"aJ3","Sh",function(){return H.b([J.aw9(J.amA(H.al())),J.avl(J.amA(H.al()))],H.T("o"))}) r($,"aJ1","au6",function(){return H.b([J.amG(J.Sm(H.al())),J.amN(J.Sm(H.al())),J.avK(J.Sm(H.al())),J.avv(J.Sm(H.al()))],H.T("o"))}) r($,"aJ9","am4",function(){return H.b([J.av3(J.aiP(H.al())),J.amM(J.aiP(H.al())),J.avY(J.aiP(H.al()))],H.T("o"))}) r($,"aJ6","am3",function(){return H.b([J.avq(J.amH(H.al())),J.aw4(J.amH(H.al()))],H.T("o"))}) r($,"aJ0","am0",function(){return H.b([J.av6(J.cg(H.al())),J.avZ(J.cg(H.al())),J.avf(J.cg(H.al())),J.aw2(J.cg(H.al())),J.avj(J.cg(H.al())),J.aw0(J.cg(H.al())),J.avh(J.cg(H.al())),J.aw1(J.cg(H.al())),J.avi(J.cg(H.al())),J.aw_(J.cg(H.al())),J.avg(J.cg(H.al())),J.awa(J.cg(H.al())),J.avP(J.cg(H.al())),J.avH(J.cg(H.al())),J.avU(J.cg(H.al())),J.avL(J.cg(H.al())),J.ava(J.cg(H.al())),J.avA(J.cg(H.al())),J.av9(J.cg(H.al())),J.av8(J.cg(H.al())),J.avr(J.cg(H.al())),J.avX(J.cg(H.al())),J.amz(J.cg(H.al())),J.avm(J.cg(H.al())),J.avI(J.cg(H.al())),J.avt(J.cg(H.al())),J.avT(J.cg(H.al())),J.av7(J.cg(H.al())),J.avD(J.cg(H.al()))],H.T("o"))}) r($,"aJa","aua",function(){return H.b([J.avG(J.aiQ(H.al())),J.amM(J.aiQ(H.al())),J.av1(J.aiQ(H.al()))],H.T("o"))}) r($,"aJ4","am2",function(){return H.b([J.aiO(J.So(H.al())),J.avC(J.So(H.al())),J.amE(J.So(H.al())),J.avs(J.So(H.al()))],H.T("o"))}) r($,"aJf","auf",function(){return H.b([J.av5(J.Sr(H.al())),J.avR(J.Sr(H.al())),J.avF(J.Sr(H.al())),J.avc(J.Sr(H.al()))],H.T("o"))}) r($,"aIL","atX",function(){var p=H.GN(2) p[0]=0 p[1]=1 return p}) r($,"aJ_","aGo",function(){return H.aFR(4)}) r($,"aJd","aud",function(){return H.b([J.amN(J.CW(H.al())),J.ave(J.CW(H.al())),J.avd(J.CW(H.al())),J.avb(J.CW(H.al())),J.aw8(J.CW(H.al()))],H.T("o"))}) r($,"aJc","auc",function(){return H.b([J.av0(J.amO(H.al())),J.avu(J.amO(H.al()))],H.T("o"))}) r($,"aGJ","asS",function(){return H.aAd()}) s($,"aGI","aiv",function(){return $.asS()}) s($,"aJm","Si",function(){return self.window.FinalizationRegistry!=null}) r($,"aHe","aiA",function(){return new H.a0I(5,H.b([],H.T("o")))}) s($,"aH3","p0",function(){var p=t.S return new H.Xq(P.aZ(p),P.aZ(p),H.ayQ(),H.b([],t.nG),H.b(["Roboto"],t.s),P.y(t.N,p))}) s($,"aIU","Sf",function(){return H.cH("Noto Sans SC",H.b([H.H(12288,12591),H.H(12800,13311),H.H(19968,40959),H.H(65072,65135),H.H(65280,65519)],t.Cz))}) s($,"aIV","Sg",function(){return H.cH("Noto Sans TC",H.b([H.H(12288,12351),H.H(12549,12585),H.H(19968,40959)],t.Cz))}) s($,"aIS","Sd",function(){return H.cH("Noto Sans HK",H.b([H.H(12288,12351),H.H(12549,12585),H.H(19968,40959)],t.Cz))}) s($,"aIT","Se",function(){return H.cH("Noto Sans JP",H.b([H.H(12288,12543),H.H(19968,40959),H.H(65280,65519)],t.Cz))}) s($,"aIy","atR",function(){return H.b([$.Sf(),$.Sg(),$.Sd(),$.Se()],t.Qg)}) s($,"aIR","au1",function(){var p=8204,o=2404,n=2405,m=8205,l=8377,k=9676,j=t.Cz return H.b([$.Sf(),$.Sg(),$.Sd(),$.Se(),H.cH("Noto Naskh Arabic UI",H.b([H.H(1536,1791),H.H(p,8206),H.H(8208,8209),H.H(8271,8271),H.H(11841,11841),H.H(64336,65023),H.H(65132,65276)],j)),H.cH("Noto Sans Armenian",H.b([H.H(1328,1424),H.H(64275,64279)],j)),H.cH("Noto Sans Bengali UI",H.b([H.H(o,n),H.H(2433,2555),H.H(p,m),H.H(l,l),H.H(k,k)],j)),H.cH("Noto Sans Myanmar UI",H.b([H.H(4096,4255),H.H(p,m),H.H(k,k)],j)),H.cH("Noto Sans Egyptian Hieroglyphs",H.b([H.H(77824,78894)],j)),H.cH("Noto Sans Ethiopic",H.b([H.H(4608,5017),H.H(11648,11742),H.H(43777,43822)],j)),H.cH("Noto Sans Georgian",H.b([H.H(1417,1417),H.H(4256,4351),H.H(11520,11567)],j)),H.cH("Noto Sans Gujarati UI",H.b([H.H(o,n),H.H(2688,2815),H.H(p,m),H.H(l,l),H.H(k,k),H.H(43056,43065)],j)),H.cH("Noto Sans Gurmukhi UI",H.b([H.H(o,n),H.H(2561,2677),H.H(p,m),H.H(l,l),H.H(k,k),H.H(9772,9772),H.H(43056,43065)],j)),H.cH("Noto Sans Hebrew",H.b([H.H(1424,1535),H.H(8362,8362),H.H(k,k),H.H(64285,64335)],j)),H.cH("Noto Sans Devanagari UI",H.b([H.H(2304,2431),H.H(7376,7414),H.H(7416,7417),H.H(p,m),H.H(8360,8360),H.H(l,l),H.H(k,k),H.H(43056,43065),H.H(43232,43259)],j)),H.cH("Noto Sans Kannada UI",H.b([H.H(o,n),H.H(3202,3314),H.H(p,m),H.H(l,l),H.H(k,k)],j)),H.cH("Noto Sans Khmer UI",H.b([H.H(6016,6143),H.H(p,p),H.H(k,k)],j)),H.cH("Noto Sans KR",H.b([H.H(12593,12686),H.H(12800,12828),H.H(12896,12923),H.H(44032,55215)],j)),H.cH("Noto Sans Lao UI",H.b([H.H(3713,3807),H.H(k,k)],j)),H.cH("Noto Sans Malayalam UI",H.b([H.H(775,775),H.H(803,803),H.H(o,n),H.H(3330,3455),H.H(p,m),H.H(l,l),H.H(k,k)],j)),H.cH("Noto Sans Sinhala",H.b([H.H(o,n),H.H(3458,3572),H.H(p,m),H.H(k,k)],j)),H.cH("Noto Sans Tamil UI",H.b([H.H(o,n),H.H(2946,3066),H.H(p,m),H.H(l,l),H.H(k,k)],j)),H.cH("Noto Sans Telugu UI",H.b([H.H(2385,2386),H.H(o,n),H.H(3072,3199),H.H(7386,7386),H.H(p,m),H.H(k,k)],j)),H.cH("Noto Sans Thai UI",H.b([H.H(3585,3675),H.H(p,m),H.H(k,k)],j)),H.cH("Noto Sans",H.b([H.H(0,255),H.H(305,305),H.H(338,339),H.H(699,700),H.H(710,710),H.H(730,730),H.H(732,732),H.H(8192,8303),H.H(8308,8308),H.H(8364,8364),H.H(8482,8482),H.H(8593,8593),H.H(8595,8595),H.H(8722,8722),H.H(8725,8725),H.H(65279,65279),H.H(65533,65533),H.H(1024,1119),H.H(1168,1169),H.H(1200,1201),H.H(8470,8470),H.H(1120,1327),H.H(7296,7304),H.H(8372,8372),H.H(11744,11775),H.H(42560,42655),H.H(65070,65071),H.H(880,1023),H.H(7936,8191),H.H(256,591),H.H(601,601),H.H(7680,7935),H.H(8224,8224),H.H(8352,8363),H.H(8365,8399),H.H(8467,8467),H.H(11360,11391),H.H(42784,43007),H.H(258,259),H.H(272,273),H.H(296,297),H.H(360,361),H.H(416,417),H.H(431,432),H.H(7840,7929),H.H(8363,8363)],j))],t.Qg)}) s($,"aJB","p3",function(){var p=t.V0 return new H.Fp(new H.a0s(),P.aZ(p),P.y(t.N,p))}) r($,"aJn","aul",function(){return"https://unpkg.com/canvaskit-wasm@0.25.1/bin/canvaskit.js"}) r($,"aHv","S9",function(){return new H.Jl(1024,new P.vD(H.T("vD>")),P.y(H.T("dG"),H.T("f0>")))}) r($,"aGG","asQ",function(){return new self.window.flutterCanvasKit.Paint()}) r($,"aGF","asP",function(){var p=new self.window.flutterCanvasKit.Paint() J.aiV(p,0) return p}) r($,"aJu","bD",function(){return H.ayo()}) r($,"aHl","at8",function(){return H.aq1(0,0,1)}) r($,"aIb","alV",function(){return H.GN(4)}) r($,"aIn","atP",function(){return H.aoQ(H.b([0,1,2,2,3,0],t._))}) r($,"aJg","aug",function(){return W.ait().Image.prototype.decode!=null}) r($,"aIM","atY",function(){return P.aj([12884902146,new H.agQ(),17179869442,new H.agR(),12884902149,new H.agS(),17179869445,new H.agT(),12884902157,new H.agU(),17179869453,new H.agV(),12884902153,new H.agW(),17179869449,new H.agX()],t.S,H.T("G(jD)"))}) r($,"aH1","bw",function(){var p=t.K p=new H.Ws(P.azM(C.nV,!1,"/",H.aji(),C.a3,!1,1),P.y(p,H.T("mX")),P.y(p,H.T("KC")),W.ait().matchMedia("(prefers-color-scheme: dark)")) p.Xv() return p}) s($,"aDt","atU",function(){return H.aE4()}) r($,"aJl","auk",function(){var p=$.ang return p==null?$.ang=H.axp():p}) r($,"aIY","au4",function(){return P.aj([C.lr,new H.ah7(),C.ls,new H.ah8(),C.lt,new H.ah9(),C.lu,new H.aha(),C.lv,new H.ahb(),C.lw,new H.ahc(),C.lx,new H.ahd(),C.ly,new H.ahe()],t.Zg,H.T("fF(cB)"))}) r($,"aH4","at1",function(){return P.c3("[a-z0-9\\s]+",!1)}) r($,"aH5","at2",function(){return P.c3("\\b\\d",!0)}) r($,"aJJ","am8",function(){return P.alw(W.ait(),"FontFace")}) r($,"aJK","aut",function(){if(P.alw(W.as7(),"fonts")){var p=W.as7().fonts p.toString p=P.alw(p,"clear")}else p=!1 return p}) s($,"aHw","atf",function(){return H.aAC()}) s($,"aJy","Sk",function(){return H.apX("00000008A0009!B000a!C000b000cD000d!E000e000vA000w!F000x!G000y!H000z!I0010!J0011!K0012!I0013!H0014!L0015!M0016!I0017!J0018!N0019!O001a!N001b!P001c001lQ001m001nN001o001qI001r!G001s002iI002j!L002k!J002l!M002m003eI003f!L003g!B003h!R003i!I003j003oA003p!D003q004fA004g!S004h!L004i!K004j004lJ004m004qI004r!H004s!I004t!B004u004vI004w!K004x!J004y004zI0050!T00510056I0057!H0058005aI005b!L005c00jrI00js!T00jt00jvI00jw!T00jx00keI00kf!T00kg00lbI00lc00niA00nj!S00nk00nvA00nw00o2S00o300ofA00og00otI00ou!N00ov00w2I00w300w9A00wa013cI013d!N013e!B013h013iI013j!J013l014tA014u!B014v!A014w!I014x014yA014z!I01500151A0152!G0153!A015c0162U0167016aU016b016wI016x016zK01700171N01720173I0174017eA017f!G017g!A017i017jG017k018qI018r019bA019c019lQ019m!K019n019oQ019p019rI019s!A019t01cjI01ck!G01cl!I01cm01csA01ct01cuI01cv01d0A01d101d2I01d301d4A01d5!I01d601d9A01da01dbI01dc01dlQ01dm01e8I01e9!A01ea01f3I01f401fuA01fx01idI01ie01ioA01ip!I01j401jdQ01je01kaI01kb01kjA01kk01knI01ko!N01kp!G01kq!I01kt!A01ku01kvJ01kw01lhI01li01llA01lm!I01ln01lvA01lw!I01lx01lzA01m0!I01m101m5A01m801ncI01nd01nfA01ni01qfI01qr01r5A01r6!I01r701s3A01s401tlI01tm01toA01tp!I01tq01u7A01u8!I01u901ufA01ug01upI01uq01urA01us01utB01uu01v3Q01v401vkI01vl01vnA01vp01x5I01x8!A01x9!I01xa01xgA01xj01xkA01xn01xpA01xq!I01xz!A01y401y9I01ya01ybA01ye01ynQ01yo01ypI01yq01yrK01ys01ywI01yx!K01yy!I01yz!J01z001z1I01z2!A01z501z7A01z9020pI020s!A020u020yA02130214A02170219A021d!A021l021qI021y0227Q02280229A022a022cI022d!A022e!I022p022rA022t0249I024c!A024d!I024e024lA024n024pA024r024tA024w025dI025e025fA025i025rQ025s!I025t!J0261!I02620267A0269026bA026d027tI027w!A027x!I027y0284A02870288A028b028dA028l028nA028s028xI028y028zA0292029bQ029c029jI029u!A029v02bdI02bi02bmA02bq02bsA02bu02bxA02c0!I02c7!A02cm02cvQ02cw02d4I02d5!J02d6!I02dc02dgA02dh02f1I02f202f8A02fa02fcA02fe02fhA02fp02fqA02fs02g1I02g202g3A02g602gfQ02gn!T02go02gwI02gx02gzA02h0!T02h102ihI02ik!A02il!I02im02isA02iu02iwA02iy02j1A02j902jaA02ji02jlI02jm02jnA02jq02jzQ02k102k2I02kg02kjA02kk02m2I02m302m4A02m5!I02m602mcA02me02mgA02mi02mlA02mm02muI02mv!A02mw02n5I02n602n7A02na02njQ02nk02nsI02nt!K02nu02nzI02o102o3A02o502pyI02q2!A02q702qcA02qe!A02qg02qnA02qu02r3Q02r602r7A02r802t6I02tb!J02tc02trI02ts02u1Q02u202u3B02v502x9I02xc02xlQ02xo02yoI02yp02ysT02yt!I02yu02yvT02yw!S02yx02yyT02yz!B02z0!S02z102z5G02z6!S02z7!I02z8!G02z902zbI02zc02zdA02ze02zjI02zk02ztQ02zu0303I0304!B0305!A0306!I0307!A0308!I0309!A030a!L030b!R030c!L030d!R030e030fA030g031oI031t0326A0327!B0328032cA032d!B032e032fA032g032kI032l032vA032x033wA033y033zB03400345I0346!A0347034fI034g034hT034i!B034j!T034k034oI034p034qS035s037jI037k037tQ037u037vB037w039rI039s03a1Q03a203cvI03cw03fjV03fk03hjW03hk03jzX03k003tmI03tp03trA03ts!I03tt!B03tu03y5I03y8!B03y904fzI04g0!B04g104gqI04gr!L04gs!R04gw04iyI04iz04j1B04j204k1I04k204k4A04kg04kxI04ky04l0A04l104l2B04lc04ltI04lu04lvA04m804moI04mq04mrA04n404pfI04pg04phB04pi!Y04pj!I04pk!B04pl!I04pm!B04pn!J04po04ppI04ps04q1Q04q804qpI04qq04qrG04qs04qtB04qu!T04qv!I04qw04qxG04qy!I04qz04r1A04r2!S04r404rdQ04rk04ucI04ud04ueA04uf04vcI04vd!A04ve04ymI04yo04yzA04z404zfA04zk!I04zo04zpG04zq04zzQ0500053dI053k053tQ053u055iI055j055nA055q058cI058f!A058g058pQ058w0595Q059c059pI059s05a8A05c005c4A05c505dfI05dg05dwA05dx05e3I05e805ehQ05ei05ejB05ek!I05el05eoB05ep05eyI05ez05f7A05f805fgI05fk05fmA05fn05ggI05gh05gtA05gu05gvI05gw05h5Q05h605idI05ie05irA05j005k3I05k405knA05kr05kvB05kw05l5Q05l905lbI05lc05llQ05lm05mlI05mm05mnB05mo05onI05ow05oyA05oz!I05p005pkA05pl05poI05pp!A05pq05pvI05pw!A05px05pyI05pz05q1A05q205vjI05vk05x5A05x705xbA05xc06bgI06bh!T06bi!I06bk06bqB06br!S06bs06buB06bv!Z06bw!A06bx!a06by06bzA06c0!B06c1!S06c206c3B06c4!b06c506c7I06c806c9H06ca!L06cb06cdH06ce!L06cf!H06cg06cjI06ck06cmc06cn!B06co06cpD06cq06cuA06cv!S06cw06d3K06d4!I06d506d6H06d7!I06d806d9Y06da06dfI06dg!N06dh!L06di!R06dj06dlY06dm06dxI06dy!B06dz!I06e006e3B06e4!I06e506e7B06e8!d06e906ecI06ee06enA06eo06f0I06f1!L06f2!R06f306fgI06fh!L06fi!R06fk06fwI06g006g6J06g7!K06g806glJ06gm!K06gn06gqJ06gr!K06gs06gtJ06gu!K06gv06hbJ06hc06i8A06io06iqI06ir!K06is06iwI06ix!K06iy06j9I06ja!J06jb06q9I06qa06qbJ06qc06weI06wf!c06wg06x3I06x4!L06x5!R06x6!L06x7!R06x806xlI06xm06xne06xo06y0I06y1!L06y2!R06y3073jI073k073ne073o07i7I07i807ibe07ic07irI07is07ite07iu07ivI07iw!e07ix!I07iy07j0e07j1!f07j207j3e07j407jsI07jt07jve07jw07l3I07l4!e07l507lqI07lr!e07ls07ngI07nh07nse07nt07nwI07nx!e07ny!I07nz07o1e07o2!I07o307o4e07o507o7I07o807o9e07oa07obI07oc!e07od07oeI07of07ohe07oi07opI07oq!e07or07owI07ox07p1e07p2!I07p307p4e07p5!f07p6!e07p707p8I07p907pge07ph07pjI07pk07ple07pm07ppf07pq07ruI07rv07s0H07s1!I07s207s3G07s4!e07s507s7I07s8!L07s9!R07sa!L07sb!R07sc!L07sd!R07se!L07sf!R07sg!L07sh!R07si!L07sj!R07sk!L07sl!R07sm07usI07ut!L07uu!R07uv07vpI07vq!L07vr!R07vs!L07vt!R07vu!L07vv!R07vw!L07vx!R07vy!L07vz!R07w00876I0877!L0878!R0879!L087a!R087b!L087c!R087d!L087e!R087f!L087g!R087h!L087i!R087j!L087k!R087l!L087m!R087n!L087o!R087p!L087q!R087r!L087s!R087t089jI089k!L089l!R089m!L089n!R089o08ajI08ak!L08al!R08am08viI08vj08vlA08vm08vnI08vt!G08vu08vwB08vx!I08vy!G08vz!B08w008z3I08z4!B08zj!A08zk0926I09280933A0934093hH093i093pB093q!I093r!B093s!L093t!B093u093vI093w093xH093y093zI09400941H0942!L0943!R0944!L0945!R0946!L0947!R0948!L0949!R094a094dB094e!G094f!I094g094hB094i!I094j094kB094l094pI094q094rb094s094uB094v!I094w094xB094y!L094z0956B0957!I0958!B0959!I095a095bB095c095eI096o097de097f099ve09a809g5e09gw09h7e09hc!B09hd09heR09hf09hge09hh!Y09hi09hje09hk!L09hl!R09hm!L09hn!R09ho!L09hp!R09hq!L09hr!R09hs!L09ht!R09hu09hve09hw!L09hx!R09hy!L09hz!R09i0!L09i1!R09i2!L09i3!R09i4!Y09i5!L09i609i7R09i809ihe09ii09inA09io09ise09it!A09iu09iye09iz09j0Y09j109j3e09j5!Y09j6!e09j7!Y09j8!e09j9!Y09ja!e09jb!Y09jc!e09jd!Y09je09k2e09k3!Y09k409kye09kz!Y09l0!e09l1!Y09l2!e09l3!Y09l409l9e09la!Y09lb09lge09lh09liY09ll09lmA09ln09lqY09lr!e09ls09ltY09lu!e09lv!Y09lw!e09lx!Y09ly!e09lz!Y09m0!e09m1!Y09m209mqe09mr!Y09ms09nme09nn!Y09no!e09np!Y09nq!e09nr!Y09ns09nxe09ny!Y09nz09o4e09o509o6Y09o709oae09ob09oeY09of!e09ol09pre09pt09see09sg09ure09v409vjY09vk09wee09wg09xje09xk09xrI09xs0fcve0fcw0fenI0feo0vmce0vmd!Y0vme0wi4e0wi80wjqe0wk00wl9I0wla0wlbB0wlc0wssI0wst!B0wsu!G0wsv!B0wsw0wtbI0wtc0wtlQ0wtm0wviI0wvj0wvmA0wvn!I0wvo0wvxA0wvy0wwtI0wwu0wwvA0www0wz3I0wz40wz5A0wz6!I0wz70wzbB0wzk0x6pI0x6q!A0x6r0x6tI0x6u!A0x6v0x6yI0x6z!A0x700x7mI0x7n0x7rA0x7s0x7vI0x7w!A0x800x87I0x88!K0x890x9vI0x9w0x9xT0x9y0x9zG0xa80xa9A0xaa0xbnI0xbo0xc5A0xce0xcfB0xcg0xcpQ0xcw0xddA0xde0xdnI0xdo!T0xdp0xdqI0xdr!A0xds0xe1Q0xe20xetI0xeu0xf1A0xf20xf3B0xf40xfqI0xfr0xg3A0xgf!I0xgg0xh8V0xhc0xhfA0xhg0xiqI0xir0xj4A0xj50xjaI0xjb0xjdB0xje0xjjI0xjk0xjtQ0xjy0xkfI0xkg0xkpQ0xkq0xm0I0xm10xmeA0xmo0xmqI0xmr!A0xms0xmzI0xn00xn1A0xn40xndQ0xng!I0xnh0xnjB0xnk0xreI0xrf0xrjA0xrk0xrlB0xrm0xroI0xrp0xrqA0xs10xyaI0xyb0xyiA0xyj!B0xyk0xylA0xyo0xyxQ0xz4!g0xz50xzvh0xzw!g0xzx0y0nh0y0o!g0y0p0y1fh0y1g!g0y1h0y27h0y28!g0y290y2zh0y30!g0y310y3rh0y3s!g0y3t0y4jh0y4k!g0y4l0y5bh0y5c!g0y5d0y63h0y64!g0y650y6vh0y6w!g0y6x0y7nh0y7o!g0y7p0y8fh0y8g!g0y8h0y97h0y98!g0y990y9zh0ya0!g0ya10yarh0yas!g0yat0ybjh0ybk!g0ybl0ycbh0ycc!g0ycd0yd3h0yd4!g0yd50ydvh0ydw!g0ydx0yenh0yeo!g0yep0yffh0yfg!g0yfh0yg7h0yg8!g0yg90ygzh0yh0!g0yh10yhrh0yhs!g0yht0yijh0yik!g0yil0yjbh0yjc!g0yjd0yk3h0yk4!g0yk50ykvh0ykw!g0ykx0ylnh0ylo!g0ylp0ymfh0ymg!g0ymh0yn7h0yn8!g0yn90ynzh0yo0!g0yo10yorh0yos!g0yot0ypjh0ypk!g0ypl0yqbh0yqc!g0yqd0yr3h0yr4!g0yr50yrvh0yrw!g0yrx0ysnh0yso!g0ysp0ytfh0ytg!g0yth0yu7h0yu8!g0yu90yuzh0yv0!g0yv10yvrh0yvs!g0yvt0ywjh0ywk!g0ywl0yxbh0yxc!g0yxd0yy3h0yy4!g0yy50yyvh0yyw!g0yyx0yznh0yzo!g0yzp0z0fh0z0g!g0z0h0z17h0z18!g0z190z1zh0z20!g0z210z2rh0z2s!g0z2t0z3jh0z3k!g0z3l0z4bh0z4c!g0z4d0z53h0z54!g0z550z5vh0z5w!g0z5x0z6nh0z6o!g0z6p0z7fh0z7g!g0z7h0z87h0z88!g0z890z8zh0z90!g0z910z9rh0z9s!g0z9t0zajh0zak!g0zal0zbbh0zbc!g0zbd0zc3h0zc4!g0zc50zcvh0zcw!g0zcx0zdnh0zdo!g0zdp0zefh0zeg!g0zeh0zf7h0zf8!g0zf90zfzh0zg0!g0zg10zgrh0zgs!g0zgt0zhjh0zhk!g0zhl0zibh0zic!g0zid0zj3h0zj4!g0zj50zjvh0zjw!g0zjx0zknh0zko!g0zkp0zlfh0zlg!g0zlh0zm7h0zm8!g0zm90zmzh0zn0!g0zn10znrh0zns!g0znt0zojh0zok!g0zol0zpbh0zpc!g0zpd0zq3h0zq4!g0zq50zqvh0zqw!g0zqx0zrnh0zro!g0zrp0zsfh0zsg!g0zsh0zt7h0zt8!g0zt90ztzh0zu0!g0zu10zurh0zus!g0zut0zvjh0zvk!g0zvl0zwbh0zwc!g0zwd0zx3h0zx4!g0zx50zxvh0zxw!g0zxx0zynh0zyo!g0zyp0zzfh0zzg!g0zzh1007h1008!g1009100zh1010!g1011101rh101s!g101t102jh102k!g102l103bh103c!g103d1043h1044!g1045104vh104w!g104x105nh105o!g105p106fh106g!g106h1077h1078!g1079107zh1080!g1081108rh108s!g108t109jh109k!g109l10abh10ac!g10ad10b3h10b4!g10b510bvh10bw!g10bx10cnh10co!g10cp10dfh10dg!g10dh10e7h10e8!g10e910ezh10f0!g10f110frh10fs!g10ft10gjh10gk!g10gl10hbh10hc!g10hd10i3h10i4!g10i510ivh10iw!g10ix10jnh10jo!g10jp10kfh10kg!g10kh10l7h10l8!g10l910lzh10m0!g10m110mrh10ms!g10mt10njh10nk!g10nl10obh10oc!g10od10p3h10p4!g10p510pvh10pw!g10px10qnh10qo!g10qp10rfh10rg!g10rh10s7h10s8!g10s910szh10t0!g10t110trh10ts!g10tt10ujh10uk!g10ul10vbh10vc!g10vd10w3h10w4!g10w510wvh10ww!g10wx10xnh10xo!g10xp10yfh10yg!g10yh10z7h10z8!g10z910zzh1100!g1101110rh110s!g110t111jh111k!g111l112bh112c!g112d1133h1134!g1135113vh113w!g113x114nh114o!g114p115fh115g!g115h1167h1168!g1169116zh1170!g1171117rh117s!g117t118jh118k!g118l119bh119c!g119d11a3h11a4!g11a511avh11aw!g11ax11bnh11bo!g11bp11cfh11cg!g11ch11d7h11d8!g11d911dzh11e0!g11e111erh11es!g11et11fjh11fk!g11fl11gbh11gc!g11gd11h3h11h4!g11h511hvh11hw!g11hx11inh11io!g11ip11jfh11jg!g11jh11k7h11k8!g11k911kzh11l0!g11l111lrh11ls!g11lt11mjh11mk!g11ml11nbh11nc!g11nd11o3h11o4!g11o511ovh11ow!g11ox11pnh11po!g11pp11qfh11qg!g11qh11r7h11r8!g11r911rzh11s0!g11s111srh11ss!g11st11tjh11tk!g11tl11ubh11uc!g11ud11v3h11v4!g11v511vvh11vw!g11vx11wnh11wo!g11wp11xfh11xg!g11xh11y7h11y8!g11y911yzh11z0!g11z111zrh11zs!g11zt120jh120k!g120l121bh121c!g121d1223h1224!g1225122vh122w!g122x123nh123o!g123p124fh124g!g124h1257h1258!g1259125zh1260!g1261126rh126s!g126t127jh127k!g127l128bh128c!g128d1293h1294!g1295129vh129w!g129x12anh12ao!g12ap12bfh12bg!g12bh12c7h12c8!g12c912czh12d0!g12d112drh12ds!g12dt12ejh12ek!g12el12fbh12fc!g12fd12g3h12g4!g12g512gvh12gw!g12gx12hnh12ho!g12hp12ifh12ig!g12ih12j7h12j8!g12j912jzh12k0!g12k112krh12ks!g12kt12ljh12lk!g12ll12mbh12mc!g12md12n3h12n4!g12n512nvh12nw!g12nx12onh12oo!g12op12pfh12pg!g12ph12q7h12q8!g12q912qzh12r0!g12r112rrh12rs!g12rt12sjh12sk!g12sl12tbh12tc!g12td12u3h12u4!g12u512uvh12uw!g12ux12vnh12vo!g12vp12wfh12wg!g12wh12x7h12x8!g12x912xzh12y0!g12y112yrh12ys!g12yt12zjh12zk!g12zl130bh130c!g130d1313h1314!g1315131vh131w!g131x132nh132o!g132p133fh133g!g133h1347h1348!g1349134zh1350!g1351135rh135s!g135t136jh136k!g136l137bh137c!g137d1383h1384!g1385138vh138w!g138x139nh139o!g139p13afh13ag!g13ah13b7h13b8!g13b913bzh13c0!g13c113crh13cs!g13ct13djh13dk!g13dl13ebh13ec!g13ed13f3h13f4!g13f513fvh13fw!g13fx13gnh13go!g13gp13hfh13hg!g13hh13i7h13i8!g13i913izh13j0!g13j113jrh13js!g13jt13kjh13kk!g13kl13lbh13lc!g13ld13m3h13m4!g13m513mvh13mw!g13mx13nnh13no!g13np13ofh13og!g13oh13p7h13p8!g13p913pzh13q0!g13q113qrh13qs!g13qt13rjh13rk!g13rl13sbh13sc!g13sd13t3h13t4!g13t513tvh13tw!g13tx13unh13uo!g13up13vfh13vg!g13vh13w7h13w8!g13w913wzh13x0!g13x113xrh13xs!g13xt13yjh13yk!g13yl13zbh13zc!g13zd1403h1404!g1405140vh140w!g140x141nh141o!g141p142fh142g!g142h1437h1438!g1439143zh1440!g1441144rh144s!g144t145jh145k!g145l146bh146c!g146d1473h1474!g1475147vh147w!g147x148nh148o!g148p149fh149g!g149h14a7h14a8!g14a914azh14b0!g14b114brh14bs!g14bt14cjh14ck!g14cl14dbh14dc!g14dd14e3h14e4!g14e514evh14ew!g14ex14fnh14fo!g14fp14gfh14gg!g14gh14h7h14h8!g14h914hzh14i0!g14i114irh14is!g14it14jjh14jk!g14jl14kbh14kc!g14kd14l3h14l4!g14l514lvh14lw!g14lx14mnh14mo!g14mp14nfh14ng!g14nh14o7h14o8!g14o914ozh14p0!g14p114prh14ps!g14pt14qjh14qk!g14ql14rbh14rc!g14rd14s3h14s4!g14s514svh14sw!g14sx14tnh14to!g14tp14ufh14ug!g14uh14v7h14v8!g14v914vzh14w0!g14w114wrh14ws!g14wt14xjh14xk!g14xl14ybh14yc!g14yd14z3h14z4!g14z514zvh14zw!g14zx150nh150o!g150p151fh151g!g151h1527h1528!g1529152zh1530!g1531153rh153s!g153t154jh154k!g154l155bh155c!g155d1563h1564!g1565156vh156w!g156x157nh157o!g157p158fh158g!g158h1597h1598!g1599159zh15a0!g15a115arh15as!g15at15bjh15bk!g15bl15cbh15cc!g15cd15d3h15d4!g15d515dvh15dw!g15dx15enh15eo!g15ep15ffh15fg!g15fh15g7h15g8!g15g915gzh15h0!g15h115hrh15hs!g15ht15ijh15ik!g15il15jbh15jc!g15jd15k3h15k4!g15k515kvh15kw!g15kx15lnh15lo!g15lp15mfh15mg!g15mh15n7h15n8!g15n915nzh15o0!g15o115orh15os!g15ot15pjh15pk!g15pl15qbh15qc!g15qd15r3h15r4!g15r515rvh15rw!g15rx15snh15so!g15sp15tfh15tg!g15th15u7h15u8!g15u915uzh15v0!g15v115vrh15vs!g15vt15wjh15wk!g15wl15xbh15xc!g15xd15y3h15y4!g15y515yvh15yw!g15yx15znh15zo!g15zp160fh160g!g160h1617h1618!g1619161zh1620!g1621162rh162s!g162t163jh163k!g163l164bh164c!g164d1653h1654!g1655165vh165w!g165x166nh166o!g166p167fh167g!g167h1687h1688!g1689168zh1690!g1691169rh169s!g169t16ajh16ak!g16al16bbh16bc!g16bd16c3h16c4!g16c516cvh16cw!g16cx16dnh16do!g16dp16efh16eg!g16eh16f7h16f8!g16f916fzh16g0!g16g116grh16gs!g16gt16hjh16hk!g16hl16ibh16ic!g16id16j3h16j4!g16j516jvh16jw!g16jx16knh16ko!g16kp16lfh16ls16meW16mj16nvX16o01d6nI1d6o1dkve1dkw1dljI1dlp!U1dlq!A1dlr1dm0U1dm1!I1dm21dmeU1dmg1dmkU1dmm!U1dmo1dmpU1dmr1dmsU1dmu1dn3U1dn41e0tI1e0u!R1e0v!L1e1c1e63I1e64!K1e65!I1e681e6nA1e6o!N1e6p1e6qR1e6r1e6sN1e6t1e6uG1e6v!L1e6w!R1e6x!c1e741e7jA1e7k1e7oe1e7p!L1e7q!R1e7r!L1e7s!R1e7t!L1e7u!R1e7v!L1e7w!R1e7x!L1e7y!R1e7z!L1e80!R1e81!L1e82!R1e83!L1e84!R1e851e86e1e87!L1e88!R1e891e8fe1e8g!R1e8h!e1e8i!R1e8k1e8lY1e8m1e8nG1e8o!e1e8p!L1e8q!R1e8r!L1e8s!R1e8t!L1e8u!R1e8v1e92e1e94!e1e95!J1e96!K1e97!e1e9c1ed8I1edb!d1edd!G1ede1edfe1edg!J1edh!K1edi1edje1edk!L1edl!R1edm1edne1edo!R1edp!e1edq!R1edr1ee1e1ee21ee3Y1ee41ee6e1ee7!G1ee81eeye1eez!L1ef0!e1ef1!R1ef21efue1efv!L1efw!e1efx!R1efy!e1efz!L1eg01eg1R1eg2!L1eg31eg4R1eg5!Y1eg6!e1eg71eggY1egh1ehpe1ehq1ehrY1ehs1eime1eiq1eive1eiy1ej3e1ej61ejbe1eje1ejge1ejk!K1ejl!J1ejm1ejoe1ejp1ejqJ1ejs1ejyI1ek91ekbA1ekc!i1ekd1ereI1erk1ermB1err1eykI1eyl!A1f281f4gI1f4w!A1f4x1f91I1f921f96A1f9c1fa5I1fa7!B1fa81fbjI1fbk!B1fbl1fh9I1fhc1fhlQ1fhs1g7pI1g7r!B1g7s1gd7I1gdb!B1gdc1gjkI1gjl1gjnA1gjp1gjqA1gjw1gjzA1gk01gl1I1gl41gl6A1glb!A1glc1glkI1gls1glzB1gm01gpwI1gpx1gpyA1gq31gq7I1gq81gqdB1gqe!c1gqo1gs5I1gs91gsfB1gsg1h5vI1h5w1h5zA1h681h6hQ1heo1hgpI1hgr1hgsA1hgt!B1hgw1hl1I1hl21hlcA1hld1hpyI1hq81hqaA1hqb1hrrI1hrs1hs6A1hs71hs8B1hs91ht1I1ht21htbQ1htr1htuA1htv1hv3I1hv41hveA1hvf1hvhI1hvi1hvlB1hvx1hwoI1hww1hx5Q1hxc1hxeA1hxf1hyeI1hyf1hysA1hyu1hz3Q1hz41hz7B1hz8!I1hz91hzaA1hzb1i0iI1i0j!A1i0k!I1i0l!T1i0m!I1i0w1i0yA1i0z1i2aI1i2b1i2oA1i2p1i2sI1i2t1i2uB1i2v!I1i2w!B1i2x1i30A1i31!I1i321i33A1i341i3dQ1i3e!I1i3f!T1i3g!I1i3h1i3jB1i3l1i5nI1i5o1i5zA1i601i61B1i62!I1i631i64B1i65!I1i66!A1i801i94I1i95!B1i9c1iamI1ian1iayA1ib41ibdQ1ibk1ibnA1ibp1id5I1id71id8A1id9!I1ida1idgA1idj1idkA1idn1idpA1ids!I1idz!A1ie51ie9I1iea1iebA1iee1iekA1ieo1iesA1iio1ik4I1ik51ikmA1ikn1ikqI1ikr1ikuB1ikv!I1ikw1il5Q1il61il7B1il9!I1ila!A1ilb1injI1ink1io3A1io41io7I1iog1iopQ1itc1iumI1iun1iutA1iuw1iv4A1iv5!T1iv61iv7B1iv81iv9G1iva1ivcI1ivd1ivrB1ivs1ivvI1ivw1ivxA1iww1iy7I1iy81iyoA1iyp1iyqB1iyr1iysI1iz41izdQ1izk1izwT1j0g1j1mI1j1n1j1zA1j20!I1j281j2hQ1j401j57I1j5c1j5lQ1j5m1j5nI1j5o1j5qB1j5r1jcbI1jcc1jcqA1jcr1jhbI1jhc1jhlQ1jhm1jjjI1jjk1jjpA1jjr1jjsA1jjv1jjyA1jjz!I1jk0!A1jk1!I1jk21jk3A1jk41jk6B1jkg1jkpQ1jmo1jo0I1jo11jo7A1joa1jogA1joh!I1joi!T1joj!I1jok!A1jpc!I1jpd1jpmA1jpn1jqqI1jqr1jqxA1jqy!I1jqz1jr2A1jr3!T1jr4!I1jr51jr8B1jr9!T1jra!I1jrb!A1jrk!I1jrl1jrvA1jrw1jt5I1jt61jtlA1jtm1jtoB1jtp!I1jtq1jtsT1jtt1jtuB1juo1k4uI1k4v1k52A1k541k5bA1k5c!I1k5d1k5hB1k5s1k61Q1k621k6kI1k6o!T1k6p!G1k6q1k7jI1k7m1k87A1k891k8mA1kao1kc0I1kc11kc6A1kca!A1kcc1kcdA1kcf1kclA1kcm!I1kcn!A1kcw1kd5Q1kdc1kehI1kei1kemA1keo1kepA1ker1kevA1kew!I1kf41kfdQ1ko01koiI1koj1komA1kon1kv0I1kv11kv4K1kv51kvlI1kvz!B1kw01lriI1lrk1lroB1ls01oifI1oig1oiiL1oij1oilR1oim1ojlI1ojm!R1ojn1ojpI1ojq!L1ojr!R1ojs!L1ojt!R1oju1oqgI1oqh!L1oqi1oqjR1oqk1oviI1ovk1ovqS1ovr!L1ovs!R1s001sctI1scu!L1scv!R1scw1zkuI1zkw1zl5Q1zla1zlbB1zo01zotI1zow1zp0A1zp1!B1zpc1zqnI1zqo1zquA1zqv1zqxB1zqy1zr7I1zr8!B1zr9!I1zrk1zrtQ1zrv20euI20ev20ewB20ex20juI20jz!A20k0!I20k120ljA20lr20luA20lv20m7I20o020o3Y20o4!S20og20ohA20ow25fbe25fk260ve260w26dxI26f426fce2dc02djye2dlc2dleY2dlw2dlzY2dm82dx7e2fpc2ftoI2ftp2ftqA2ftr!B2fts2ftvA2jnk2jxgI2jxh2jxlA2jxm2jxoI2jxp2jyaA2jyb2jycI2jyd2jyjA2jyk2jzdI2jze2jzhA2jzi2k3lI2k3m2k3oA2k3p2l6zI2l722l8fQ2l8g2lmnI2lmo2lo6A2lo72loaI2lob2lpoA2lpp2lpwI2lpx!A2lpy2lqbI2lqc!A2lqd2lqeI2lqf2lqiB2lqj!I2lqz2lr3A2lr52lrjA2mtc2mtiA2mtk2mu0A2mu32mu9A2mub2mucA2mue2muiA2n0g2n1oI2n1s2n1yA2n1z2n25I2n282n2hQ2n2m2ne3I2ne42ne7A2ne82nehQ2nen!J2oe82ojzI2ok02ok6A2olc2on7I2on82oneA2onf!I2onk2ontQ2ony2onzL2p9t2pbfI2pbg!K2pbh2pbjI2pbk!K2pbl2prlI2pz42q67e2q682q6kI2q6l2q6ne2q6o2q98I2q992q9be2q9c2qb0I2qb12qcle2qcm2qdbj2qdc2qo4e2qo5!f2qo62qore2qos2qotI2qou2qpge2qph2qpiI2qpj2qpne2qpo!I2qpp2qpte2qpu2qpwf2qpx2qpye2qpz!f2qq02qq1e2qq22qq4f2qq52qree2qrf2qrjk2qrk2qtde2qte2qtff2qtg2qthe2qti2qtsf2qtt2qude2que2quwf2qux2quze2qv0!f2qv12qv4e2qv52qv7f2qv8!e2qv92qvbf2qvc2qvie2qvj!f2qvk!e2qvl!f2qvm2qvze2qw0!I2qw1!e2qw2!I2qw3!e2qw4!I2qw52qw9e2qwa!f2qwb2qwee2qwf!I2qwg!e2qwh2qwiI2qwj2qyne2qyo2qyuI2qyv2qzae2qzb2qzoI2qzp2r01e2r022r0pI2r0q2r1ve2r1w2r1xf2r1y2r21e2r22!f2r232r2ne2r2o!f2r2p2r2se2r2t2r2uf2r2v2r4je2r4k2r4rI2r4s2r5fe2r5g2r5lI2r5m2r7oe2r7p2r7rf2r7s2r7ue2r7v2r7zf2r802r91I2r922r94H2r952r97Y2r982r9bI2r9c2raae2rab!f2rac2rare2ras2rauf2rav2rb3e2rb4!f2rb52rbfe2rbg!f2rbh2rcve2rcw2rg3I2rg42rgfe2rgg2risI2rit2rjze2rk02rkbI2rkc2rkfe2rkg2rlzI2rm02rm7e2rm82rmhI2rmi2rmne2rmo2rnrI2rns2rnze2ro02rotI2rou2rr3e2rr42rrfI2rrg!f2rrh2rrie2rrj!f2rrk2rrre2rrs2rrzf2rs02rs5e2rs6!f2rs72rsfe2rsg2rspf2rsq2rsre2rss2rsuf2rsv2ruee2ruf!f2rug2rw4e2rw52rw6f2rw7!e2rw82rw9f2rwa!e2rwb!f2rwc2rwse2rwt2rwvf2rww!e2rwx2rx9f2rxa2ry7e2ry82s0jI2s0k2s5be2s5c2sayI2sc02sc9Q2scg2t4te2t4w47p9e47pc5m9pejny9!Ajnz4jo1rAjo5cjobzAl2ionvnhI",937,C.tH,C.b2,H.T("bl"))}) r($,"aGZ","aix",function(){return new P.z()}) s($,"aJQ","CQ",function(){return H.apX("000a!E000b000cF000d!D000w!R000y!A0013!B0018!M001a!N001c001lO001m!L001n!M001t002iK002n!P002p003eK003p!F004q!K004t!I0051!K0053!L0056!K005c005yK0060006uK006w00k7K00ke00lbK00lc00ofG00og00okK00om00onK00oq00otK00ou!M00ov!K00p2!K00p3!L00p400p6K00p8!K00pa00ptK00pv00s5K00s700w1K00w300w9G00wa010vK010x011yK01210124K0126!K0127!L0128013cK013d!M013e!K013l014tG014v!G014x014yG01500151G0153!G015c0162C0167016aC016b!K016c!L016o016tI01700171M0174017eG017g!I017k018qK018r019bG019c019lO019n!O019o!M019q019rK019s!G019t01cjK01cl!K01cm01csG01ct!I01cv01d0G01d101d2K01d301d4G01d601d9G01da01dbK01dc01dlO01dm01doK01dr!K01e7!I01e8!K01e9!G01ea01f3K01f401fuG01fx01idK01ie01ioG01ip!K01j401jdO01je01kaK01kb01kjG01kk01klK01ko!M01kq!K01kt!G01kw01lhK01li01llG01lm!K01ln01lvG01lw!K01lx01lzG01m0!K01m101m5G01mo01ncK01nd01nfG01nk01nuK01pc01pwK01py01qfK01qr01r5G01r6!I01r701s3G01s401tlK01tm01toG01tp!K01tq01u7G01u8!K01u901ufG01ug01upK01uq01urG01uu01v3O01v501vkK01vl01vnG01vp01vwK01vz01w0K01w301woK01wq01wwK01wy!K01x201x5K01x8!G01x9!K01xa01xgG01xj01xkG01xn01xpG01xq!K01xz!G01y401y5K01y701y9K01ya01ybG01ye01ynO01yo01ypK01z0!K01z2!G01z501z7G01z901zeK01zj01zkK01zn0208K020a020gK020i020jK020l020mK020o020pK020s!G020u020yG02130214G02170219G021d!G021l021oK021q!K021y0227O02280229G022a022cK022d!G022p022rG022t0231K02330235K0237023sK023u0240K02420243K02450249K024c!G024d!K024e024lG024n024pG024r024tG024w!K025c025dK025e025fG025i025rO0261!K02620267G0269026bG026d026kK026n026oK026r027cK027e027kK027m027nK027p027tK027w!G027x!K027y0284G02870288G028b028dG028l028nG028s028tK028v028xK028y028zG0292029bO029d!K029u!G029v!K029x02a2K02a602a8K02aa02adK02ah02aiK02ak!K02am02anK02ar02asK02aw02ayK02b202bdK02bi02bmG02bq02bsG02bu02bxG02c0!K02c7!G02cm02cvO02dc02dgG02dh02doK02dq02dsK02du02egK02ei02exK02f1!K02f202f8G02fa02fcG02fe02fhG02fp02fqG02fs02fuK02g002g1K02g202g3G02g602gfO02gw!K02gx02gzG02h102h8K02ha02hcK02he02i0K02i202ibK02id02ihK02ik!G02il!K02im02isG02iu02iwG02iy02j1G02j902jaG02ji!K02jk02jlK02jm02jnG02jq02jzO02k102k2K02kg02kjG02kk02ksK02ku02kwK02ky02m2K02m302m4G02m5!K02m602mcG02me02mgG02mi02mlG02mm!K02ms02muK02mv!G02n302n5K02n602n7G02na02njO02nu02nzK02o102o3G02o502omK02oq02pdK02pf02pnK02pp!K02ps02pyK02q2!G02q702qcG02qe!G02qg02qnG02qu02r3O02r602r7G02sx!G02t002t6G02tj02tqG02ts02u1O02wh!G02wk02wsG02x402x9G02xc02xlO02yo!K02zc02zdG02zk02ztO0305!G0307!G0309!G030e030fG030g030nK030p031oK031t032cG032e032fG032g032kK032l032vG032x033wG0346!G036z037iG037k037tO03860389G038e038gG038i038kG038n038tG038x0390G039e039pG039r!G039s03a1O03a203a5G03a803b9K03bb!K03bh!K03bk03cqK03cs03m0K03m203m5K03m803meK03mg!K03mi03mlK03mo03nsK03nu03nxK03o003owK03oy03p1K03p403paK03pc!K03pe03phK03pk03pyK03q003rkK03rm03rpK03rs03tmK03tp03trG03uo03v3K03vk03xxK03y003y5K03y904fgK04fj04fzK04g0!R04g104gqK04gw04iyK04j204jcK04jk04jwK04jy04k1K04k204k4G04kg04kxK04ky04l0G04lc04ltK04lu04lvG04m804mkK04mm04moK04mq04mrG04ok04pfG04pp!G04ps04q1O04qz04r1G04r2!I04r404rdO04rk04u0K04u804ucK04ud04ueG04uf04vcK04vd!G04ve!K04vk04xhK04xs04ymK04yo04yzG04z404zfG04zq04zzO053k053tO054w055iK055j055nG0579057iG057k058cG058f!G058g058pO058w0595O059s05a8G05c005c4G05c505dfK05dg05dwG05dx05e3K05e805ehO05ez05f7G05fk05fmG05fn05ggK05gh05gtG05gu05gvK05gw05h5O05h605idK05ie05irG05j405k3K05k405knG05kw05l5O05l905lbK05lc05llO05lm05mlK05mo05mwK05n405oaK05od05ofK05ow05oyG05p005pkG05pl05poK05pp!G05pq05pvK05pw!G05px05pyK05pz05q1G05q2!K05q805vjK05vk05x5G05x705xbG05xc0651K06540659K065c066dK066g066lK066o066vK066x!K066z!K0671!K0673067xK0680069gK069i069oK069q!K069u069wK069y06a4K06a806abK06ae06ajK06ao06b0K06b606b8K06ba06bgK06bk06bqR06bs06buR06bw!G06bx!Q06by06bzI06c806c9N06ck!N06cn!L06co06cpF06cq06cuI06cv!P06db06dcP06dg!M06dw!P06e7!R06e806ecI06ee06enI06ep!K06f3!K06fk06fwK06hc06i8G06iq!K06iv!K06iy06j7K06j9!K06jd06jhK06jo!K06jq!K06js!K06ju06jxK06jz06k9K06kc06kfK06kl06kpK06ku!K06lc06mgK079207ahK08ow08q6K08q808riK08rk08v8K08vf08viK08vj08vlG08vm08vnK08w008x1K08x3!K08x9!K08xc08yvK08z3!K08zj!G08zk0906K090g090mK090o090uK090w0912K0914091aK091c091iK091k091qK091s091yK09200926K09280933G094f!K09hc!R09hh!K09ii09inG09ip09itJ09iz09j0K09ll09lmG09ln09loJ09ls09oaJ09oc09ofJ09ol09prK09pt09seK09sw09trK09v409vjJ0a1c0a2mJ0a2o0a53J0vls0wi4K0wk00wl9K0wlc0wssK0wsw0wtbK0wtc0wtlO0wtm0wtnK0wu80wviK0wvj0wvmG0wvo0wvxG0wvz0wwtK0wwu0wwvG0www0wz3K0wz40wz5G0wzs0x4vK0x4y0x56K0x6d0x6pK0x6q!G0x6r0x6tK0x6u!G0x6v0x6yK0x6z!G0x700x7mK0x7n0x7rG0x7w!G0x8g0x9vK0xa80xa9G0xaa0xbnK0xbo0xc5G0xcg0xcpO0xcw0xddG0xde0xdjK0xdn!K0xdp0xdqK0xdr!G0xds0xe1O0xe20xetK0xeu0xf1G0xf40xfqK0xfr0xg3G0xgg0xh8K0xhc0xhfG0xhg0xiqK0xir0xj4G0xjj!K0xjk0xjtO0xk5!G0xkg0xkpO0xkw0xm0K0xm10xmeG0xmo0xmqK0xmr!G0xms0xmzK0xn00xn1G0xn40xndO0xob0xodG0xps!G0xpu0xpwG0xpz0xq0G0xq60xq7G0xq9!G0xr40xreK0xrf0xrjG0xrm0xroK0xrp0xrqG0xs10xs6K0xs90xseK0xsh0xsmK0xsw0xt2K0xt40xtaK0xtc0xuxK0xv40xyaK0xyb0xyiG0xyk0xylG0xyo0xyxO0xz416lfK16ls16meK16mj16nvK1dkw1dl2K1dlf1dljK1dlp!C1dlq!G1dlr1dm0C1dm21dmeC1dmg1dmkC1dmm!C1dmo1dmpC1dmr1dmsC1dmu1dn3C1dn41dptK1dqr1e0tK1e1c1e33K1e361e4nK1e5s1e63K1e681e6nG1e6o!M1e6r!L1e6s!M1e741e7jG1e7n1e7oP1e8d1e8fP1e8g!M1e8i!N1e8k!M1e8l!L1e9c1e9gK1e9i1ed8K1edb!I1edj!N1edo!M1edq!N1eds1ee1O1ee2!L1ee3!M1ee91eeyK1ef3!P1ef51efuK1eg61ehpJ1ehq1ehrG1ehs1eimK1eiq1eivK1eiy1ej3K1ej61ejbK1eje1ejgK1ek91ekbI1ekg1ekrK1ekt1eliK1elk1em2K1em41em5K1em71emlK1emo1en1K1eo01ereK1etc1eusK1eyl!G1f281f30K1f341f4gK1f4w!G1f5s1f6nK1f711f7uK1f801f91K1f921f96G1f9c1fa5K1fa81fb7K1fbc1fbjK1fbl1fbpK1fcw1fh9K1fhc1fhlO1fhs1firK1fiw1fjvK1fk01fl3K1flc1fmrK1fr41fzqK1g001g0lK1g0w1g13K1g5c1g5hK1g5k!K1g5m1g6tK1g6v1g6wK1g70!K1g731g7pK1g801g8mK1g8w1g9qK1gbk1gc2K1gc41gc5K1gcg1gd1K1gdc1ge1K1gg01ghjK1ghq1ghrK1gjk!K1gjl1gjnG1gjp1gjqG1gjw1gjzG1gk01gk3K1gk51gk7K1gk91gl1K1gl41gl6G1glb!G1gm81gn0K1gn41gnwK1gow1gp3K1gp51gpwK1gpx1gpyG1gqo1gs5K1gsg1gt1K1gtc1gtuK1gu81gupK1gxs1gzsK1h1c1h2qK1h341h4iK1h4w1h5vK1h5w1h5zG1h681h6hO1hfk1hgpK1hgr1hgsG1hgw1hgxK1hj41hjwK1hk7!K1hkg1hl1K1hl21hlcG1ho01hokK1hpc1hpyK1hq81hqaG1hqb1hrrK1hrs1hs6G1ht21htbO1htr1htuG1htv1hv3K1hv41hveG1hvh!I1hvx!I1hw01hwoK1hww1hx5O1hxc1hxeG1hxf1hyeK1hyf1hysG1hyu1hz3O1hz8!K1hz91hzaG1hzb!K1hzk1i0iK1i0j!G1i0m!K1i0w1i0yG1i0z1i2aK1i2b1i2oG1i2p1i2sK1i2x1i30G1i321i33G1i341i3dO1i3e!K1i3g!K1i4g1i4xK1i4z1i5nK1i5o1i5zG1i66!G1i801i86K1i88!K1i8a1i8dK1i8f1i8tK1i8v1i94K1i9c1iamK1ian1iayG1ib41ibdO1ibk1ibnG1ibp1ibwK1ibz1ic0K1ic31icoK1icq1icwK1icy1iczK1id11id5K1id71id8G1id9!K1ida1idgG1idj1idkG1idn1idpG1ids!K1idz!G1ie51ie9K1iea1iebG1iee1iekG1ieo1iesG1iio1ik4K1ik51ikmG1ikn1ikqK1ikw1il5O1ila!G1ilb1ildK1im81injK1ink1io3G1io41io5K1io7!K1iog1iopO1itc1iumK1iun1iutG1iuw1iv4G1ivs1ivvK1ivw1ivxG1iww1iy7K1iy81iyoG1iys!K1iz41izdO1j0g1j1mK1j1n1j1zG1j20!K1j281j2hO1j4t1j57G1j5c1j5lO1jb41jcbK1jcc1jcqG1jfk1jhbK1jhc1jhlO1ji71jieK1jih!K1jik1jirK1jit1jiuK1jiw1jjjK1jjk1jjpG1jjr1jjsG1jjv1jjyG1jjz!K1jk0!G1jk1!K1jk21jk3G1jkg1jkpO1jmo1jmvK1jmy1jo0K1jo11jo7G1joa1jogG1joh!K1joj!K1jok!G1jpc!K1jpd1jpmG1jpn1jqqK1jqr1jqxG1jqy!K1jqz1jr2G1jrb!G1jrk!K1jrl1jrvG1jrw1jt5K1jt61jtlG1jtp!K1juo1jw8K1k3k1k3sK1k3u1k4uK1k4v1k52G1k541k5bG1k5c!K1k5s1k61O1k6q1k7jK1k7m1k87G1k891k8mG1kao1kauK1kaw1kaxK1kaz1kc0K1kc11kc6G1kca!G1kcc1kcdG1kcf1kclG1kcm!K1kcn!G1kcw1kd5O1kdc1kdhK1kdj1kdkK1kdm1kehK1kei1kemG1keo1kepG1ker1kevG1kew!K1kf41kfdO1ko01koiK1koj1komG1kts!K1kw01lllK1log1lriK1ls01lxfK1o1s1oviK1ovk1ovsI1s001sg6K1z401zjsK1zk01zkuK1zkw1zl5O1zo01zotK1zow1zp0G1zpc1zqnK1zqo1zquG1zr41zr7K1zrk1zrtO1zs31zsnK1zst1ztbK20cg20e7K20hs20juK20jz!G20k0!K20k120ljG20lr20luG20lv20m7K20o020o1K20o3!K20o4!G20og20ohG2dc0!J2dlw2dlzJ2fpc2fsaK2fsg2fssK2fsw2ft4K2ftc2ftlK2ftp2ftqG2fts2ftvI2jxh2jxlG2jxp2jxuG2jxv2jy2I2jy32jyaG2jyd2jyjG2jze2jzhG2k3m2k3oG2kg02kicK2kie2kkcK2kke2kkfK2kki!K2kkl2kkmK2kkp2kksK2kku2kl5K2kl7!K2kl92klfK2klh2kn9K2knb2kneK2knh2knoK2knq2knwK2kny2kopK2kor2kouK2kow2kp0K2kp2!K2kp62kpcK2kpe2kytK2kyw2kzkK2kzm2l0aK2l0c2l16K2l182l1wK2l1y2l2sK2l2u2l3iK2l3k2l4eK2l4g2l54K2l562l60K2l622l6qK2l6s2l6zK2l722l8fO2lmo2lo6G2lob2lpoG2lpx!G2lqc!G2lqz2lr3G2lr52lrjG2mtc2mtiG2mtk2mu0G2mu32mu9G2mub2mucG2mue2muiG2n0g2n1oK2n1s2n1yG2n1z2n25K2n282n2hO2n2m!K2ncw2ne3K2ne42ne7G2ne82nehO2oe82ojoK2ok02ok6G2olc2on7K2on82oneG2onf!K2onk2ontO2pkw2pkzK2pl12plrK2plt2pluK2plw!K2plz!K2pm12pmaK2pmc2pmfK2pmh!K2pmj!K2pmq!K2pmv!K2pmx!K2pmz!K2pn12pn3K2pn52pn6K2pn8!K2pnb!K2pnd!K2pnf!K2pnh!K2pnj!K2pnl2pnmK2pno!K2pnr2pnuK2pnw2po2K2po42po7K2po92pocK2poe!K2pog2popK2por2pp7K2ppd2ppfK2pph2pplK2ppn2pq3K2q7k2q89K2q8g2q95K2q9c2qa1K2qcm2qdbH2qrf2qrjG2sc02sc9Ojny9!Ijnz4jo1rGjo5cjobzG",231,C.td,C.mw,H.T("cR"))}) r($,"aGD","asO",function(){var p=t.N return new H.Tp(P.aj(["birthday","bday","birthdayDay","bday-day","birthdayMonth","bday-month","birthdayYear","bday-year","countryCode","country","countryName","country-name","creditCardExpirationDate","cc-exp","creditCardExpirationMonth","cc-exp-month","creditCardExpirationYear","cc-exp-year","creditCardFamilyName","cc-family-name","creditCardGivenName","cc-given-name","creditCardMiddleName","cc-additional-name","creditCardName","cc-name","creditCardNumber","cc-number","creditCardSecurityCode","cc-csc","creditCardType","cc-type","email","email","familyName","family-name","fullStreetAddress","street-address","gender","sex","givenName","given-name","impp","impp","jobTitle","organization-title","language","language","middleName","middleName","name","name","namePrefix","honorific-prefix","nameSuffix","honorific-suffix","newPassword","new-password","nickname","nickname","oneTimeCode","one-time-code","organizationName","organization","password","current-password","photo","photo","postalCode","postal-code","streetAddressLevel1","address-level1","streetAddressLevel2","address-level2","streetAddressLevel3","address-level3","streetAddressLevel4","address-level4","streetAddressLine1","address-line1","streetAddressLine2","address-line2","streetAddressLine3","address-line3","telephoneNumber","tel","telephoneNumberAreaCode","tel-area-code","telephoneNumberCountryCode","tel-country-code","telephoneNumberExtension","tel-extension","telephoneNumberLocal","tel-local","telephoneNumberLocalPrefix","tel-local-prefix","telephoneNumberLocalSuffix","tel-local-suffix","telephoneNumberNational","tel-national","transactionAmount","transaction-amount","transactionCurrency","transaction-currency","url","url","username","username"],p,p))}) r($,"aJL","um",function(){var p=new H.YS() if(H.RX()===C.W&&H.ass()===C.bG)p.sow(new H.YV(p,H.b([],t.Iu))) else if(H.RX()===C.W)p.sow(new H.a3L(p,H.b([],t.Iu))) else if((H.RX()===C.bv||H.RX()===C.bN)&&H.ass()===C.ev)p.sow(new H.SG(p,H.b([],t.Iu))) else if(H.RX()===C.bw)p.sow(new H.WX(p,H.b([],t.Iu))) else p.sow(H.ayU(p)) p.a=new H.a6Y(p) return p}) r($,"aJw","CP",function(){return H.azb(t.N,H.T("jF"))}) r($,"aJj","aui",function(){return H.GN(4)}) r($,"aJh","am5",function(){return H.GN(16)}) r($,"aJi","auh",function(){return H.azr($.am5())}) r($,"aIG","alZ",function(){return H.aFJ()?"-apple-system, BlinkMacSystemFont":"Arial"}) r($,"aIH","atT",function(){return new H.G9().c8(P.aj(["type","fontsChange"],t.N,t.z))}) s($,"aJF","ck",function(){W.ait() return C.o2.gaeu()}) r($,"aJP","b4",function(){return H.ayC(0,$.bw())}) r($,"aGP","S8",function(){return H.asg("_$dart_dartClosure")}) r($,"aJC","aiF",function(){return C.F.lM(new H.aid(),t.v7)}) r($,"aHJ","atk",function(){return H.kh(H.a7x({ toString:function(){return"$receiver$"}}))}) r($,"aHK","atl",function(){return H.kh(H.a7x({$method$:null, toString:function(){return"$receiver$"}}))}) r($,"aHL","atm",function(){return H.kh(H.a7x(null))}) r($,"aHM","atn",function(){return H.kh(function(){var $argumentsExpr$="$arguments$" try{null.$method$($argumentsExpr$)}catch(p){return p.message}}())}) r($,"aHP","atq",function(){return H.kh(H.a7x(void 0))}) r($,"aHQ","atr",function(){return H.kh(function(){var $argumentsExpr$="$arguments$" try{(void 0).$method$($argumentsExpr$)}catch(p){return p.message}}())}) r($,"aHO","atp",function(){return H.kh(H.apV(null))}) r($,"aHN","ato",function(){return H.kh(function(){try{null.$method$}catch(p){return p.message}}())}) r($,"aHS","att",function(){return H.kh(H.apV(void 0))}) r($,"aHR","ats",function(){return H.kh(function(){try{(void 0).$method$}catch(p){return p.message}}())}) r($,"aHY","alR",function(){return P.aBM()}) r($,"aH6","mj",function(){return H.T("a1").a($.aiF())}) r($,"aIe","atJ",function(){var p=t.z return P.fr(null,null,null,p,p)}) r($,"aHT","atu",function(){return new P.a7M().$0()}) r($,"aHU","atv",function(){return new P.a7L().$0()}) r($,"aHZ","atz",function(){return H.azC(H.mb(H.b([-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,-2,-2,-2,-2,-2,62,-2,62,-2,63,52,53,54,55,56,57,58,59,60,61,-2,-2,-2,-1,-2,-2,-2,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-2,-2,-2,-2,63,-2,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-2,-2,-2,-2,-2],t._)))}) r($,"aIl","alW",function(){return typeof process!="undefined"&&Object.prototype.toString.call(process)=="[object process]"&&process.platform=="win32"}) r($,"aIm","atO",function(){return P.c3("^[\\-\\.0-9A-Z_a-z~]*$",!0)}) s($,"aIJ","atV",function(){return new Error().stack!=void 0}) r($,"aHz","aiC",function(){H.aAa() return $.a1C}) r($,"aIZ","au5",function(){return P.aDd()}) r($,"aGM","asT",function(){return{}}) r($,"aI9","atI",function(){return P.iM(["A","ABBR","ACRONYM","ADDRESS","AREA","ARTICLE","ASIDE","AUDIO","B","BDI","BDO","BIG","BLOCKQUOTE","BR","BUTTON","CANVAS","CAPTION","CENTER","CITE","CODE","COL","COLGROUP","COMMAND","DATA","DATALIST","DD","DEL","DETAILS","DFN","DIR","DIV","DL","DT","EM","FIELDSET","FIGCAPTION","FIGURE","FONT","FOOTER","FORM","H1","H2","H3","H4","H5","H6","HEADER","HGROUP","HR","I","IFRAME","IMG","INPUT","INS","KBD","LABEL","LEGEND","LI","MAP","MARK","MENU","METER","NAV","NOBR","OL","OPTGROUP","OPTION","OUTPUT","P","PRE","PROGRESS","Q","S","SAMP","SECTION","SELECT","SMALL","SOURCE","SPAN","STRIKE","STRONG","SUB","SUMMARY","SUP","TABLE","TBODY","TD","TEXTAREA","TFOOT","TH","THEAD","TIME","TR","TRACK","TT","U","UL","VAR","VIDEO","WBR"],t.N)}) r($,"aGV","aiw",function(){return J.CV(P.Vj(),"Opera",0)}) r($,"aGU","asY",function(){return!$.aiw()&&J.CV(P.Vj(),"Trident/",0)}) r($,"aGT","asX",function(){return J.CV(P.Vj(),"Firefox",0)}) r($,"aGW","asZ",function(){return!$.aiw()&&J.CV(P.Vj(),"WebKit",0)}) r($,"aGS","asW",function(){return"-"+$.at_()+"-"}) r($,"aGX","at_",function(){if($.asX())var p="moz" else if($.asY())p="ms" else p=$.aiw()?"o":"webkit" return p}) r($,"aIA","p2",function(){return P.aD2(P.ahn(self))}) r($,"aI1","alT",function(){return H.asg("_$dart_dartObject")}) r($,"aIB","alX",function(){return function DartObject(a){this.o=a}}) r($,"aH0","d0",function(){return H.ha(H.aoQ(H.b([1],t._)).buffer,0,null).getInt8(0)===1?C.af:C.jf}) r($,"aJo","Sj",function(){return new P.U2(P.y(t.N,H.T("oz")))}) r($,"aJE","aiG",function(){return new P.a1j(P.y(t.N,H.T("aE(p)")),P.y(t.S,t.h))}) q($,"aGC","jo",function(){return new F.Tb()}) q($,"aJH","aus",function(){return new V.a4J()}) r($,"aJq","aum",function(){return new L.a9D()}) r($,"aIO","atZ",function(){return R.rX(C.cy,C.i,t.EP)}) r($,"aIN","am_",function(){return R.rX(C.i,C.xB,t.EP)}) r($,"aIK","atW",function(){return R.rX(C.az,C.i,t.EP)}) s($,"aI0","atA",function(){return new G.EK(C.H2,C.H3)}) r($,"aJr","aun",function(){return new F.V0()}) r($,"aJk","auj",function(){return new U.ahk().$0()}) r($,"aIw","atQ",function(){return new U.agl().$0()}) r($,"aIC","Sc",function(){return P.jQ(null,t.N)}) r($,"aID","alY",function(){return P.aBb()}) r($,"aHy","atg",function(){return P.c3("^\\s*at ([^\\s]+).*$",!0)}) r($,"aJt","auo",function(){return new L.aa3()}) r($,"aI2","atB",function(){var p=null return P.aj([X.b7(C.bl,p,p),C.q7,X.b7(C.bm,p,p),C.q6],H.T("hU"),t.vz)}) r($,"aIh","atL",function(){return R.rX(0.75,1,t.d)}) r($,"aIi","atM",function(){return R.V3(C.FE)}) r($,"aJx","aup",function(){return P.aj([C.cs,null,C.hm,K.Tj(2),C.l_,null,C.hn,K.Tj(2),C.ct,null],H.T("lm"),t.dk)}) r($,"aI3","atC",function(){return R.rX(C.xC,C.i,t.EP)}) r($,"aI5","atE",function(){return R.V3(C.al)}) r($,"aI4","atD",function(){return R.V3(C.bS)}) r($,"aI6","atF",function(){return R.rX(0.875,1,t.d).a7L(R.V3(C.bS))}) r($,"aJz","auq",function(){return new F.a_w()}) r($,"aHI","atj",function(){return X.aBn()}) r($,"aHH","ati",function(){return new X.MJ(P.y(H.T("tB"),t.we),5,H.T("MJ"))}) r($,"aGy","asN",function(){return P.c3("/?(\\d+(\\.\\d*)?)x$",!0)}) s($,"aHi","at5",function(){return C.oY}) s($,"aHk","at7",function(){var p=null return P.aku(p,C.jz,p,p,p,p,"sans-serif",p,p,18,p,p,p,p,p,p,p,p,p,p)}) s($,"aHj","at6",function(){var p=null return P.a0X(p,p,p,p,p,p,p,p,p,C.eI,C.m,p)}) r($,"aIj","atN",function(){return E.azs()}) r($,"aHq","aiB",function(){return A.J2()}) r($,"aHp","atb",function(){return H.aoO(0)}) r($,"aHr","atc",function(){return H.aoO(0)}) r($,"aHs","atd",function(){return E.azt().a}) r($,"aJG","aiH",function(){var p=t.N return new Q.a1f(P.y(p,H.T("ax")),P.y(p,t.L0))}) s($,"aIQ","au0",function(){if(typeof WeakMap=="function")var p=new WeakMap() else{p=$.ao3 $.ao3=p+1 p="expando$key$"+p}return new P.Fm(p,H.T("Fm"))}) r($,"aHh","p1",function(){var p=t.v3 p=new B.HW(H.b([],H.T("o<~(fD)>")),P.y(p,t.bd),P.aZ(p)) C.n1.wi(p.ga0O()) return p}) r($,"aHg","at4",function(){var p,o,n=P.y(t.v3,t.bd) n.n(0,C.ex,C.kr) for(p=$.a1O.gh_($.a1O),p=p.gM(p);p.q();){o=p.gw(p) n.n(0,o.gdN(o),o.gm(o))}return n}) r($,"aH2","at0",function(){return new B.Fu("\n")}) r($,"aHG","fV",function(){var p=new N.K5() p.a=C.xF p.ger().rj(p.ga27()) return p}) r($,"aHW","atx",function(){var p=null return P.aj([X.b7(C.h8,p,p),C.ov,X.b7(C.ks,p,p),C.o_,X.b7(C.kt,p,p),C.ob,X.b7(C.h9,p,p),C.oo,X.b7(C.ae,C.h9,p),C.ou,X.b7(C.bm,p,p),C.Bz,X.b7(C.bl,p,p),C.By,X.b7(C.b6,p,p),C.BC,X.b7(C.b5,p,p),C.BB,X.b7(C.kw,p,p),C.BA,X.b7(C.kx,p,p),C.lH],H.T("hU"),t.vz)}) s($,"aHX","aty",function(){var p=H.T("~(aX)") return P.aj([C.Ga,U.anR(!0),C.GU,U.anR(!1),C.Gz,new U.IB(R.cd(p)),C.Gu,new U.GT(R.cd(p)),C.Gx,new U.HO(R.cd(p)),C.G8,new U.EZ(R.cd(p)),C.GA,new F.IS(R.cd(p)),C.Gy,new U.HQ(R.cd(p))],t.n,t.od)}) r($,"aGQ","asU",function(){var p=H.T("~(aX)") return P.aj([C.GR,new E.Me(R.cd(p)),C.FZ,new E.My(R.cd(p)),C.GO,new E.Mz(R.cd(p)),C.GP,new E.MB(R.cd(p)),C.Gt,new E.MA(R.cd(p)),C.Gl,new E.MC(R.cd(p)),C.GW,new E.ME(R.cd(p)),C.G0,new E.MF(R.cd(p)),C.G1,new E.MD(R.cd(p)),C.GV,new E.MG(R.cd(p)),C.Gc,new E.MH(R.cd(p)),C.FW,new E.Mu(R.cd(p)),C.G_,new E.Mv(R.cd(p)),C.GX,new E.Mw(R.cd(p)),C.GT,new E.Mx(R.cd(p)),C.Go,new E.NO(R.cd(p)),C.FX,new E.NP(R.cd(p)),C.FY,new E.NQ(R.cd(p)),C.Gp,new E.NR(R.cd(p)),C.G4,new E.NS(R.cd(p)),C.G5,new E.NT(R.cd(p)),C.Gq,new E.NU(R.cd(p)),C.Gr,new E.NV(R.cd(p)),C.Gg,new E.NW(R.cd(p)),C.Gs,new E.NX(R.cd(p))],t.n,t.od)}) r($,"aGR","asV",function(){var p=null return P.aj([X.b7(C.b3,C.bl,p),C.K,X.b7(C.b3,C.b6,p),C.K,X.b7(C.b3,C.b5,p),C.K,X.b7(C.b3,C.bm,p),C.K,X.b7(C.b3,C.ae,C.bl),C.K,X.b7(C.b3,C.ae,C.b6),C.K,X.b7(C.b3,C.ae,C.b5),C.K,X.b7(C.b3,C.ae,C.bm),C.K,X.b7(C.bl,p,p),C.K,X.b7(C.b6,p,p),C.K,X.b7(C.b5,p,p),C.K,X.b7(C.bm,p,p),C.K,X.b7(C.cr,C.b6,p),C.K,X.b7(C.cr,C.b5,p),C.K,X.b7(C.cr,C.ae,C.b6),C.K,X.b7(C.cr,C.ae,C.b5),C.K,X.b7(C.hb,p,p),C.K,X.b7(C.ha,p,p),C.K,X.b7(C.b4,C.bl,p),C.K,X.b7(C.b4,C.b6,p),C.K,X.b7(C.b4,C.b5,p),C.K,X.b7(C.b4,C.bm,p),C.K,X.b7(C.b4,C.ae,C.bl),C.K,X.b7(C.b4,C.ae,C.b6),C.K,X.b7(C.b4,C.ae,C.b5),C.K,X.b7(C.b4,C.ae,C.bm),C.K,X.b7(C.ae,C.bl,p),C.K,X.b7(C.ae,C.b6,p),C.K,X.b7(C.ae,C.b5,p),C.K,X.b7(C.ae,C.bm,p),C.K,X.b7(C.ae,C.hb,p),C.K,X.b7(C.ae,C.ha,p),C.K,X.b7(C.h8,p,p),C.K],H.T("hU"),t.vz)}) s($,"aIa","alU",function(){var p=($.b5+1)%16777215 $.b5=p return new N.O3(p,new N.O4(null),C.a1,P.be(t.t))}) r($,"aI8","atH",function(){return R.rX(1,0,t.d)}) s($,"aIf","aiD",function(){var p=B.aBE(null,t.ob),o=P.ay8(t.H) return new K.O2(C.lB,p,o)}) r($,"aI7","atG",function(){return P.cJ(16667,0)}) r($,"aHn","at9",function(){return M.aB4(0.5,1.1,100)}) r($,"aHo","ata",function(){var p,o $.D.toString p=$.b4() o=p.guw(p) $.D.toString return new N.Kf(1/p.guw(p),1/(0.05*o))}) r($,"aGH","asR",function(){return P.S1(0.78)/P.S1(0.9)}) s($,"aHV","atw",function(){var p=null,o=t.N return new N.QZ(P.b6(20,p,!1,t.ob),0,new N.Zs(H.b([],t.TT)),p,P.y(o,H.T("d3")),P.y(o,H.T("aC9")),P.aqo(t.K,o),0,p,!1,!1,p,H.as0(),0,p,H.as0(),N.aqb(),N.aqb())}) r($,"aJN","auv",function(){return new D.a1k(P.y(t.N,H.T("ax?(bX?)")))}) q($,"aIF","atS",function(){return P.c3('["\\x00-\\x1F\\x7F]',!0)}) q($,"aJM","auu",function(){return P.c3('[^()<>@,;:"\\\\/[\\]?={} \\t\\x00-\\x1F\\x7F]+',!0)}) q($,"aIP","au_",function(){return P.c3("(?:\\r\\n)?[ \\t]+",!0)}) q($,"aIX","au3",function(){return P.c3('"(?:[^"\\x00-\\x1F\\x7F]|\\\\.)*"',!0)}) q($,"aIW","au2",function(){return P.c3("\\\\(.)",!0)}) q($,"aJA","aur",function(){return P.c3('[()<>@,;:"\\\\/\\[\\]?={} \\t\\x00-\\x1F\\x7F]',!0)}) q($,"aJO","auw",function(){return P.c3("(?:"+$.au_().a+")*",!0)}) q($,"aHb","aiy",function(){return P.S1(10)}) q($,"aHd","aiz",function(){var p=P.aFY(2,52) return p}) q($,"aHc","at3",function(){return C.d.ey(P.S1($.aiz())/P.S1(10))}) q($,"aJD","am7",function(){var p=",",o="\xa0",n="%",m="0",l="+",k="-",j="E",i="\u2030",h="\u221e",g="NaN",f="#,##0.###",e="#E0",d="#,##0%",c="\xa4#,##0.00",b=".",a="\u200e+",a0="\u200e-",a1="\u0644\u064a\u0633\xa0\u0631\u0642\u0645\u064b\u0627",a2="\xa4\xa0#,##0.00",a3="#,##0.00\xa0\xa4",a4="#,##0\xa0%",a5="#,##,##0.###",a6="EUR",a7="USD",a8="\xa4\xa0#,##0.00;\xa4-#,##0.00",a9="CHF",b0="#,##,##0%",b1="\xa4\xa0#,##,##0.00",b2="INR",b3="\u2212",b4="\xd710^",b5="[#E0]",b6="\xa4#,##,##0.00",b7="\u200f#,##0.00\xa0\xa4;\u200f-#,##0.00\xa0\xa4" return P.aj(["af",B.V(c,f,p,"ZAR",j,o,h,k,"af",g,n,d,i,l,e,m),"am",B.V(c,f,b,"ETB",j,p,h,k,"am",g,n,d,i,l,e,m),"ar",B.V(a2,f,b,"EGP",j,p,h,a0,"ar",a1,"\u200e%\u200e",d,i,a,e,m),"ar_DZ",B.V(a2,f,p,"DZD",j,b,h,a0,"ar_DZ",a1,"\u200e%\u200e",d,i,a,e,m),"ar_EG",B.V(a3,f,"\u066b","EGP","\u0627\u0633","\u066c",h,"\u061c-","ar_EG","\u0644\u064a\u0633\xa0\u0631\u0642\u0645","\u066a\u061c",d,"\u0609","\u061c+",e,"\u0660"),"az",B.V(a3,f,p,"AZN",j,b,h,k,"az",g,n,d,i,l,e,m),"be",B.V(a3,f,p,"BYN",j,o,h,k,"be",g,n,a4,i,l,e,m),"bg",B.V("0.00\xa0\xa4",f,p,"BGN",j,o,h,k,"bg",g,n,d,i,l,e,m),"bn",B.V("#,##,##0.00\xa4",a5,b,"BDT",j,p,h,k,"bn",g,n,d,i,l,e,"\u09e6"),"br",B.V(a3,f,p,a6,j,o,h,k,"br",g,n,a4,i,l,e,m),"bs",B.V(a3,f,p,"BAM",j,b,h,k,"bs",g,n,a4,i,l,e,m),"ca",B.V(a3,f,p,a6,j,b,h,k,"ca",g,n,d,i,l,e,m),"chr",B.V(c,f,b,a7,j,p,h,k,"chr",g,n,d,i,l,e,m),"cs",B.V(a3,f,p,"CZK",j,o,h,k,"cs",g,n,a4,i,l,e,m),"cy",B.V(c,f,b,"GBP",j,p,h,k,"cy",g,n,d,i,l,e,m),"da",B.V(a3,f,p,"DKK",j,b,h,k,"da",g,n,a4,i,l,e,m),"de",B.V(a3,f,p,a6,j,b,h,k,"de",g,n,a4,i,l,e,m),"de_AT",B.V(a2,f,p,a6,j,o,h,k,"de_AT",g,n,a4,i,l,e,m),"de_CH",B.V(a8,f,b,a9,j,"\u2019",h,k,"de_CH",g,n,d,i,l,e,m),"el",B.V(a3,f,p,a6,"e",b,h,k,"el",g,n,d,i,l,e,m),"en",B.V(c,f,b,a7,j,p,h,k,"en",g,n,d,i,l,e,m),"en_AU",B.V(c,f,b,"AUD","e",p,h,k,"en_AU",g,n,d,i,l,e,m),"en_CA",B.V(c,f,b,"CAD","e",p,h,k,"en_CA",g,n,d,i,l,e,m),"en_GB",B.V(c,f,b,"GBP",j,p,h,k,"en_GB",g,n,d,i,l,e,m),"en_IE",B.V(c,f,b,a6,j,p,h,k,"en_IE",g,n,d,i,l,e,m),"en_IN",B.V(b1,a5,b,b2,j,p,h,k,"en_IN",g,n,b0,i,l,e,m),"en_MY",B.V(c,f,b,"MYR",j,p,h,k,"en_MY",g,n,d,i,l,e,m),"en_SG",B.V(c,f,b,"SGD",j,p,h,k,"en_SG",g,n,d,i,l,e,m),"en_US",B.V(c,f,b,a7,j,p,h,k,"en_US",g,n,d,i,l,e,m),"en_ZA",B.V(c,f,p,"ZAR",j,o,h,k,"en_ZA",g,n,d,i,l,e,m),"es",B.V(a3,f,p,a6,j,b,h,k,"es",g,n,a4,i,l,e,m),"es_419",B.V(c,f,b,"MXN",j,p,h,k,"es_419",g,n,a4,i,l,e,m),"es_ES",B.V(a3,f,p,a6,j,b,h,k,"es_ES",g,n,a4,i,l,e,m),"es_MX",B.V(c,f,b,"MXN",j,p,h,k,"es_MX",g,n,a4,i,l,e,m),"es_US",B.V(c,f,b,a7,j,p,h,k,"es_US",g,n,a4,i,l,e,m),"et",B.V(a3,f,p,a6,b4,o,h,b3,"et",g,n,d,i,l,e,m),"eu",B.V(a3,f,p,a6,j,b,h,b3,"eu",g,n,"%\xa0#,##0",i,l,e,m),"fa",B.V("\u200e\xa4#,##0.00",f,"\u066b","IRR","\xd7\u06f1\u06f0^","\u066c",h,"\u200e\u2212","fa","\u0646\u0627\u0639\u062f\u062f","\u066a",d,"\u0609",a,e,"\u06f0"),"fi",B.V(a3,f,p,a6,j,o,h,b3,"fi","ep\xe4luku",n,a4,i,l,e,m),"fil",B.V(c,f,b,"PHP",j,p,h,k,"fil",g,n,d,i,l,e,m),"fr",B.V(a3,f,p,a6,j,"\u202f",h,k,"fr",g,n,a4,i,l,e,m),"fr_CA",B.V(a3,f,p,"CAD",j,o,h,k,"fr_CA",g,n,a4,i,l,e,m),"fr_CH",B.V(a3,f,p,a9,j,"\u202f",h,k,"fr_CH",g,n,d,i,l,e,m),"ga",B.V(c,f,b,a6,j,p,h,k,"ga",g,n,d,i,l,e,m),"gl",B.V(a3,f,p,a6,j,b,h,k,"gl",g,n,a4,i,l,e,m),"gsw",B.V(a3,f,b,a9,j,"\u2019",h,b3,"gsw",g,n,a4,i,l,e,m),"gu",B.V(b6,a5,b,b2,j,p,h,k,"gu",g,n,b0,i,l,b5,m),"haw",B.V(c,f,b,a7,j,p,h,k,"haw",g,n,d,i,l,e,m),"he",B.V(b7,f,b,"ILS",j,p,h,a0,"he",g,n,d,i,a,e,m),"hi",B.V(b6,a5,b,b2,j,p,h,k,"hi",g,n,b0,i,l,b5,m),"hr",B.V(a3,f,p,"HRK",j,b,h,k,"hr",g,n,a4,i,l,e,m),"hu",B.V(a3,f,p,"HUF",j,o,h,k,"hu",g,n,d,i,l,e,m),"hy",B.V(a3,f,p,"AMD",j,o,h,k,"hy","\u0548\u0579\u0539",n,d,i,l,e,m),"id",B.V(c,f,p,"IDR",j,b,h,k,"id",g,n,d,i,l,e,m),"in",B.V(c,f,p,"IDR",j,b,h,k,"in",g,n,d,i,l,e,m),"is",B.V(a3,f,p,"ISK",j,b,h,k,"is",g,n,d,i,l,e,m),"it",B.V(a3,f,p,a6,j,b,h,k,"it",g,n,d,i,l,e,m),"it_CH",B.V(a8,f,b,a9,j,"\u2019",h,k,"it_CH",g,n,d,i,l,e,m),"iw",B.V(b7,f,b,"ILS",j,p,h,a0,"iw",g,n,d,i,a,e,m),"ja",B.V(c,f,b,"JPY",j,p,h,k,"ja",g,n,d,i,l,e,m),"ka",B.V(a3,f,p,"GEL",j,o,h,k,"ka","\u10d0\u10e0\xa0\u10d0\u10e0\u10d8\u10e1\xa0\u10e0\u10d8\u10ea\u10ee\u10d5\u10d8",n,d,i,l,e,m),"kk",B.V(a3,f,p,"KZT",j,o,h,k,"kk","\u0441\u0430\u043d\xa0\u0435\u043c\u0435\u0441",n,d,i,l,e,m),"km",B.V("#,##0.00\xa4",f,p,"KHR",j,b,h,k,"km",g,n,d,i,l,e,m),"kn",B.V(c,f,b,b2,j,p,h,k,"kn",g,n,d,i,l,e,m),"ko",B.V(c,f,b,"KRW",j,p,h,k,"ko",g,n,d,i,l,e,m),"ky",B.V(a3,f,p,"KGS",j,o,h,k,"ky","\u0441\u0430\u043d\xa0\u044d\u043c\u0435\u0441",n,d,i,l,e,m),"ln",B.V(a3,f,p,"CDF",j,b,h,k,"ln",g,n,d,i,l,e,m),"lo",B.V("\xa4#,##0.00;\xa4-#,##0.00",f,p,"LAK",j,b,h,k,"lo","\u0e9a\u0ecd\u0ec8\u200b\u0ec1\u0ea1\u0ec8\u0e99\u200b\u0ec2\u0e95\u200b\u0ec0\u0ea5\u0e81",n,d,i,l,"#",m),"lt",B.V(a3,f,p,a6,b4,o,h,b3,"lt",g,n,a4,i,l,e,m),"lv",B.V(a3,f,p,a6,j,o,h,k,"lv","NS",n,d,i,l,e,m),"mk",B.V(a3,f,p,"MKD",j,b,h,k,"mk",g,n,d,i,l,e,m),"ml",B.V(c,a5,b,b2,j,p,h,k,"ml",g,n,d,i,l,e,m),"mn",B.V(a2,f,b,"MNT",j,p,h,k,"mn",g,n,d,i,l,e,m),"mr",B.V(c,a5,b,b2,j,p,h,k,"mr",g,n,d,i,l,b5,"\u0966"),"ms",B.V(c,f,b,"MYR",j,p,h,k,"ms",g,n,d,i,l,e,m),"mt",B.V(c,f,b,a6,j,p,h,k,"mt",g,n,d,i,l,e,m),"my",B.V(a3,f,b,"MMK",j,p,h,k,"my","\u1002\u100f\u1014\u103a\u1038\u1019\u101f\u102f\u1010\u103a\u101e\u1031\u102c",n,d,i,l,e,"\u1040"),"nb",B.V(a2,f,p,"NOK",j,o,h,b3,"nb",g,n,a4,i,l,e,m),"ne",B.V(a2,f,b,"NPR",j,p,h,k,"ne",g,n,d,i,l,e,"\u0966"),"nl",B.V("\xa4\xa0#,##0.00;\xa4\xa0-#,##0.00",f,p,a6,j,b,h,k,"nl",g,n,d,i,l,e,m),"no",B.V(a2,f,p,"NOK",j,o,h,b3,"no",g,n,a4,i,l,e,m),"no_NO",B.V(a2,f,p,"NOK",j,o,h,b3,"no_NO",g,n,a4,i,l,e,m),"or",B.V(c,a5,b,b2,j,p,h,k,"or",g,n,d,i,l,e,m),"pa",B.V(b1,a5,b,b2,j,p,h,k,"pa",g,n,b0,i,l,b5,m),"pl",B.V(a3,f,p,"PLN",j,o,h,k,"pl",g,n,d,i,l,e,m),"ps",B.V(a3,f,"\u066b","AFN","\xd7\u06f1\u06f0^","\u066c",h,"\u200e-\u200e","ps",g,"\u066a",d,"\u0609","\u200e+\u200e",e,"\u06f0"),"pt",B.V(a2,f,p,"BRL",j,b,h,k,"pt",g,n,d,i,l,e,m),"pt_BR",B.V(a2,f,p,"BRL",j,b,h,k,"pt_BR",g,n,d,i,l,e,m),"pt_PT",B.V(a3,f,p,a6,j,o,h,k,"pt_PT",g,n,d,i,l,e,m),"ro",B.V(a3,f,p,"RON",j,b,h,k,"ro",g,n,a4,i,l,e,m),"ru",B.V(a3,f,p,"RUB",j,o,h,k,"ru","\u043d\u0435\xa0\u0447\u0438\u0441\u043b\u043e",n,a4,i,l,e,m),"si",B.V(c,f,b,"LKR",j,p,h,k,"si",g,n,d,i,l,"#",m),"sk",B.V(a3,f,p,a6,"e",o,h,k,"sk",g,n,a4,i,l,e,m),"sl",B.V(a3,f,p,a6,"e",b,h,b3,"sl",g,n,a4,i,l,e,m),"sq",B.V(a3,f,p,"ALL",j,o,h,k,"sq",g,n,d,i,l,e,m),"sr",B.V(a3,f,p,"RSD",j,b,h,k,"sr",g,n,d,i,l,e,m),"sr_Latn",B.V(a3,f,p,"RSD",j,b,h,k,"sr_Latn",g,n,d,i,l,e,m),"sv",B.V(a3,f,p,"SEK",b4,o,h,b3,"sv",g,n,a4,i,l,e,m),"sw",B.V(a2,f,b,"TZS",j,p,h,k,"sw",g,n,d,i,l,e,m),"ta",B.V(b1,a5,b,b2,j,p,h,k,"ta",g,n,b0,i,l,e,m),"te",B.V(b6,a5,b,b2,j,p,h,k,"te",g,n,d,i,l,e,m),"th",B.V(c,f,b,"THB",j,p,h,k,"th",g,n,d,i,l,e,m),"tl",B.V(c,f,b,"PHP",j,p,h,k,"tl",g,n,d,i,l,e,m),"tr",B.V(c,f,p,"TRY",j,b,h,k,"tr",g,n,"%#,##0",i,l,e,m),"uk",B.V(a3,f,p,"UAH","\u0415",o,h,k,"uk",g,n,d,i,l,e,m),"ur",B.V(a2,f,b,"PKR",j,p,h,a0,"ur",g,n,d,i,a,e,m),"uz",B.V(a3,f,p,"UZS",j,o,h,k,"uz","son\xa0emas",n,d,i,l,e,m),"vi",B.V(a3,f,p,"VND",j,b,h,k,"vi",g,n,d,i,l,e,m),"zh",B.V(c,f,b,"CNY",j,p,h,k,"zh",g,n,d,i,l,e,m),"zh_CN",B.V(c,f,b,"CNY",j,p,h,k,"zh_CN",g,n,d,i,l,e,m),"zh_HK",B.V(c,f,b,"HKD",j,p,h,k,"zh_HK","\u975e\u6578\u503c",n,d,i,l,e,m),"zh_TW",B.V(c,f,b,"TWD",j,p,h,k,"zh_TW","\u975e\u6578\u503c",n,d,i,l,e,m),"zu",B.V(c,f,b,"ZAR",j,p,h,k,"zu",g,n,d,i,l,e,m)],t.X,H.T("qq*"))}) r($,"aJp","am6",function(){return new M.UN($.alQ(),null)}) r($,"aHC","ath",function(){return new E.a1v(P.c3("/",!0),P.c3("[^/]$",!0),P.c3("^/",!0))}) r($,"aHE","Sa",function(){return new L.a7X(P.c3("[/\\\\]",!0),P.c3("[^/\\\\]$",!0),P.c3("^(\\\\\\\\[^\\\\]+\\\\[^\\\\/]+|[a-zA-Z]:[/\\\\])",!0),P.c3("^[/\\\\](?![/\\\\])",!0))}) r($,"aHD","CO",function(){return new F.a7K(P.c3("/",!0),P.c3("(^[a-zA-Z][-+.a-zA-Z\\d]*://|[^/])$",!0),P.c3("[a-zA-Z][-+.a-zA-Z\\d]*://[^/]*",!0),P.c3("^/",!0))}) r($,"aHB","alQ",function(){return O.aBf()}) q($,"aAO","ate",function(){return new F.a_H()}) q($,"aGx","asM",function(){return P.aI(255,3,0,28)}) q($,"aGw","alP",function(){return C.er.i(0,200)}) q($,"aGv","aiu",function(){return C.er.i(0,300)}) q($,"aIx","ul",function(){var p=new O.Tq(P.aZ(H.T("iG*"))) p.b=!0 return new O.a1a(p)}) q($,"aIE","aiE",function(){return V.ayu(15,20,20,15)})})();(function nativeSupport(){!function(){var s=function(a){var m={} m[a]=1 return Object.keys(hunkHelpers.convertToFastObject(m))[0]} v.getIsolateTag=function(a){return s("___dart_"+a+v.isolateTag)} var r="___dart_isolate_tags_" var q=Object[r]||(Object[r]=Object.create(null)) var p="_ZxYxX" for(var o=0;;o++){var n=s(p+"_"+o+"_") if(!(n in q)){q[n]=1 v.isolateTag=n break}}v.dispatchPropertyName=v.getIsolateTag("dispatch_record")}() hunkHelpers.setOrUpdateInterceptorsByTag({AnimationEffectReadOnly:J.i,AnimationEffectTiming:J.i,AnimationEffectTimingReadOnly:J.i,AnimationTimeline:J.i,AnimationWorkletGlobalScope:J.i,AuthenticatorAssertionResponse:J.i,AuthenticatorAttestationResponse:J.i,AuthenticatorResponse:J.i,BackgroundFetchFetch:J.i,BackgroundFetchManager:J.i,BackgroundFetchSettledFetch:J.i,BarProp:J.i,BarcodeDetector:J.i,BluetoothRemoteGATTDescriptor:J.i,BudgetState:J.i,CacheStorage:J.i,CanvasGradient:J.i,CanvasPattern:J.i,Client:J.i,Clients:J.i,CookieStore:J.i,Coordinates:J.i,CredentialsContainer:J.i,Crypto:J.i,CryptoKey:J.i,CSS:J.i,CSSVariableReferenceValue:J.i,CustomElementRegistry:J.i,DataTransfer:J.i,DataTransferItem:J.i,DeprecatedStorageInfo:J.i,DeprecatedStorageQuota:J.i,DeprecationReport:J.i,DetectedBarcode:J.i,DetectedFace:J.i,DetectedText:J.i,DeviceAcceleration:J.i,DeviceRotationRate:J.i,DirectoryReader:J.i,DocumentOrShadowRoot:J.i,DocumentTimeline:J.i,DOMImplementation:J.i,Iterator:J.i,DOMMatrix:J.i,DOMMatrixReadOnly:J.i,DOMParser:J.i,DOMPoint:J.i,DOMPointReadOnly:J.i,DOMQuad:J.i,DOMStringMap:J.i,External:J.i,FaceDetector:J.i,FontFaceSource:J.i,FormData:J.i,GamepadButton:J.i,GamepadPose:J.i,Geolocation:J.i,Position:J.i,Headers:J.i,HTMLHyperlinkElementUtils:J.i,IdleDeadline:J.i,ImageBitmapRenderingContext:J.i,ImageCapture:J.i,InputDeviceCapabilities:J.i,IntersectionObserver:J.i,IntersectionObserverEntry:J.i,InterventionReport:J.i,KeyframeEffect:J.i,KeyframeEffectReadOnly:J.i,MediaCapabilities:J.i,MediaCapabilitiesInfo:J.i,MediaDeviceInfo:J.i,MediaError:J.i,MediaKeyStatusMap:J.i,MediaKeySystemAccess:J.i,MediaKeys:J.i,MediaKeysPolicy:J.i,MediaMetadata:J.i,MediaSession:J.i,MediaSettingsRange:J.i,MemoryInfo:J.i,MessageChannel:J.i,Metadata:J.i,MutationObserver:J.i,WebKitMutationObserver:J.i,MutationRecord:J.i,NavigationPreloadManager:J.i,Navigator:J.i,NavigatorAutomationInformation:J.i,NavigatorConcurrentHardware:J.i,NavigatorCookies:J.i,NodeFilter:J.i,NodeIterator:J.i,NonDocumentTypeChildNode:J.i,NonElementParentNode:J.i,NoncedElement:J.i,OffscreenCanvasRenderingContext2D:J.i,PaintRenderingContext2D:J.i,PaintSize:J.i,PaintWorkletGlobalScope:J.i,Path2D:J.i,PaymentAddress:J.i,PaymentInstruments:J.i,PaymentManager:J.i,PaymentResponse:J.i,PerformanceNavigation:J.i,PerformanceObserver:J.i,PerformanceObserverEntryList:J.i,PerformanceTiming:J.i,Permissions:J.i,PhotoCapabilities:J.i,PositionError:J.i,Presentation:J.i,PresentationReceiver:J.i,PushManager:J.i,PushSubscription:J.i,PushSubscriptionOptions:J.i,Range:J.i,RelatedApplication:J.i,ReportBody:J.i,ReportingObserver:J.i,ResizeObserver:J.i,ResizeObserverEntry:J.i,RTCCertificate:J.i,RTCIceCandidate:J.i,mozRTCIceCandidate:J.i,RTCLegacyStatsReport:J.i,RTCRtpContributingSource:J.i,RTCRtpReceiver:J.i,RTCRtpSender:J.i,RTCSessionDescription:J.i,mozRTCSessionDescription:J.i,RTCStatsResponse:J.i,Screen:J.i,ScrollState:J.i,ScrollTimeline:J.i,Selection:J.i,SharedArrayBuffer:J.i,SpeechRecognitionAlternative:J.i,StaticRange:J.i,StorageManager:J.i,StyleMedia:J.i,StylePropertyMap:J.i,StylePropertyMapReadonly:J.i,SyncManager:J.i,TextDetector:J.i,TextMetrics:J.i,TrackDefault:J.i,TreeWalker:J.i,TrustedHTML:J.i,TrustedScriptURL:J.i,TrustedURL:J.i,UnderlyingSourceBase:J.i,URLSearchParams:J.i,VRCoordinateSystem:J.i,VRDisplayCapabilities:J.i,VREyeParameters:J.i,VRFrameData:J.i,VRFrameOfReference:J.i,VRPose:J.i,VRStageBounds:J.i,VRStageBoundsPoint:J.i,VRStageParameters:J.i,ValidityState:J.i,VideoPlaybackQuality:J.i,VideoTrack:J.i,WindowClient:J.i,WorkletAnimation:J.i,WorkletGlobalScope:J.i,XPathEvaluator:J.i,XPathExpression:J.i,XPathNSResolver:J.i,XPathResult:J.i,XMLSerializer:J.i,XSLTProcessor:J.i,Bluetooth:J.i,BluetoothCharacteristicProperties:J.i,BluetoothRemoteGATTServer:J.i,BluetoothRemoteGATTService:J.i,BluetoothUUID:J.i,BudgetService:J.i,Cache:J.i,DOMFileSystemSync:J.i,DirectoryEntrySync:J.i,DirectoryReaderSync:J.i,EntrySync:J.i,FileEntrySync:J.i,FileReaderSync:J.i,FileWriterSync:J.i,HTMLAllCollection:J.i,Mojo:J.i,MojoHandle:J.i,MojoWatcher:J.i,NFC:J.i,PagePopupController:J.i,Report:J.i,SubtleCrypto:J.i,USBAlternateInterface:J.i,USBConfiguration:J.i,USBDevice:J.i,USBEndpoint:J.i,USBInTransferResult:J.i,USBInterface:J.i,USBIsochronousInTransferPacket:J.i,USBIsochronousInTransferResult:J.i,USBIsochronousOutTransferPacket:J.i,USBIsochronousOutTransferResult:J.i,USBOutTransferResult:J.i,WorkerLocation:J.i,WorkerNavigator:J.i,Worklet:J.i,IDBCursor:J.i,IDBCursorWithValue:J.i,IDBFactory:J.i,IDBObservation:J.i,IDBObserver:J.i,IDBObserverChanges:J.i,SVGAngle:J.i,SVGAnimatedAngle:J.i,SVGAnimatedBoolean:J.i,SVGAnimatedEnumeration:J.i,SVGAnimatedInteger:J.i,SVGAnimatedLength:J.i,SVGAnimatedLengthList:J.i,SVGAnimatedNumber:J.i,SVGAnimatedNumberList:J.i,SVGAnimatedPreserveAspectRatio:J.i,SVGAnimatedRect:J.i,SVGAnimatedString:J.i,SVGAnimatedTransformList:J.i,SVGMatrix:J.i,SVGPoint:J.i,SVGPreserveAspectRatio:J.i,SVGUnitTypes:J.i,AudioListener:J.i,AudioParam:J.i,AudioTrack:J.i,AudioWorkletGlobalScope:J.i,AudioWorkletProcessor:J.i,PeriodicWave:J.i,ANGLEInstancedArrays:J.i,ANGLE_instanced_arrays:J.i,WebGLBuffer:J.i,WebGLCanvas:J.i,WebGLColorBufferFloat:J.i,WebGLCompressedTextureASTC:J.i,WebGLCompressedTextureATC:J.i,WEBGL_compressed_texture_atc:J.i,WebGLCompressedTextureETC1:J.i,WEBGL_compressed_texture_etc1:J.i,WebGLCompressedTextureETC:J.i,WebGLCompressedTexturePVRTC:J.i,WEBGL_compressed_texture_pvrtc:J.i,WebGLCompressedTextureS3TC:J.i,WEBGL_compressed_texture_s3tc:J.i,WebGLCompressedTextureS3TCsRGB:J.i,WebGLDebugRendererInfo:J.i,WEBGL_debug_renderer_info:J.i,WebGLDebugShaders:J.i,WEBGL_debug_shaders:J.i,WebGLDepthTexture:J.i,WEBGL_depth_texture:J.i,WebGLDrawBuffers:J.i,WEBGL_draw_buffers:J.i,EXTsRGB:J.i,EXT_sRGB:J.i,EXTBlendMinMax:J.i,EXT_blend_minmax:J.i,EXTColorBufferFloat:J.i,EXTColorBufferHalfFloat:J.i,EXTDisjointTimerQuery:J.i,EXTDisjointTimerQueryWebGL2:J.i,EXTFragDepth:J.i,EXT_frag_depth:J.i,EXTShaderTextureLOD:J.i,EXT_shader_texture_lod:J.i,EXTTextureFilterAnisotropic:J.i,EXT_texture_filter_anisotropic:J.i,WebGLFramebuffer:J.i,WebGLGetBufferSubDataAsync:J.i,WebGLLoseContext:J.i,WebGLExtensionLoseContext:J.i,WEBGL_lose_context:J.i,OESElementIndexUint:J.i,OES_element_index_uint:J.i,OESStandardDerivatives:J.i,OES_standard_derivatives:J.i,OESTextureFloat:J.i,OES_texture_float:J.i,OESTextureFloatLinear:J.i,OES_texture_float_linear:J.i,OESTextureHalfFloat:J.i,OES_texture_half_float:J.i,OESTextureHalfFloatLinear:J.i,OES_texture_half_float_linear:J.i,OESVertexArrayObject:J.i,OES_vertex_array_object:J.i,WebGLProgram:J.i,WebGLQuery:J.i,WebGLRenderbuffer:J.i,WebGLRenderingContext:J.i,WebGL2RenderingContext:J.i,WebGLSampler:J.i,WebGLShader:J.i,WebGLShaderPrecisionFormat:J.i,WebGLSync:J.i,WebGLTexture:J.i,WebGLTimerQueryEXT:J.i,WebGLTransformFeedback:J.i,WebGLUniformLocation:J.i,WebGLVertexArrayObject:J.i,WebGLVertexArrayObjectOES:J.i,WebGL:J.i,WebGL2RenderingContextBase:J.i,Database:J.i,SQLError:J.i,SQLResultSet:J.i,SQLTransaction:J.i,ArrayBuffer:H.nx,ArrayBufferView:H.dg,DataView:H.x2,Float32Array:H.x3,Float64Array:H.x4,Int16Array:H.GO,Int32Array:H.x5,Int8Array:H.GP,Uint16Array:H.GQ,Uint32Array:H.x6,Uint8ClampedArray:H.x7,CanvasPixelArray:H.x7,Uint8Array:H.ny,HTMLBRElement:W.ab,HTMLContentElement:W.ab,HTMLDListElement:W.ab,HTMLDataElement:W.ab,HTMLDataListElement:W.ab,HTMLDetailsElement:W.ab,HTMLHRElement:W.ab,HTMLHeadElement:W.ab,HTMLHeadingElement:W.ab,HTMLHtmlElement:W.ab,HTMLLIElement:W.ab,HTMLLegendElement:W.ab,HTMLMenuElement:W.ab,HTMLMeterElement:W.ab,HTMLModElement:W.ab,HTMLOListElement:W.ab,HTMLOptGroupElement:W.ab,HTMLOptionElement:W.ab,HTMLPictureElement:W.ab,HTMLPreElement:W.ab,HTMLProgressElement:W.ab,HTMLQuoteElement:W.ab,HTMLShadowElement:W.ab,HTMLSourceElement:W.ab,HTMLTableCaptionElement:W.ab,HTMLTableCellElement:W.ab,HTMLTableDataCellElement:W.ab,HTMLTableHeaderCellElement:W.ab,HTMLTableColElement:W.ab,HTMLTimeElement:W.ab,HTMLTitleElement:W.ab,HTMLTrackElement:W.ab,HTMLUListElement:W.ab,HTMLUnknownElement:W.ab,HTMLDirectoryElement:W.ab,HTMLFontElement:W.ab,HTMLFrameElement:W.ab,HTMLFrameSetElement:W.ab,HTMLMarqueeElement:W.ab,HTMLElement:W.ab,AccessibleNodeList:W.SB,HTMLAnchorElement:W.p7,HTMLAreaElement:W.Dc,BackgroundFetchClickEvent:W.Dm,BackgroundFetchFailEvent:W.kP,BackgroundFetchedEvent:W.kP,BackgroundFetchEvent:W.kP,HTMLBaseElement:W.ph,Blob:W.kR,Body:W.uR,Request:W.uR,Response:W.uR,HTMLBodyElement:W.mv,BroadcastChannel:W.To,HTMLButtonElement:W.DB,HTMLCanvasElement:W.kX,CanvasRenderingContext2D:W.DG,CDATASection:W.iA,CharacterData:W.iA,Comment:W.iA,ProcessingInstruction:W.iA,Text:W.iA,PublicKeyCredential:W.vm,Credential:W.vm,CredentialUserData:W.UR,CSSKeyframesRule:W.px,MozCSSKeyframesRule:W.px,WebKitCSSKeyframesRule:W.px,CSSPerspective:W.US,CSSImageValue:W.vn,CSSResourceValue:W.vn,CSSURLImageValue:W.vn,CSSCharsetRule:W.cb,CSSConditionRule:W.cb,CSSFontFaceRule:W.cb,CSSGroupingRule:W.cb,CSSImportRule:W.cb,CSSKeyframeRule:W.cb,MozCSSKeyframeRule:W.cb,WebKitCSSKeyframeRule:W.cb,CSSMediaRule:W.cb,CSSNamespaceRule:W.cb,CSSPageRule:W.cb,CSSStyleRule:W.cb,CSSSupportsRule:W.cb,CSSViewportRule:W.cb,CSSRule:W.cb,CSSStyleDeclaration:W.py,MSStyleCSSProperties:W.py,CSS2Properties:W.py,CSSStyleSheet:W.pz,CSSKeywordValue:W.l2,CSSNumericValue:W.l2,CSSPositionValue:W.l2,CSSUnitValue:W.l2,CSSStyleValue:W.l2,CSSMatrixComponent:W.jx,CSSRotation:W.jx,CSSScale:W.jx,CSSSkew:W.jx,CSSTranslation:W.jx,CSSTransformComponent:W.jx,CSSTransformValue:W.UU,CSSUnparsedValue:W.UV,DataTransferItemList:W.V5,DedicatedWorkerGlobalScope:W.EL,HTMLDialogElement:W.EX,HTMLDivElement:W.vz,Document:W.jA,HTMLDocument:W.jA,XMLDocument:W.jA,DOMError:W.VB,DOMException:W.pF,ClientRectList:W.vB,DOMRectList:W.vB,DOMRectReadOnly:W.vC,DOMStringList:W.F4,DOMTokenList:W.VN,Element:W.aE,HTMLEmbedElement:W.F7,DirectoryEntry:W.vN,Entry:W.vN,FileEntry:W.vN,AnimationEvent:W.ah,AnimationPlaybackEvent:W.ah,ApplicationCacheErrorEvent:W.ah,BeforeInstallPromptEvent:W.ah,BeforeUnloadEvent:W.ah,BlobEvent:W.ah,ClipboardEvent:W.ah,CloseEvent:W.ah,CustomEvent:W.ah,DeviceMotionEvent:W.ah,DeviceOrientationEvent:W.ah,ErrorEvent:W.ah,FontFaceSetLoadEvent:W.ah,GamepadEvent:W.ah,HashChangeEvent:W.ah,MediaEncryptedEvent:W.ah,MediaKeyMessageEvent:W.ah,MediaStreamEvent:W.ah,MediaStreamTrackEvent:W.ah,MessageEvent:W.ah,MIDIConnectionEvent:W.ah,MIDIMessageEvent:W.ah,MutationEvent:W.ah,PageTransitionEvent:W.ah,PaymentRequestUpdateEvent:W.ah,PresentationConnectionAvailableEvent:W.ah,PresentationConnectionCloseEvent:W.ah,PromiseRejectionEvent:W.ah,RTCDataChannelEvent:W.ah,RTCDTMFToneChangeEvent:W.ah,RTCPeerConnectionIceEvent:W.ah,RTCTrackEvent:W.ah,SecurityPolicyViolationEvent:W.ah,SensorErrorEvent:W.ah,SpeechRecognitionError:W.ah,SpeechRecognitionEvent:W.ah,StorageEvent:W.ah,TrackEvent:W.ah,TransitionEvent:W.ah,WebKitTransitionEvent:W.ah,VRDeviceEvent:W.ah,VRDisplayEvent:W.ah,VRSessionEvent:W.ah,MojoInterfaceRequestEvent:W.ah,USBConnectionEvent:W.ah,AudioProcessingEvent:W.ah,OfflineAudioCompletionEvent:W.ah,WebGLContextEvent:W.ah,Event:W.ah,InputEvent:W.ah,SubmitEvent:W.ah,EventSource:W.WJ,AbsoluteOrientationSensor:W.ai,Accelerometer:W.ai,AccessibleNode:W.ai,AmbientLightSensor:W.ai,Animation:W.ai,ApplicationCache:W.ai,DOMApplicationCache:W.ai,OfflineResourceList:W.ai,BackgroundFetchRegistration:W.ai,BatteryManager:W.ai,CanvasCaptureMediaStreamTrack:W.ai,Gyroscope:W.ai,LinearAccelerationSensor:W.ai,Magnetometer:W.ai,MediaDevices:W.ai,MediaSource:W.ai,MediaStream:W.ai,MediaStreamTrack:W.ai,MIDIAccess:W.ai,NetworkInformation:W.ai,OrientationSensor:W.ai,PaymentRequest:W.ai,Performance:W.ai,PresentationAvailability:W.ai,PresentationConnectionList:W.ai,PresentationRequest:W.ai,RelativeOrientationSensor:W.ai,RTCDTMFSender:W.ai,Sensor:W.ai,ServiceWorkerContainer:W.ai,ServiceWorkerRegistration:W.ai,SharedWorker:W.ai,SpeechRecognition:W.ai,SpeechSynthesis:W.ai,VR:W.ai,VRDevice:W.ai,VRDisplay:W.ai,VRSession:W.ai,VisualViewport:W.ai,Worker:W.ai,WorkerPerformance:W.ai,BluetoothDevice:W.ai,BluetoothRemoteGATTCharacteristic:W.ai,Clipboard:W.ai,MojoInterfaceInterceptor:W.ai,USB:W.ai,IDBOpenDBRequest:W.ai,IDBVersionChangeRequest:W.ai,IDBRequest:W.ai,IDBTransaction:W.ai,AnalyserNode:W.ai,RealtimeAnalyserNode:W.ai,AudioBufferSourceNode:W.ai,AudioDestinationNode:W.ai,AudioNode:W.ai,AudioScheduledSourceNode:W.ai,AudioWorkletNode:W.ai,BiquadFilterNode:W.ai,ChannelMergerNode:W.ai,AudioChannelMerger:W.ai,ChannelSplitterNode:W.ai,AudioChannelSplitter:W.ai,ConstantSourceNode:W.ai,ConvolverNode:W.ai,DelayNode:W.ai,DynamicsCompressorNode:W.ai,GainNode:W.ai,AudioGainNode:W.ai,IIRFilterNode:W.ai,MediaElementAudioSourceNode:W.ai,MediaStreamAudioDestinationNode:W.ai,MediaStreamAudioSourceNode:W.ai,OscillatorNode:W.ai,Oscillator:W.ai,PannerNode:W.ai,AudioPannerNode:W.ai,webkitAudioPannerNode:W.ai,ScriptProcessorNode:W.ai,JavaScriptAudioNode:W.ai,StereoPannerNode:W.ai,WaveShaperNode:W.ai,EventTarget:W.ai,AbortPaymentEvent:W.ec,CanMakePaymentEvent:W.ec,ExtendableMessageEvent:W.ec,FetchEvent:W.ec,ForeignFetchEvent:W.ec,InstallEvent:W.ec,NotificationEvent:W.ec,PaymentRequestEvent:W.ec,PushEvent:W.ec,SyncEvent:W.ec,ExtendableEvent:W.ec,FederatedCredential:W.WP,HTMLFieldSetElement:W.Fq,File:W.et,FileList:W.pN,FileReader:W.Fs,DOMFileSystem:W.WQ,FileWriter:W.WR,FontFace:W.n1,FontFaceSet:W.Xp,HTMLFormElement:W.jF,Gamepad:W.fq,History:W.YI,HTMLCollection:W.n9,HTMLFormControlsCollection:W.n9,HTMLOptionsCollection:W.n9,XMLHttpRequest:W.iG,XMLHttpRequestUpload:W.wb,XMLHttpRequestEventTarget:W.wb,HTMLIFrameElement:W.FV,ImageBitmap:W.Z0,ImageData:W.wd,HTMLImageElement:W.nc,HTMLInputElement:W.nf,KeyboardEvent:W.jN,HTMLLabelElement:W.wu,HTMLLinkElement:W.wz,Location:W.a_k,HTMLMapElement:W.Gx,HTMLAudioElement:W.nt,HTMLMediaElement:W.nt,MediaKeySession:W.a_A,MediaList:W.a_B,MediaQueryList:W.GD,MediaQueryListEvent:W.ql,MediaRecorder:W.a_C,MessagePort:W.wV,HTMLMetaElement:W.lo,MIDIInputMap:W.GF,MIDIOutputMap:W.GG,MIDIInput:W.wW,MIDIOutput:W.wW,MIDIPort:W.wW,MimeType:W.fw,MimeTypeArray:W.GH,MouseEvent:W.eC,DragEvent:W.eC,NavigatorUserMediaError:W.a0k,DocumentFragment:W.a8,ShadowRoot:W.a8,DocumentType:W.a8,Node:W.a8,NodeList:W.qp,RadioNodeList:W.qp,Notification:W.a0r,HTMLObjectElement:W.GY,OffscreenCanvas:W.GZ,HTMLOutputElement:W.H5,OverconstrainedError:W.a0G,HTMLParagraphElement:W.xm,HTMLParamElement:W.Hq,PasswordCredential:W.a1_,PerformanceEntry:W.iW,PerformanceLongTaskTiming:W.iW,PerformanceMark:W.iW,PerformanceMeasure:W.iW,PerformanceNavigationTiming:W.iW,PerformancePaintTiming:W.iW,PerformanceResourceTiming:W.iW,TaskAttributionTiming:W.iW,PerformanceServerTiming:W.a13,PermissionStatus:W.a14,Plugin:W.fB,PluginArray:W.HJ,PointerEvent:W.k1,PopStateEvent:W.HL,PresentationConnection:W.a1x,ProgressEvent:W.f7,ResourceProgressEvent:W.f7,PushMessageData:W.a1H,RemotePlayback:W.a27,RTCDataChannel:W.IL,DataChannel:W.IL,RTCPeerConnection:W.y7,webkitRTCPeerConnection:W.y7,mozRTCPeerConnection:W.y7,RTCStatsReport:W.IM,ScreenOrientation:W.a3Y,HTMLScriptElement:W.yc,HTMLSelectElement:W.J0,ServiceWorker:W.a4G,SharedWorkerGlobalScope:W.J9,HTMLSlotElement:W.Jv,SourceBuffer:W.fI,SourceBufferList:W.JB,HTMLSpanElement:W.rx,SpeechGrammar:W.fJ,SpeechGrammarList:W.JH,SpeechRecognitionResult:W.fK,SpeechSynthesisEvent:W.JI,SpeechSynthesisUtterance:W.a67,SpeechSynthesisVoice:W.a68,Storage:W.yI,HTMLStyleElement:W.yM,StyleSheet:W.eI,HTMLTableElement:W.yT,HTMLTableRowElement:W.JZ,HTMLTableSectionElement:W.K_,HTMLTemplateElement:W.rJ,HTMLTextAreaElement:W.rK,TextTrack:W.fM,TextTrackCue:W.eN,TextTrackCueList:W.K9,TextTrackList:W.Ka,TimeRanges:W.a7k,Touch:W.fN,TouchEvent:W.lP,TouchList:W.zg,TrackDefaultList:W.a7r,CompositionEvent:W.kj,FocusEvent:W.kj,TextEvent:W.kj,UIEvent:W.kj,URL:W.a7H,HTMLVideoElement:W.KB,VideoTrackList:W.a7P,VTTCue:W.KF,VTTRegion:W.a7R,WebSocket:W.a7U,WheelEvent:W.ou,Window:W.ov,DOMWindow:W.ov,ServiceWorkerGlobalScope:W.j9,WorkerGlobalScope:W.j9,Attr:W.t5,CSSRuleList:W.LM,ClientRect:W.zY,DOMRect:W.zY,GamepadList:W.N_,NamedNodeMap:W.AU,MozNamedAttrMap:W.AU,SpeechRecognitionResultList:W.PK,StyleSheetList:W.Q_,IDBDatabase:P.V6,IDBIndex:P.Zl,IDBKeyRange:P.wt,IDBObjectStore:P.a0A,IDBVersionChangeEvent:P.Kz,SVGLength:P.hT,SVGLengthList:P.Gl,SVGNumber:P.i_,SVGNumberList:P.GX,SVGPointList:P.a1l,SVGRect:P.a23,SVGScriptElement:P.qW,SVGStringList:P.JR,SVGAElement:P.am,SVGAnimateElement:P.am,SVGAnimateMotionElement:P.am,SVGAnimateTransformElement:P.am,SVGAnimationElement:P.am,SVGCircleElement:P.am,SVGClipPathElement:P.am,SVGDefsElement:P.am,SVGDescElement:P.am,SVGDiscardElement:P.am,SVGEllipseElement:P.am,SVGFEBlendElement:P.am,SVGFEColorMatrixElement:P.am,SVGFEComponentTransferElement:P.am,SVGFECompositeElement:P.am,SVGFEConvolveMatrixElement:P.am,SVGFEDiffuseLightingElement:P.am,SVGFEDisplacementMapElement:P.am,SVGFEDistantLightElement:P.am,SVGFEFloodElement:P.am,SVGFEFuncAElement:P.am,SVGFEFuncBElement:P.am,SVGFEFuncGElement:P.am,SVGFEFuncRElement:P.am,SVGFEGaussianBlurElement:P.am,SVGFEImageElement:P.am,SVGFEMergeElement:P.am,SVGFEMergeNodeElement:P.am,SVGFEMorphologyElement:P.am,SVGFEOffsetElement:P.am,SVGFEPointLightElement:P.am,SVGFESpecularLightingElement:P.am,SVGFESpotLightElement:P.am,SVGFETileElement:P.am,SVGFETurbulenceElement:P.am,SVGFilterElement:P.am,SVGForeignObjectElement:P.am,SVGGElement:P.am,SVGGeometryElement:P.am,SVGGraphicsElement:P.am,SVGImageElement:P.am,SVGLineElement:P.am,SVGLinearGradientElement:P.am,SVGMarkerElement:P.am,SVGMaskElement:P.am,SVGMetadataElement:P.am,SVGPathElement:P.am,SVGPatternElement:P.am,SVGPolygonElement:P.am,SVGPolylineElement:P.am,SVGRadialGradientElement:P.am,SVGRectElement:P.am,SVGSetElement:P.am,SVGStopElement:P.am,SVGStyleElement:P.am,SVGSVGElement:P.am,SVGSwitchElement:P.am,SVGSymbolElement:P.am,SVGTSpanElement:P.am,SVGTextContentElement:P.am,SVGTextElement:P.am,SVGTextPathElement:P.am,SVGTextPositioningElement:P.am,SVGTitleElement:P.am,SVGUseElement:P.am,SVGViewElement:P.am,SVGGradientElement:P.am,SVGComponentTransferFunctionElement:P.am,SVGFEDropShadowElement:P.am,SVGMPathElement:P.am,SVGElement:P.am,SVGTransform:P.i9,SVGTransformList:P.Kj,AudioBuffer:P.ST,AudioContext:P.Dg,webkitAudioContext:P.Dg,AudioParamMap:P.Dh,AudioTrackList:P.SW,BaseAudioContext:P.Do,OfflineAudioContext:P.a0B,WebGLActiveInfo:P.SF,SQLResultSetRowList:P.JK}) hunkHelpers.setOrUpdateLeafTags({AnimationEffectReadOnly:true,AnimationEffectTiming:true,AnimationEffectTimingReadOnly:true,AnimationTimeline:true,AnimationWorkletGlobalScope:true,AuthenticatorAssertionResponse:true,AuthenticatorAttestationResponse:true,AuthenticatorResponse:true,BackgroundFetchFetch:true,BackgroundFetchManager:true,BackgroundFetchSettledFetch:true,BarProp:true,BarcodeDetector:true,BluetoothRemoteGATTDescriptor:true,BudgetState:true,CacheStorage:true,CanvasGradient:true,CanvasPattern:true,Client:true,Clients:true,CookieStore:true,Coordinates:true,CredentialsContainer:true,Crypto:true,CryptoKey:true,CSS:true,CSSVariableReferenceValue:true,CustomElementRegistry:true,DataTransfer:true,DataTransferItem:true,DeprecatedStorageInfo:true,DeprecatedStorageQuota:true,DeprecationReport:true,DetectedBarcode:true,DetectedFace:true,DetectedText:true,DeviceAcceleration:true,DeviceRotationRate:true,DirectoryReader:true,DocumentOrShadowRoot:true,DocumentTimeline:true,DOMImplementation:true,Iterator:true,DOMMatrix:true,DOMMatrixReadOnly:true,DOMParser:true,DOMPoint:true,DOMPointReadOnly:true,DOMQuad:true,DOMStringMap:true,External:true,FaceDetector:true,FontFaceSource:true,FormData:true,GamepadButton:true,GamepadPose:true,Geolocation:true,Position:true,Headers:true,HTMLHyperlinkElementUtils:true,IdleDeadline:true,ImageBitmapRenderingContext:true,ImageCapture:true,InputDeviceCapabilities:true,IntersectionObserver:true,IntersectionObserverEntry:true,InterventionReport:true,KeyframeEffect:true,KeyframeEffectReadOnly:true,MediaCapabilities:true,MediaCapabilitiesInfo:true,MediaDeviceInfo:true,MediaError:true,MediaKeyStatusMap:true,MediaKeySystemAccess:true,MediaKeys:true,MediaKeysPolicy:true,MediaMetadata:true,MediaSession:true,MediaSettingsRange:true,MemoryInfo:true,MessageChannel:true,Metadata:true,MutationObserver:true,WebKitMutationObserver:true,MutationRecord:true,NavigationPreloadManager:true,Navigator:true,NavigatorAutomationInformation:true,NavigatorConcurrentHardware:true,NavigatorCookies:true,NodeFilter:true,NodeIterator:true,NonDocumentTypeChildNode:true,NonElementParentNode:true,NoncedElement:true,OffscreenCanvasRenderingContext2D:true,PaintRenderingContext2D:true,PaintSize:true,PaintWorkletGlobalScope:true,Path2D:true,PaymentAddress:true,PaymentInstruments:true,PaymentManager:true,PaymentResponse:true,PerformanceNavigation:true,PerformanceObserver:true,PerformanceObserverEntryList:true,PerformanceTiming:true,Permissions:true,PhotoCapabilities:true,PositionError:true,Presentation:true,PresentationReceiver:true,PushManager:true,PushSubscription:true,PushSubscriptionOptions:true,Range:true,RelatedApplication:true,ReportBody:true,ReportingObserver:true,ResizeObserver:true,ResizeObserverEntry:true,RTCCertificate:true,RTCIceCandidate:true,mozRTCIceCandidate:true,RTCLegacyStatsReport:true,RTCRtpContributingSource:true,RTCRtpReceiver:true,RTCRtpSender:true,RTCSessionDescription:true,mozRTCSessionDescription:true,RTCStatsResponse:true,Screen:true,ScrollState:true,ScrollTimeline:true,Selection:true,SharedArrayBuffer:true,SpeechRecognitionAlternative:true,StaticRange:true,StorageManager:true,StyleMedia:true,StylePropertyMap:true,StylePropertyMapReadonly:true,SyncManager:true,TextDetector:true,TextMetrics:true,TrackDefault:true,TreeWalker:true,TrustedHTML:true,TrustedScriptURL:true,TrustedURL:true,UnderlyingSourceBase:true,URLSearchParams:true,VRCoordinateSystem:true,VRDisplayCapabilities:true,VREyeParameters:true,VRFrameData:true,VRFrameOfReference:true,VRPose:true,VRStageBounds:true,VRStageBoundsPoint:true,VRStageParameters:true,ValidityState:true,VideoPlaybackQuality:true,VideoTrack:true,WindowClient:true,WorkletAnimation:true,WorkletGlobalScope:true,XPathEvaluator:true,XPathExpression:true,XPathNSResolver:true,XPathResult:true,XMLSerializer:true,XSLTProcessor:true,Bluetooth:true,BluetoothCharacteristicProperties:true,BluetoothRemoteGATTServer:true,BluetoothRemoteGATTService:true,BluetoothUUID:true,BudgetService:true,Cache:true,DOMFileSystemSync:true,DirectoryEntrySync:true,DirectoryReaderSync:true,EntrySync:true,FileEntrySync:true,FileReaderSync:true,FileWriterSync:true,HTMLAllCollection:true,Mojo:true,MojoHandle:true,MojoWatcher:true,NFC:true,PagePopupController:true,Report:true,SubtleCrypto:true,USBAlternateInterface:true,USBConfiguration:true,USBDevice:true,USBEndpoint:true,USBInTransferResult:true,USBInterface:true,USBIsochronousInTransferPacket:true,USBIsochronousInTransferResult:true,USBIsochronousOutTransferPacket:true,USBIsochronousOutTransferResult:true,USBOutTransferResult:true,WorkerLocation:true,WorkerNavigator:true,Worklet:true,IDBCursor:true,IDBCursorWithValue:true,IDBFactory:true,IDBObservation:true,IDBObserver:true,IDBObserverChanges:true,SVGAngle:true,SVGAnimatedAngle:true,SVGAnimatedBoolean:true,SVGAnimatedEnumeration:true,SVGAnimatedInteger:true,SVGAnimatedLength:true,SVGAnimatedLengthList:true,SVGAnimatedNumber:true,SVGAnimatedNumberList:true,SVGAnimatedPreserveAspectRatio:true,SVGAnimatedRect:true,SVGAnimatedString:true,SVGAnimatedTransformList:true,SVGMatrix:true,SVGPoint:true,SVGPreserveAspectRatio:true,SVGUnitTypes:true,AudioListener:true,AudioParam:true,AudioTrack:true,AudioWorkletGlobalScope:true,AudioWorkletProcessor:true,PeriodicWave:true,ANGLEInstancedArrays:true,ANGLE_instanced_arrays:true,WebGLBuffer:true,WebGLCanvas:true,WebGLColorBufferFloat:true,WebGLCompressedTextureASTC:true,WebGLCompressedTextureATC:true,WEBGL_compressed_texture_atc:true,WebGLCompressedTextureETC1:true,WEBGL_compressed_texture_etc1:true,WebGLCompressedTextureETC:true,WebGLCompressedTexturePVRTC:true,WEBGL_compressed_texture_pvrtc:true,WebGLCompressedTextureS3TC:true,WEBGL_compressed_texture_s3tc:true,WebGLCompressedTextureS3TCsRGB:true,WebGLDebugRendererInfo:true,WEBGL_debug_renderer_info:true,WebGLDebugShaders:true,WEBGL_debug_shaders:true,WebGLDepthTexture:true,WEBGL_depth_texture:true,WebGLDrawBuffers:true,WEBGL_draw_buffers:true,EXTsRGB:true,EXT_sRGB:true,EXTBlendMinMax:true,EXT_blend_minmax:true,EXTColorBufferFloat:true,EXTColorBufferHalfFloat:true,EXTDisjointTimerQuery:true,EXTDisjointTimerQueryWebGL2:true,EXTFragDepth:true,EXT_frag_depth:true,EXTShaderTextureLOD:true,EXT_shader_texture_lod:true,EXTTextureFilterAnisotropic:true,EXT_texture_filter_anisotropic:true,WebGLFramebuffer:true,WebGLGetBufferSubDataAsync:true,WebGLLoseContext:true,WebGLExtensionLoseContext:true,WEBGL_lose_context:true,OESElementIndexUint:true,OES_element_index_uint:true,OESStandardDerivatives:true,OES_standard_derivatives:true,OESTextureFloat:true,OES_texture_float:true,OESTextureFloatLinear:true,OES_texture_float_linear:true,OESTextureHalfFloat:true,OES_texture_half_float:true,OESTextureHalfFloatLinear:true,OES_texture_half_float_linear:true,OESVertexArrayObject:true,OES_vertex_array_object:true,WebGLProgram:true,WebGLQuery:true,WebGLRenderbuffer:true,WebGLRenderingContext:true,WebGL2RenderingContext:true,WebGLSampler:true,WebGLShader:true,WebGLShaderPrecisionFormat:true,WebGLSync:true,WebGLTexture:true,WebGLTimerQueryEXT:true,WebGLTransformFeedback:true,WebGLUniformLocation:true,WebGLVertexArrayObject:true,WebGLVertexArrayObjectOES:true,WebGL:true,WebGL2RenderingContextBase:true,Database:true,SQLError:true,SQLResultSet:true,SQLTransaction:true,ArrayBuffer:true,ArrayBufferView:false,DataView:true,Float32Array:true,Float64Array:true,Int16Array:true,Int32Array:true,Int8Array:true,Uint16Array:true,Uint32Array:true,Uint8ClampedArray:true,CanvasPixelArray:true,Uint8Array:false,HTMLBRElement:true,HTMLContentElement:true,HTMLDListElement:true,HTMLDataElement:true,HTMLDataListElement:true,HTMLDetailsElement:true,HTMLHRElement:true,HTMLHeadElement:true,HTMLHeadingElement:true,HTMLHtmlElement:true,HTMLLIElement:true,HTMLLegendElement:true,HTMLMenuElement:true,HTMLMeterElement:true,HTMLModElement:true,HTMLOListElement:true,HTMLOptGroupElement:true,HTMLOptionElement:true,HTMLPictureElement:true,HTMLPreElement:true,HTMLProgressElement:true,HTMLQuoteElement:true,HTMLShadowElement:true,HTMLSourceElement:true,HTMLTableCaptionElement:true,HTMLTableCellElement:true,HTMLTableDataCellElement:true,HTMLTableHeaderCellElement:true,HTMLTableColElement:true,HTMLTimeElement:true,HTMLTitleElement:true,HTMLTrackElement:true,HTMLUListElement:true,HTMLUnknownElement:true,HTMLDirectoryElement:true,HTMLFontElement:true,HTMLFrameElement:true,HTMLFrameSetElement:true,HTMLMarqueeElement:true,HTMLElement:false,AccessibleNodeList:true,HTMLAnchorElement:true,HTMLAreaElement:true,BackgroundFetchClickEvent:true,BackgroundFetchFailEvent:true,BackgroundFetchedEvent:true,BackgroundFetchEvent:false,HTMLBaseElement:true,Blob:false,Body:true,Request:true,Response:true,HTMLBodyElement:true,BroadcastChannel:true,HTMLButtonElement:true,HTMLCanvasElement:true,CanvasRenderingContext2D:true,CDATASection:true,CharacterData:true,Comment:true,ProcessingInstruction:true,Text:true,PublicKeyCredential:true,Credential:false,CredentialUserData:true,CSSKeyframesRule:true,MozCSSKeyframesRule:true,WebKitCSSKeyframesRule:true,CSSPerspective:true,CSSImageValue:true,CSSResourceValue:true,CSSURLImageValue:true,CSSCharsetRule:true,CSSConditionRule:true,CSSFontFaceRule:true,CSSGroupingRule:true,CSSImportRule:true,CSSKeyframeRule:true,MozCSSKeyframeRule:true,WebKitCSSKeyframeRule:true,CSSMediaRule:true,CSSNamespaceRule:true,CSSPageRule:true,CSSStyleRule:true,CSSSupportsRule:true,CSSViewportRule:true,CSSRule:false,CSSStyleDeclaration:true,MSStyleCSSProperties:true,CSS2Properties:true,CSSStyleSheet:true,CSSKeywordValue:true,CSSNumericValue:true,CSSPositionValue:true,CSSUnitValue:true,CSSStyleValue:false,CSSMatrixComponent:true,CSSRotation:true,CSSScale:true,CSSSkew:true,CSSTranslation:true,CSSTransformComponent:false,CSSTransformValue:true,CSSUnparsedValue:true,DataTransferItemList:true,DedicatedWorkerGlobalScope:true,HTMLDialogElement:true,HTMLDivElement:true,Document:true,HTMLDocument:true,XMLDocument:true,DOMError:true,DOMException:true,ClientRectList:true,DOMRectList:true,DOMRectReadOnly:false,DOMStringList:true,DOMTokenList:true,Element:false,HTMLEmbedElement:true,DirectoryEntry:true,Entry:true,FileEntry:true,AnimationEvent:true,AnimationPlaybackEvent:true,ApplicationCacheErrorEvent:true,BeforeInstallPromptEvent:true,BeforeUnloadEvent:true,BlobEvent:true,ClipboardEvent:true,CloseEvent:true,CustomEvent:true,DeviceMotionEvent:true,DeviceOrientationEvent:true,ErrorEvent:true,FontFaceSetLoadEvent:true,GamepadEvent:true,HashChangeEvent:true,MediaEncryptedEvent:true,MediaKeyMessageEvent:true,MediaStreamEvent:true,MediaStreamTrackEvent:true,MessageEvent:true,MIDIConnectionEvent:true,MIDIMessageEvent:true,MutationEvent:true,PageTransitionEvent:true,PaymentRequestUpdateEvent:true,PresentationConnectionAvailableEvent:true,PresentationConnectionCloseEvent:true,PromiseRejectionEvent:true,RTCDataChannelEvent:true,RTCDTMFToneChangeEvent:true,RTCPeerConnectionIceEvent:true,RTCTrackEvent:true,SecurityPolicyViolationEvent:true,SensorErrorEvent:true,SpeechRecognitionError:true,SpeechRecognitionEvent:true,StorageEvent:true,TrackEvent:true,TransitionEvent:true,WebKitTransitionEvent:true,VRDeviceEvent:true,VRDisplayEvent:true,VRSessionEvent:true,MojoInterfaceRequestEvent:true,USBConnectionEvent:true,AudioProcessingEvent:true,OfflineAudioCompletionEvent:true,WebGLContextEvent:true,Event:false,InputEvent:false,SubmitEvent:false,EventSource:true,AbsoluteOrientationSensor:true,Accelerometer:true,AccessibleNode:true,AmbientLightSensor:true,Animation:true,ApplicationCache:true,DOMApplicationCache:true,OfflineResourceList:true,BackgroundFetchRegistration:true,BatteryManager:true,CanvasCaptureMediaStreamTrack:true,Gyroscope:true,LinearAccelerationSensor:true,Magnetometer:true,MediaDevices:true,MediaSource:true,MediaStream:true,MediaStreamTrack:true,MIDIAccess:true,NetworkInformation:true,OrientationSensor:true,PaymentRequest:true,Performance:true,PresentationAvailability:true,PresentationConnectionList:true,PresentationRequest:true,RelativeOrientationSensor:true,RTCDTMFSender:true,Sensor:true,ServiceWorkerContainer:true,ServiceWorkerRegistration:true,SharedWorker:true,SpeechRecognition:true,SpeechSynthesis:true,VR:true,VRDevice:true,VRDisplay:true,VRSession:true,VisualViewport:true,Worker:true,WorkerPerformance:true,BluetoothDevice:true,BluetoothRemoteGATTCharacteristic:true,Clipboard:true,MojoInterfaceInterceptor:true,USB:true,IDBOpenDBRequest:true,IDBVersionChangeRequest:true,IDBRequest:true,IDBTransaction:true,AnalyserNode:true,RealtimeAnalyserNode:true,AudioBufferSourceNode:true,AudioDestinationNode:true,AudioNode:true,AudioScheduledSourceNode:true,AudioWorkletNode:true,BiquadFilterNode:true,ChannelMergerNode:true,AudioChannelMerger:true,ChannelSplitterNode:true,AudioChannelSplitter:true,ConstantSourceNode:true,ConvolverNode:true,DelayNode:true,DynamicsCompressorNode:true,GainNode:true,AudioGainNode:true,IIRFilterNode:true,MediaElementAudioSourceNode:true,MediaStreamAudioDestinationNode:true,MediaStreamAudioSourceNode:true,OscillatorNode:true,Oscillator:true,PannerNode:true,AudioPannerNode:true,webkitAudioPannerNode:true,ScriptProcessorNode:true,JavaScriptAudioNode:true,StereoPannerNode:true,WaveShaperNode:true,EventTarget:false,AbortPaymentEvent:true,CanMakePaymentEvent:true,ExtendableMessageEvent:true,FetchEvent:true,ForeignFetchEvent:true,InstallEvent:true,NotificationEvent:true,PaymentRequestEvent:true,PushEvent:true,SyncEvent:true,ExtendableEvent:false,FederatedCredential:true,HTMLFieldSetElement:true,File:true,FileList:true,FileReader:true,DOMFileSystem:true,FileWriter:true,FontFace:true,FontFaceSet:true,HTMLFormElement:true,Gamepad:true,History:true,HTMLCollection:true,HTMLFormControlsCollection:true,HTMLOptionsCollection:true,XMLHttpRequest:true,XMLHttpRequestUpload:true,XMLHttpRequestEventTarget:false,HTMLIFrameElement:true,ImageBitmap:true,ImageData:true,HTMLImageElement:true,HTMLInputElement:true,KeyboardEvent:true,HTMLLabelElement:true,HTMLLinkElement:true,Location:true,HTMLMapElement:true,HTMLAudioElement:true,HTMLMediaElement:false,MediaKeySession:true,MediaList:true,MediaQueryList:true,MediaQueryListEvent:true,MediaRecorder:true,MessagePort:true,HTMLMetaElement:true,MIDIInputMap:true,MIDIOutputMap:true,MIDIInput:true,MIDIOutput:true,MIDIPort:true,MimeType:true,MimeTypeArray:true,MouseEvent:false,DragEvent:false,NavigatorUserMediaError:true,DocumentFragment:true,ShadowRoot:true,DocumentType:true,Node:false,NodeList:true,RadioNodeList:true,Notification:true,HTMLObjectElement:true,OffscreenCanvas:true,HTMLOutputElement:true,OverconstrainedError:true,HTMLParagraphElement:true,HTMLParamElement:true,PasswordCredential:true,PerformanceEntry:true,PerformanceLongTaskTiming:true,PerformanceMark:true,PerformanceMeasure:true,PerformanceNavigationTiming:true,PerformancePaintTiming:true,PerformanceResourceTiming:true,TaskAttributionTiming:true,PerformanceServerTiming:true,PermissionStatus:true,Plugin:true,PluginArray:true,PointerEvent:true,PopStateEvent:true,PresentationConnection:true,ProgressEvent:true,ResourceProgressEvent:true,PushMessageData:true,RemotePlayback:true,RTCDataChannel:true,DataChannel:true,RTCPeerConnection:true,webkitRTCPeerConnection:true,mozRTCPeerConnection:true,RTCStatsReport:true,ScreenOrientation:true,HTMLScriptElement:true,HTMLSelectElement:true,ServiceWorker:true,SharedWorkerGlobalScope:true,HTMLSlotElement:true,SourceBuffer:true,SourceBufferList:true,HTMLSpanElement:true,SpeechGrammar:true,SpeechGrammarList:true,SpeechRecognitionResult:true,SpeechSynthesisEvent:true,SpeechSynthesisUtterance:true,SpeechSynthesisVoice:true,Storage:true,HTMLStyleElement:true,StyleSheet:false,HTMLTableElement:true,HTMLTableRowElement:true,HTMLTableSectionElement:true,HTMLTemplateElement:true,HTMLTextAreaElement:true,TextTrack:true,TextTrackCue:false,TextTrackCueList:true,TextTrackList:true,TimeRanges:true,Touch:true,TouchEvent:true,TouchList:true,TrackDefaultList:true,CompositionEvent:true,FocusEvent:true,TextEvent:true,UIEvent:false,URL:true,HTMLVideoElement:true,VideoTrackList:true,VTTCue:true,VTTRegion:true,WebSocket:true,WheelEvent:true,Window:true,DOMWindow:true,ServiceWorkerGlobalScope:true,WorkerGlobalScope:false,Attr:true,CSSRuleList:true,ClientRect:true,DOMRect:true,GamepadList:true,NamedNodeMap:true,MozNamedAttrMap:true,SpeechRecognitionResultList:true,StyleSheetList:true,IDBDatabase:true,IDBIndex:true,IDBKeyRange:true,IDBObjectStore:true,IDBVersionChangeEvent:true,SVGLength:true,SVGLengthList:true,SVGNumber:true,SVGNumberList:true,SVGPointList:true,SVGRect:true,SVGScriptElement:true,SVGStringList:true,SVGAElement:true,SVGAnimateElement:true,SVGAnimateMotionElement:true,SVGAnimateTransformElement:true,SVGAnimationElement:true,SVGCircleElement:true,SVGClipPathElement:true,SVGDefsElement:true,SVGDescElement:true,SVGDiscardElement:true,SVGEllipseElement:true,SVGFEBlendElement:true,SVGFEColorMatrixElement:true,SVGFEComponentTransferElement:true,SVGFECompositeElement:true,SVGFEConvolveMatrixElement:true,SVGFEDiffuseLightingElement:true,SVGFEDisplacementMapElement:true,SVGFEDistantLightElement:true,SVGFEFloodElement:true,SVGFEFuncAElement:true,SVGFEFuncBElement:true,SVGFEFuncGElement:true,SVGFEFuncRElement:true,SVGFEGaussianBlurElement:true,SVGFEImageElement:true,SVGFEMergeElement:true,SVGFEMergeNodeElement:true,SVGFEMorphologyElement:true,SVGFEOffsetElement:true,SVGFEPointLightElement:true,SVGFESpecularLightingElement:true,SVGFESpotLightElement:true,SVGFETileElement:true,SVGFETurbulenceElement:true,SVGFilterElement:true,SVGForeignObjectElement:true,SVGGElement:true,SVGGeometryElement:true,SVGGraphicsElement:true,SVGImageElement:true,SVGLineElement:true,SVGLinearGradientElement:true,SVGMarkerElement:true,SVGMaskElement:true,SVGMetadataElement:true,SVGPathElement:true,SVGPatternElement:true,SVGPolygonElement:true,SVGPolylineElement:true,SVGRadialGradientElement:true,SVGRectElement:true,SVGSetElement:true,SVGStopElement:true,SVGStyleElement:true,SVGSVGElement:true,SVGSwitchElement:true,SVGSymbolElement:true,SVGTSpanElement:true,SVGTextContentElement:true,SVGTextElement:true,SVGTextPathElement:true,SVGTextPositioningElement:true,SVGTitleElement:true,SVGUseElement:true,SVGViewElement:true,SVGGradientElement:true,SVGComponentTransferFunctionElement:true,SVGFEDropShadowElement:true,SVGMPathElement:true,SVGElement:false,SVGTransform:true,SVGTransformList:true,AudioBuffer:true,AudioContext:true,webkitAudioContext:true,AudioParamMap:true,AudioTrackList:true,BaseAudioContext:false,OfflineAudioContext:true,WebGLActiveInfo:true,SQLResultSetRowList:true}) H.qm.$nativeSuperclassTag="ArrayBufferView" H.AV.$nativeSuperclassTag="ArrayBufferView" H.AW.$nativeSuperclassTag="ArrayBufferView" H.lq.$nativeSuperclassTag="ArrayBufferView" H.AX.$nativeSuperclassTag="ArrayBufferView" H.AY.$nativeSuperclassTag="ArrayBufferView" H.fy.$nativeSuperclassTag="ArrayBufferView" W.Bu.$nativeSuperclassTag="EventTarget" W.Bv.$nativeSuperclassTag="EventTarget" W.BO.$nativeSuperclassTag="EventTarget" W.BP.$nativeSuperclassTag="EventTarget"})() Function.prototype.$1=function(a){return this(a)} Function.prototype.$2=function(a,b){return this(a,b)} Function.prototype.$0=function(){return this()} Function.prototype.$3=function(a,b,c){return this(a,b,c)} Function.prototype.$4=function(a,b,c,d){return this(a,b,c,d)} Function.prototype.$3$1=function(a){return this(a)} Function.prototype.$2$1=function(a){return this(a)} Function.prototype.$1$1=function(a){return this(a)} Function.prototype.$3$3=function(a,b,c){return this(a,b,c)} Function.prototype.$2$2=function(a,b){return this(a,b)} Function.prototype.$6=function(a,b,c,d,e,f){return this(a,b,c,d,e,f)} Function.prototype.$5=function(a,b,c,d,e){return this(a,b,c,d,e)} Function.prototype.$1$2=function(a,b){return this(a,b)} Function.prototype.$1$0=function(){return this()} Function.prototype.$1$5=function(a,b,c,d,e){return this(a,b,c,d,e)} Function.prototype.$2$3=function(a,b,c){return this(a,b,c)} Function.prototype.$2$0=function(){return this()} Function.prototype.$9=function(a,b,c,d,e,f,g,h,i){return this(a,b,c,d,e,f,g,h,i)} Function.prototype.$7=function(a,b,c,d,e,f,g){return this(a,b,c,d,e,f,g)} convertAllToFastObject(w) convertToFastObject($);(function(a){if(typeof document==="undefined"){a(null) return}if(typeof document.currentScript!="undefined"){a(document.currentScript) return}var s=document.scripts function onLoad(b){for(var q=0;q